Turinys:

Dviejų OOBo plokščių sujungimas naudojant I2C: 4 veiksmai
Dviejų OOBo plokščių sujungimas naudojant I2C: 4 veiksmai

Video: Dviejų OOBo plokščių sujungimas naudojant I2C: 4 veiksmai

Video: Dviejų OOBo plokščių sujungimas naudojant I2C: 4 veiksmai
Video: Оригинальный способ связать подушку крючком. @shoddikate 2024, Liepa
Anonim
Dviejų OOBoard plokščių sujungimas naudojant I2C
Dviejų OOBoard plokščių sujungimas naudojant I2C

Ši instrukcija apima tai, kaip prijungti dvi OOBoards naudojant I2C.

1 žingsnis: Prisijunkite prie „I2C“tinklo magistralės

Prisijungimas prie I2C tinklo magistralės
Prisijungimas prie I2C tinklo magistralės
Prisijungimas prie I2C tinklo magistralės
Prisijungimas prie I2C tinklo magistralės

OOBoards plokštėse yra dvi I2C magistralės, vietinė ir tinklo magistralė.

OOPIC kodas iš esmės yra aiškinama kalba, ty „kodas“saugomas EEPROM, o mikroprocesorius jį skaito/interpretuoja realiuoju laiku. EEPROM naudoja LOCAL I2C magistralę, kad galėtų bendrauti su mikrovaldikliu. Jei pažvelgtumėte į šį vietinį autobusą osciloskopu, pamatytumėte nuolatinį plepėjimą. OOBoards plokštėse vietinė magistralė yra prijungta prie I2C jungties, tai nebūtinai yra tai, ko norime. NETWORK magistralė paprastai yra magistralė, naudojama bendrauti su kitais prietaisais/optiniais vaizdais, o OOBoards ši magistralė neturi jungties. Norėdami pasiekti šią magistralę, turite lituoti laidus prie mikrovaldiklio 42 ir 37 kaiščių (schemoje atitinkamai pažymėta N_SDA, N_SCL).

2 žingsnis: pridėkite traukimo rezistorius

Kai SDA ir SCL jungtys yra prijungtos prie kiekvieno procesoriaus, abi plokštės gali

būti sujungtos prijungus SDA prie SDA, SCL prie SCL ir jungiant bendrą įžeminimo laidą tarp plokščių. Taip pat kiekvienoje eilutėje jums reikės prisitraukimo rezistoriaus (naudojau 12 tūkst., Bet būtent tai ir turėjau). Atkreipkite dėmesį, kad jums reikia tik vieno ištraukimo rezistoriaus vienoje linijoje iš viso dviem rezistoriams (ne 4).

3 žingsnis: užprogramuokite vergą

Dabar, kai yra fiziniai ryšiai, turėsite užprogramuoti vergų mikrovaldiklį. Žemiau pridėjau kodą, kuris turėtų padėti jums pradėti.

Dim SLAVE As New oDDELinkDim LED As New oDIO1Sub Main () ir mūsų I2C adresą priskirkite 2 (atkreipkite dėmesį, tai turi sutapti su nuotolinio valdymo pulto ir adreso, kurį nustatėme pagrindiniame kode) ooPIC. Node = 2 & aposset a LED LED. IOLine = 5 LED. Direction = cvOutput & aposnow, susiekite mūsų DDELink objekto išvestį su & aposthe LED, ir įjunkite … dabar automatiškai, LED mirksės SLAVE. Output. Link (LED) SLAVE. Operate = cvTrueEnd Sub

4 žingsnis: užprogramuokite meistrą

Galiausiai užprogramuokite pagrindinį mikrovaldiklį. Atkreipkite ypatingą dėmesį į eilutes, kurios nustato „DDELink“ypatybę. Vieta: jei tai nenustatyta tinkamai, tai neveiks!

„Dim Master“kaip naujas „oDDELink“„Dim“laidas kaip naujas „oWireDim hz1“kaip naujas „oBitSub Main“() ir 1 sekundės laikmačio susiejimas su bitu, kurį galime pasiekti. Nuorodos (hz1) viela. Operacija = cvTiesa ir aposthis nustato mūsų vietinio mikrovaldiklio I2C adresą, o apačia I2C sąsaja neaktyvi, kol nenustatytas adresas ooPIC. Mazgas = 1 ir žinodami, kad nustatome savo DDELink objektą, mūsų įvestis yra bitas hz1 ir pažymime, kad objektas taip pat turi. išvesties ypatybę, kuri naudojama ir kai mes esame priėmimo režime Master. Input. Link (hz1) Master. Node = 2 & aposugh … tai yra kraupi dalis, tai yra „DDELink & aposobject“„adresas“slave & aposs atminties erdvėje. Norėdami išsiaiškinti šį skaičių, turite atidaryti ir sudaryti vergo kodą, tada eikite į View-> Compiled Code. & aposlook kažko panašaus: & aposL *. Construct. Begin; Dim kaip naujas oDDELink & aposwhere * yra bet koks skaičius ir yra jūsų DDELink objekto pavadinimas ir aposin jūsų vergo kodas. Tiesiai po juo esanti eilutė turėtų būti tokia: & aposC0020: 041; Šis … Adresas ir apaštalo numeris dešinėje nuo & apos: & apos yra vergo DDELink objekto Master adresas. Vieta = 41 & aposthis nurodo objektą, kurį mes siunčiame duomenys (ty nukopijuokite duomenis iš mūsų. Įvesties savybės ir aposto vergai. išvesties savybė (atkreipkite dėmesį, jei nustatysite, kad tai būtų gauta, tai yra priešingai) Master. Direction = cvSiųsti ir įjungti, bet dar nieko neįvyksta … Master. Operate = cvTiesa „Do & aposcheck“, kad pamatytume, ar mes šiuo metu perduodame duomenis, jei pagrindinis. Transmission = cvFalse Tada & nustačius šią reikšmę 1, valdytojas nusiųs vertę vergui ir aposnotei, tai automatiškai bus atstatyta į 0, kai bus baigtas perdavimas Master. Sync = 1 Pabaiga, jei LoopEnd Sub

Rekomenduojamas: