Sisukord:

Kahe OOBoardi ühendamine I2C abil: 4 sammu
Kahe OOBoardi ühendamine I2C abil: 4 sammu

Video: Kahe OOBoardi ühendamine I2C abil: 4 sammu

Video: Kahe OOBoardi ühendamine I2C abil: 4 sammu
Video: BTT SKR2 — Основы SKR 2 (Ред. B) 2024, November
Anonim
Kahe OOBoardi ühendamine I2C abil
Kahe OOBoardi ühendamine I2C abil

See juhend sisaldab kahte OOBoardi ühendamist I2C abil.

Samm: ühenduse loomine I2C võrgusiiniga

Ühendamine võrgusiiniga I2C
Ühendamine võrgusiiniga I2C
Ühendamine võrgusiiniga I2C
Ühendamine võrgusiiniga I2C

OOBoardsil on kaks I2C bussi, kohalik buss ja võrgusiin.

OOPIC -kood on sisuliselt tõlgendatud keel, st "kood" salvestatakse EEPROM -is ja seda loeb/tõlgendab mikroprotsessor reaalajas. EEPROM kasutab mikrokontrolleriga suhtlemiseks bussi LOCAL I2C. Kui vaataksite seda kohalikku bussi ostsilloskoobi pealt, näeksite pidevat lobisemist. OOBoards'i tahvlitel on I2C -pistikuga ühendatud kohalik buss, see pole tingimata see, mida me tahame. NETWORK -buss on tavaliselt see buss, mida kasutatakse teiste seadmete/oopikatega suhtlemiseks, OOBoardsil pole sellel siinil pistikut. Sellele siinile pääsemiseks peate jootma juhtmed mikrokontrolleri tihvtide 42 ja 37 külge (skemaatiliselt märgitud vastavalt N_SDA, N_SCL).

Samm: lisage tõmbetakistid

Kui SDA- ja SCL -ühendused on mõlemal protsessoril tehtud, saavad kaks plaati seda teha

ühendada omavahel, ühendades SDA SDA -ga, SCL SCL -iga ja ühendades plaatide vahele ühise maandusjuhtme. Teil on vaja ka tõmbetakistit igal liinil (ma kasutasin 12k, kuid see oli just see, mis mul oli). Pange tähele, et kahe rea (mitte 4) jaoks vajate rea kohta ainult ühte tõmbetakistit.

3. samm: programmeerige ori

Nüüd, kui füüsilised ühendused on olemas, peate programmeerima orja mikrokontrolleri. Lisasin allpool koodi, mis peaks alustama.

Dim SLAVE uueks = cvOutput & apo

4. samm: programmeerige kapten

Lõpuks programmeerige peamine mikrokontroller. Pöörake suurt tähelepanu ridadele, mis määravad DDELinki atribuudi. Asukoht: kui see pole õigesti seadistatud, EI tööta!

Dim Master nagu uus oDDELinkDim traat nagu uus oWireDim hz1 Nagu uus oBitSub Main () & aposlink 1 sekundi taimer bittidele, millele meil on juurdepääs & aposthis bit lülitub nüüd üks kord sekundi jooksul. Input. Link (ooPIC. Hz1) juhe. Väljund. Lingi (hz1) juhe. Operatsioon = cvTõde ja aposthis määrab meie kohaliku mikrokontrolleri I2C -aadressi ja apost I2C -liides pole aktiivne enne, kui aadress on seatud ooPIC. Sõlm = 1 ja kui me seadistame oma DDELinki objekti, on meie sisendiks bit hz1 & märkida, et objektil on ka.väljundi atribuut, mida kasutatakse & kui oleme vastuvõturežiimis Master. Input. Link (hz1) & aposthis on kaugmikrokontrolleri I2C aadress, pange tähele, et & alam alamkoodi, me ütleme, et selle aadress on 2 Master. Node = 2 & aposugh … see on nõme osa, see on DDELink & aposobjekti "aadress" alam- ja aposmälu ruumis. Selle numbri väljaselgitamiseks tuleb & avada alamkood ja koostada see, seejärel minna View-> Compiled Code. & aposlook midagi sellist: & aposL *. Construct. Begin; Hämarda kui uus Vahetult selle all olev rida peaks lugema midagi sellist: & aposC0020: 041; See … Aadress ja apostelnumber paremal & apos: & apos on orja DDELink objekti Master aadress. Asukoht = 41 & aposthis ütleb objektile, mille me saadame andmed (st kopeerige andmed meie. Input atribuudilt ja aposto the slaves.output omadus (pange tähele, kui määrate selle vastuvõtmiseks, on see vastupidi) Master. Direction = cvSaatke ja saatke see sisse, kuid midagi ei juhtu veel … Master. Operate = cvTrue Do & aposcheck, et näha, kas me edastame praegu andmeid, kui Master. Transmission = cvFalse = 1 End If LoopEnd Sub

Soovitan: