Kazalo:

Povezovanje dveh kartic OOBoards skupaj z I2C: 4 koraki
Povezovanje dveh kartic OOBoards skupaj z I2C: 4 koraki

Video: Povezovanje dveh kartic OOBoards skupaj z I2C: 4 koraki

Video: Povezovanje dveh kartic OOBoards skupaj z I2C: 4 koraki
Video: SKR Pro v1.2 - Basics 2024, November
Anonim
Povezovanje dveh kartic OOBoards skupaj z I2C
Povezovanje dveh kartic OOBoards skupaj z I2C

Ta navodila govorijo o tem, kako povezati dve OOBoardi s pomočjo I2C.

1. korak: Povežite se z omrežnim vodilom I2C

Povezava z omrežnim vodilom I2C
Povezava z omrežnim vodilom I2C
Povezava z omrežnim vodilom I2C
Povezava z omrežnim vodilom I2C

Na OOBoards sta dva avtobusa I2C, lokalno vodilo in omrežno vodilo.

Koda OOPIC je v bistvu interpretiran jezik, tj. "Koda" je shranjena v EEPROM -u in jo mikroprocesor v realnem času prebere/interpretira. EEPROM uporablja LOCAL I2C bus za komunikacijo z mikrokrmilnikom. Če bi na osciloskopu pogledali ta lokalni avtobus, bi videli nenehno klepetanje. Na ploščah OOBoards je lokalno vodilo povezano s priključkom I2C, kar ni nujno tisto, kar želimo. Vodilo NETWORK je običajno vodilo, ki se uporablja za komunikacijo z drugimi napravami/oopics, na OOBoardovih to vodilo nima priključka. Za dostop do tega vodila morate spajkati žice na nožice 42 in 37 mikrokrmilnika (na shemi označeni N_SDA, N_SCL).

2. korak: Dodajte uporovne upore

Ko sta na vsakem procesorju vzpostavljeni povezavi SDA in SCL, lahko obe plošči

jih povežite tako, da SDA priključite na SDA, SCL na SCL in med plošče priključite skupno ozemljitveno žico. Potrebovali boste tudi vlečni upor na vsaki liniji (uporabil sem 12k, vendar je to ravno tisto, kar sem imel naokoli). Upoštevajte, da potrebujete samo en uporni upor na linijo za skupaj dva upora (ne 4).

3. korak: Programirajte podrejeno napravo

Zdaj, ko so fizične povezave na voljo, boste morali programirati pomožni mikrokrmilnik. Spodaj sem dodal nekaj kode, s katero bi morali začeti.

Zatemni SLAVE kot nov oDDELinkDim LED kot nov oDIO1Sub Main () & nastavi naš naslov I2C na 2 (upoštevajte, da se mora ujemati z oddaljenim naslovom, ki smo ga nastavili v glavni kodi) ooPIC. Node = 2 & nastavite LED LED. IOLine = 5 LED. Direction = cvOutput & aposnow, povežite izhod našega objekta DDELink z & aposthe LED in ga vklopite … zdaj bo samodejno LED utripala SLAVE. Output. Link (LED) SLAVE. Operate = cvTrueEnd Sub

4. korak: Programirajte mojstra

Na koncu programirajte glavni mikrokrmilnik. Bodite pozorni na vrstice, ki določajo lastnost. Location DDELink: Če to ni pravilno nastavljeno, to NE bo delovalo!

Dim Master kot nov oDDELinkDim žica kot nov oWireDim hz1 kot nov oBitSub Main () & poveže časovnik za 1 sekundo z bitom, do katerega lahko dostopamo & apost ta bit se bo zdaj preklapljal enkrat na sekundo. Žica. Povezava (hz1) žica. Operate = cvTrue & aposthis nastavi naslov I2C našega lokalnega mikrokrmilnika & aposthe I2C vmesnik ni aktiven, dokler ni nastavljen naslov ooPIC. Node = 1 & aposnow nastavimo svoj objekt DDELink, naš vnos je bit hz1 & opozarjamo, da Objekt ima tudi lastnost. Output, ki se uporablja & aposlej, ko smo v načinu prejemanja Master. Input. Link (hz1) & aposthis je naslov I2C oddaljenega mikrokrmilnika, upoštevajte, da & aposin podrejena koda, mu povemo, da ima naslov 2 Master. Node = 2 & aposugh … to je sranje, to je "naslov" DDELink & aposobject v pomnilniškem prostoru slave & aposs. Če želite ugotoviti to številko, & aposwe moramo odpreti in sestaviti podrejeno kodo, nato pa pojdite na Pogled-> Prevedena koda. & aposlook za nekaj takega: & aposL *. Construct. Begin; Dim as new oDDELink & aposwhere * je poljubno število in je ime vašega predmeta DDELink & aposin vaša podrejena koda. Vrstica tik pod njo naj se glasi nekako tako: & aposC0020: 041; Ta.. Naslov & številka aposthe desno od & apos: & apos je naslov podrejenega objekta DDELink Master. Location = 41 & aposthis pove objektu, ki ga bomo poslali podatki (tj. kopirajte podatke iz naše lastnosti. Input & aposto podrejene.output lastnosti (upoštevajte, če to nastavite tako, da prejema, je obratno) Master. Direction = cvSend & aposturn on, vendar se še nič ne dogaja … Master. Operate = cvTrue Naredite & aposcheck, če želite preveriti, ali trenutno prenašamo podatke. = 1 Konec Če LoopEnd Sub

Priporočena: