INHOUDSOPGAWE:

Verbind twee OOBoards met behulp van I2C: 4 stappe
Verbind twee OOBoards met behulp van I2C: 4 stappe

Video: Verbind twee OOBoards met behulp van I2C: 4 stappe

Video: Verbind twee OOBoards met behulp van I2C: 4 stappe
Video: Wireless Bridge Mode - Networking 2024, November
Anonim
Verbind twee OOBoards saam met I2C
Verbind twee OOBoards saam met I2C

Hierdie instruksies dek hoe om twee OOBoards met I2C aan te sluit.

Stap 1: Koppel aan die I2C -netwerkbus

Koppel aan die I2C -netwerkbus
Koppel aan die I2C -netwerkbus
Koppel aan die I2C -netwerkbus
Koppel aan die I2C -netwerkbus

Daar is twee I2C -busse op die OOBoards, 'n plaaslike bus en 'n netwerkbus.

Die OOPIC -kode is in wese 'n geïnterpreteerde taal, dws die 'kode' word in EEPROM gestoor en intyds deur die mikroverwerker gelees/geïnterpreteer. Die EEPROM gebruik die LOCAL I2C -bus om met die mikrobeheerder te kommunikeer. As u na hierdie plaaslike bus op die ossilloskoop sou kyk, sou u konstante geklets sien. Op die OOBoards -borde is die plaaslike bus wat aan die I2C -aansluiting gekoppel is; dit is nie noodwendig wat ons wil hê nie. Die NETWERK -bus is gewoonlik die bus wat gebruik word om met ander toestelle/oopika te kommunikeer, op die OOBoards het hierdie bus nie 'n aansluiting nie. Om toegang tot hierdie bus te verkry, moet u drade aan penne 42 en 37 van die mikrokontroleerder soldeer (onderskeidelik gemerk N_SDA, N_SCL op die skema).

Stap 2: Voeg die Pullup -weerstande by

Sodra SDA- en SCL -verbindings op elke verwerker gemaak is, kan die twee borde

aan mekaar gekoppel word deur SDA aan SDA te koppel, SCL aan SCL en 'n gemeenskaplike aarddraad tussen die planke te koppel. U benodig ook 'n optrekweerstand op elke lyn (ek het 12k gebruik, maar dit was presies wat ek gehad het). Let daarop dat u slegs een weerstandsweerstand per lyn benodig vir 'n totaal van twee weerstande (nie 4 nie).

Stap 3: Programmeer die slaaf

Noudat die fisiese verbindings daar is, moet u die slaaf -mikrobeheerder programmeer. Ek het 'n paar kode hieronder bygevoeg wat u kan help.

Dim SLAVE as nuut oDDELinkDim LED as nuut oDIO1Sub Main () & stel ons I2C -adres op 2 (let op, dit moet ooreenstem met die afstandsbediening en die adres wat ons in die hoofkode stel) ooPIC. Node = 2 & stel 'n LED -LED op. IOLine = 5 LED. Rigting = cvOutput & aposnow, koppel die uitset van ons DDELink -voorwerp aan & aposthe LED, en skakel dit aan … nou outomaties sal die LED SLAVE knip. Output. Link (LED) SLAVE. Operate = cvTrueEnd Sub

Stap 4: Programmeer die Meester

Uiteindelik, programmeer die meester -mikrobeheerder. Gee noukeurig aandag aan die lyne wat die DDELink se. Lokasie -eiendom stel: tensy dit reg ingestel is, sal dit NIE werk nie!

Dim Master As New oDDELinkDim wire As New oWireDim hz1 As New oBitSub Main () & koppel die 1 sekonde timer aan die bietjie wat ons kan kry en aposthis bit sal nou een keer per sekonde draad skakel. Input. Link (ooPIC. Hz1) wire. Output. Skakel (hz1) draad. Operate = cvTrue & aposthis stel die I2C -adres van ons plaaslike mikrobeheerder in en die I2C -koppelvlak is nie aktief totdat 'n adres ingestel is ooPIC. Node = 1 & aposnow ons stel ons DDELink -voorwerp op, ons insette is die bietjie hz1 & aposnote dat die voorwerp het ook 'n. Uitgangseiendom wat gebruik word & as ons in die ontvangsmodus is Master. Input. Link (hz1) & aposthis is die I2C -adres van die eksterne mikrobeheerder, let op dat ons in die slaafkode sê dat ons 'n adres van 2 het Master. Node = 2 & aposugh … dit is die mal gedeelte, dit is die 'adres' van die DDELink & aposobject in die slawe & aposs geheue ruimte. Om hierdie nommer uit te vind, moet ons die slaafkode oopmaak en saamstel en dan na View-> Compiled Code gaan. & apos soek na iets soos: & aposL *. Construct. Begin; Dim as new oDDELink & aposwhere * is 'n getal, en is die naam van u DDELink -voorwerp en plaas u slaafkode. Die reël onmiddellik daaronder behoort iets te lees soos: & aposC0020: 041; Hierdie.. Adres & aposthe nommer regs van die & apos: & apos is die adres van die slaaf DDELink object Master. Location = 41 & aposthis vertel die voorwerp wat ons sal stuur data (dit wil sê, kopieer data van ons. Invoereiendom & aposto die slawe.uitput -eiendom (let op, as u dit stel om te ontvang, is dit die teenoorgestelde) Master. Direction = cvStuur en plaas dit aan, maar niks gebeur nog nie … Master. Operate = cvTrue Do & aposcheck om te sien of ons tans data stuur As Master. Transmitting = cvFalse Dan & as u hierdie waarde op 1 plaas, sal die meester die waarde na die slaaf en aposnoot stuur, dit word outomaties teruggestel op 0 na voltooiing van die transmissie Master. Sync = 1 Einde As LoopEnd Sub

Aanbeveel: