Innehållsförteckning:

Ansluta två OOBoards tillsammans med I2C: 4 steg
Ansluta två OOBoards tillsammans med I2C: 4 steg

Video: Ansluta två OOBoards tillsammans med I2C: 4 steg

Video: Ansluta två OOBoards tillsammans med I2C: 4 steg
Video: Не держит мочевой пузырь? 2 упражнения укрепляющие его! 2024, Juli
Anonim
Ansluta två OOBoards tillsammans med I2C
Ansluta två OOBoards tillsammans med I2C

Denna instruktion beskriver hur du ansluter två OOBoards med I2C.

Steg 1: Ansluter till I2C Network Bus

Ansluter till I2C Network Bus
Ansluter till I2C Network Bus
Ansluter till I2C Network Bus
Ansluter till I2C Network Bus

Det finns två I2C -bussar på OOBoards, en lokalbuss och en nätbuss.

OOPIC -koden är i huvudsak ett tolkat språk, dvs "koden" lagras i EEPROM och läses/tolkas av mikroprocessorn i realtid. EEPROM använder LOCAL I2C -bussen för att kommunicera med mikrokontrollern. Om du skulle titta på den här lokala bussen i oscilloskopet, skulle du se konstant prat. På OOBoards -korten är lokalbussen det som är anslutet till I2C -kontakten, det är inte nödvändigtvis vad vi vill ha. NETWORK -bussen är vanligtvis bussen som används för att kommunicera med andra enheter/oopics, på OOBoards har denna buss ingen kontakt. För att komma åt den här bussen måste du löda kablarna till stiften 42 och 37 på mikrokontrollen (markerad N_SDA, N_SCL på schemat).

Steg 2: Lägg till pullup -resistorerna

När SDA- och SCL -anslutningar har gjorts på varje processor kan de två korten

kopplas samman genom att ansluta SDA till SDA, SCL till SCL och ansluta en gemensam jordkabel mellan korten. Du kommer också att behöva ett uppdragningsmotstånd på varje linje (jag använde 12k, men det var precis vad jag hade liggande). Observera att du bara behöver ett pullup -motstånd per rad för totalt två motstånd (inte 4).

Steg 3: Programmera slaven

Nu när de fysiska anslutningarna är där måste du programmera slavens mikrokontroller. Jag har lagt till en kod nedan som ska komma igång.

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. Riktning = cvOutput & aposnow, länka utdata från vårt DDELink -objekt till & aposthe LED och slå på det … nu automatiskt blinkar lysdioden SLAVE. Output. Link (LED) SLAVE. Operate = cvTrueEnd Sub

Steg 4: Programmera Master

Slutligen programmerar du huvudmikrokontrollern. Var uppmärksam på linjerna som ställer in DDELinks. Location -egenskap: Om inte detta är korrekt inställt fungerar detta INTE!

Dim Master As New oDDELinkDim wire As New oWireDim hz1 As New oBitSub Main () & aposlink the 1 second timer to the bit we can access & aposthis bit will now switch one per second wire. Input. Link (ooPIC. Hz1) wire. Output. Länk (hz1) wire. Operate = cvTrue & aposthis anger I2C -adressen för vår lokala mikrokontroller och apostel I2C -gränssnittet är inte aktivt förrän en adress har ställts in ooPIC. Node = 1 & aposnow vi konfigurerar vårt DDELink -objekt, vår ingång är bit hz1 & aposnot att objektet har också en. Output -egenskap som används & apos när vi är i mottagningsläge Master. Input. Link (hz1) & aposthis är I2C -adressen för den fjärrkontrollen, observera att & aposin i slavkoden säger vi att den ska ha en adress på 2 Master. Node = 2 & aposugh … det här är den skitiga delen, detta är "adressen" för DDELink & aposobjektet i slave- och aposs -minnesutrymmet. För att räkna ut detta nummer måste vi öppna och kompilera slavkoden och sedan gå till Visa-> Kompilerad kod. & apos leta efter något i stil med: & aposL *. Construct. Begin; Dim som nytt oDDELink & aposwhere * är valfritt tal, och är namnet på ditt DDELink -objekt & aposin din slavkod. Raden nedanför den ska läsa något i stil med: & aposC0020: 041; Detta.. Adress & aposthe nummer till höger om & apos: & apos är adressen till slaven DDELink objekt Master. Location = 41 & aposthis berättar objektet som vi kommer att skicka data (dvs. kopiera data från vår. Input -egenskap & aposto slavarna.output -egenskapen (notera, om du ställer in detta för att få det är det motsatta) Master. Direction = cvSend & aposturn it on, men inget händer ännu … Master. Operate = cvTrue Do & aposcheck för att se om vi för närvarande överför data Om Master. Transmitting = cvFalse Då & om du placerar detta värde till 1 kommer mastern att skicka värdet till slaven och aposnoten, detta återställs automatiskt till 0 när överföringen är klar. Sync = 1 Slut Om LoopEnd Sub

Rekommenderad: