Indholdsfortegnelse:

Tilslutning af to OOBoards sammen ved hjælp af I2C: 4 trin
Tilslutning af to OOBoards sammen ved hjælp af I2C: 4 trin

Video: Tilslutning af to OOBoards sammen ved hjælp af I2C: 4 trin

Video: Tilslutning af to OOBoards sammen ved hjælp af I2C: 4 trin
Video: Tilslutning af lampe til lampeudtag – Sådan tilslutter du din lampe til et loftudtag | SILVAN 2024, Juli
Anonim
Tilslutning af to OOBoards sammen ved hjælp af I2C
Tilslutning af to OOBoards sammen ved hjælp af I2C

Denne instruktionsbog dækker hvordan man forbinder to OOBoards ved hjælp af I2C.

Trin 1: Tilslutning til I2C Network Bus

Tilslutning til I2C Network Bus
Tilslutning til I2C Network Bus
Tilslutning til I2C Network Bus
Tilslutning til I2C Network Bus

Der er to I2C -busser på OOBoards, en lokalbus og en netværksbus.

OOPIC -koden er i det væsentlige et fortolket sprog, dvs. "koden" gemmes i EEPROM og læses/fortolkes af mikroprocessoren i realtid. EEPROM bruger LOCAL I2C -bussen til at kommunikere med mikrokontrolleren. Hvis du skulle se på denne lokale bus på oscilloskopet, ville du se konstant snak. På OOBoards -kortene er den lokale bus det, der er forbundet til I2C -stikket, det er ikke nødvendigvis det, vi ønsker. NETWORK -bussen er normalt den bus, der bruges til at kommunikere med andre enheder/oopics, på OOBoards har denne bus ikke et stik. For at få adgang til denne bus skal du lodde ledninger til stifterne 42 og 37 på mikrokontrolleren (markeret henholdsvis N_SDA, N_SCL på skematisk).

Trin 2: Tilføj pullup -modstanderne

Når der er foretaget SDA- og SCL -forbindelser på hver processor, kan de to tavler

kobles sammen ved at forbinde SDA til SDA, SCL til SCL og tilslutte en fælles jordledning mellem kortene. Du skal også bruge en pull-up-modstand på hver linje (jeg brugte 12k, men det var lige hvad jeg havde liggende). Bemærk, at du kun har brug for en pullup -modstand pr. Linje for i alt to modstande (ikke 4).

Trin 3: Programmer slaven

Nu hvor de fysiske forbindelser er der, skal du programmere slave -mikrokontrolleren. Jeg tilføjede en kode herunder, der skulle få dig i gang.

Dim SLAVE as New oDDELinkDim LED as New oDIO1Sub Main () & aposset our I2C address to 2 (note, this must match the remote & aposaddress we set in the master code) ooPIC. Node = 2 & apossetup a LED LED. IOLine = 5 LED. Retning = cvOutput & aposnow, knyt output fra vores DDELink -objekt til & aposthe LED, og tænd det … nu automatisk vil LED'en blinke SLAVE. Output. Link (LED) SLAVE. Operate = cvTrueEnd Sub

Trin 4: Programmer masteren

Endelig programmerer master -mikrokontrolleren. Vær meget opmærksom på de linjer, der indstiller DDELink's. Location -egenskaben: Medmindre dette er indstillet korrekt, fungerer dette IKKE!

Dim Master As New oDDELinkDim wire As New oWireDim hz1 As New oBitSub Main () & aposlink 1 sekunders timer til den lidt vi kan få adgang til & aposthis bit vil nu skifte en gang i sekundet wire. Input. Link (ooPIC. Hz1) wire. Output. Link (hz1) wire. Operate = cvTrue & aposthis indstiller I2C -adressen til vores lokale mikrokontroller & aposthe I2C -grænsefladen er ikke aktiv, før en adresse er angivet ooPIC. Node = 1 & aposnow vi konfigurerer vores DDELink -objekt, vores input er den bit hz1 & aposnote, at objektet har også en. Output -egenskab, der bruges & apos når vi er i modtagetilstand Master. Input. Link (hz1) & aposthis er I2C -adressen på den eksterne mikrokontroller, bemærk at & aposin i slavekoden, fortæller vi den at have en adresse på 2 Master. Node = 2 & aposugh … dette er den skøre del, dette er "adressen" på DDELink & aposobjectet i slave- og aposs -hukommelsesrummet. For at finde ud af dette nummer, skal vi åbne og kompilere slavekoden og derefter gå til Vis-> Kompileret kode. se efter noget i stil med: & aposL *. Construct. Begin; Dim som ny oDDELink & aposwhere * er et hvilket som helst tal, og er navnet på dit DDELink -objekt & aposin din slavekode. Linjen umiddelbart under den skulle læse noget i retning af: & aposC0020: 041; Dette.. Adresse & aposthe nummer til højre for & apos: & apos er adressen til slaven DDELink objekt Master. Location = 41 & aposthis fortæller det objekt, som vi vil sende data (dvs. kopier data fra vores. Input ejendom & aposto slaverne.output egenskaben (Bemærk, hvis du indstiller dette til at modtage, er det modsat) Master. Direction = cvSend & aposturn it on, men der sker ikke noget endnu … Master. Operate = cvTrue Do & aposcheck for at se, om vi i øjeblikket transmitterer data Hvis Master. Transmitting = cvFalse Herefter vil & apossetting af denne værdi til 1 få masteren til at sende værdien til slave & aposnote, dette nulstilles automatisk til 0 efter afslutning af transmission Master. Sync = 1 End If LoopEnd Sub

Anbefalede: