Satura rādītājs:
- 1. darbība. Kas ir I²C un kāpēc mums tas patīk
- 2. darbība. Apskatīsim tuvāk
- 3. darbība: I²C un ZIO
- 4. darbība. Kāds ir maksimālais kabeļa garums?
- 5. darbība. Kā savienot vairākas ierīces vienā autobusā?
- 6. darbība: kas ir I2C izbeigšana?
Video: Iepazīstinām ar I2C ar Zio moduļiem un Qwiic: 6 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
Robins Šarma sacīja: “Nelieli ikdienas uzlabojumi laika gaitā noved pie satriecošiem rezultātiem”. Jūs varētu domāt: “Ak, vēl viens I2C ieraksts?”. Protams, ir tūkstošiem informācijas par I2C. Bet sekojiet līdzi, tas nav tikai kārtējais I2C raksts. Qwiic Connect System un Zio perifērijas sadalīšanas dēļi noteikti ir I²C spēļu mainītāji!
Ievads
Ja jūs veidojat elektroniskus projektus un darāt lieliskas lietas, jūs, iespējams, sapratāt, ka, palielinoties jūsu projektiem, jūsu maizes dēlis sāk izskatīties kā čūskas bedre (mazliet netīrs, vai ne?).
Turklāt, ja jums ir vairāki projekti, jūs pavadāt daudz laika, pārslēdzot vadus no projekta uz projektu.
Mēs esam veidotāji, tāpēc saprotam cīņu. Mūsu jaunākais ieguldījums OHS kopienā ir modulāra prototipēšanas sistēma ar nosaukumu ZIO, kas izmanto Qwiic savienojuma sistēmu. Qwiic ir ļoti ērts veids, kā caur I²C sazināties ar programmējamu shēmas plati ar sensoriem, izpildmehānismiem un sadales paneļiem.
1. darbība. Kas ir I²C un kāpēc mums tas patīk
I²C ir visplašāk izmantotais daudzmeistaru autobuss, kas nozīmē, ka vienai kopnei var pievienot dažādas mikroshēmas. To izmanto daudzās lietojumprogrammās starp galveno un vergu vai vairākām galvenajām un vergu ierīcēm. Sākot no mikrokontrolleriem, beidzot ar viedtālruņiem un beidzot ar rūpnieciskiem lietojumiem, īpaši tādām video ierīcēm kā datoru monitori. To var viegli ieviest daudzos elektroniskos dizainos (un pēdējā laikā pat vieglāk, izmantojot Qwiic savienotāju).
Ja mums būtu jāapraksta I²C ar diviem vārdiem, mēs, iespējams, izmantotu vienkāršību un elastību.
Viena no lielākajām I²C priekšrocībām salīdzinājumā ar citiem sakaru protokoliem ir tā, ka tā ir divu vadu saskarne, kas nozīmē, ka tai ir nepieciešami tikai divi signāla vadi - SDA (Serial Data Line) un SCL (Serial Clock Line). Tas, iespējams, nav ātrākais protokols, taču ir labi zināms, ka tas ir ļoti elastīgs, nodrošinot kopnes sprieguma elastību.
Vēl viena būtiska iezīme, kas padara šo autobusu pievilcīgu, ir sadraudzība starp saimnieku un vergu. Vienai kopnei var pievienot vairākas ierīces, un nav jāmaina elektroinstalācija starp ierīcēm, jo katrai ierīcei ir unikāla adrese (meistars izvēlas saziņas ierīci).
2. darbība. Apskatīsim tuvāk
Tātad, kā darbojas I²C? Iepriekš mēs minējām, ka viena no nozīmīgākajām iezīmēm ir sprieguma pielaide, tas ir iespējams, jo I²C izmanto atvērtu kolektoru (pazīstams arī kā atvērta kanalizācija) gan SDA, gan SCL sakaru līnijām.
SCL ir pulksteņa signāls, sinhronizē datu pārsūtīšanu starp I²C kopnes ierīcēm, un to ģenerē kapteinis. Kamēr SDA nes datus, lai tos nosūtītu vai saņemtu no sensoriem vai citām ierīcēm, kas pievienotas kopnei.
Signāla izeja ir savienota ar zemi, kas nozīmē, ka katra ierīce ir uzlikta kā zema. Lai atgūtu signālu līdz augstam līmenim, abas līnijas ir savienotas ar pozitīvu barošanas spriegumu, izmantojot izvelkamo rezistoru, kas jāpārtrauc.
Izmantojot ZIO moduļus, visi mūsu sadalīšanas dēļi ietver nepieciešamo pacelšanas pretestību.
I²C ievēro ziņojumu protokolu, lai sazinātos ar galveno ierīci ar vergu ierīcēm. Abas līnijas (SCL un SDA) ir kopīgas visos I²C vergos, visi vergi autobusā klausās ziņojumu.
Ziņojumu protokols atbilst pievienotajā attēlā parādītajam formātam:
No pirmā acu uzmetiena tas var šķist sarežģīti, taču mums ir dažas labas ziņas. Izmantojot Arduino IDE, ir bibliotēka Wire.h, lai vienkāršotu visu iestatīšanu I²C ziņojumu protokolam.
Sākuma nosacījums tiek ģenerēts, kad datu līnija (SDA) pazeminās, kamēr pulksteņa līnija (SCL) joprojām ir augsta. Iestatot projektu Arduino saskarnē, mums nav jāuztraucas par sākuma nosacījuma ģenerēšanu, tas tiks uzsākts ar īpašu funkciju (Wire.beginTransmission (slaveAddress)).
Turklāt šī funkcija arī sāk pārraidi ar konkrēto vergu adresi. Lai izvēlētos vergu saziņai koplietošanas autobusā, kapteinis turpina nodot adresi vergam, lai sazinātos. Kad adrese ir iestatīta saziņai ar atbilstošo vergu, atkarībā no izvēlētā režīma tiek parādīts ziņojums ar lasīšanas vai rakstīšanas bitu.
Glābējs sniedz atbildi ar apstiprinājumu (ACK vai NACK), un citas autobusa vergu ierīces atlaiž pārējos datus, līdz ziņojums ir pabeigts un autobuss ir bezmaksas. Pēc ACK pārraidi turpina vergu iekšējā adresēšanas reģistra secība.
Kad dati tiek nosūtīti, pārsūtīšanas ziņojums beidzas ar apstāšanās nosacījumu. Lai pārtrauktu pārraidi, datu līnija mainās uz augstu un pulksteņa līnija paliek augsta.
3. darbība: I²C un ZIO
Mēs sapratām, ka man vislabāk būtu izstrādāt visu iepriekš minēto informāciju sarunā starp meistaru (pazīstams arī kā Zuino, mūsu mikro) un vergiem (pazīstams arī kā ZIO sadalīšanas dēļi).
Šajā pamata piemērā mēs izmantojam ZIO TOF attāluma sensoru un ZIO OLED displeju. TOF sniedz informāciju par attālumu, kamēr ZIO Oled parāda datus. Izmantotās sastāvdaļas un ierīces:
- ZUINO M UNO - meistars
- ZIO OLED displejs - Slave_01
- ZIO TOF attāluma sensors - Slave_02
- Qwiic kabelis - ērts savienojums I²C ierīcēm
Lūk, cik vienkārši ir savienot dēļus savā starpā, izmantojot Qwiic, nav nepieciešams maizes dēlis, papildu kabeļi vai ZUINO tapas. ZUINO sērijas pulksteņa un datu līnija tiek automātiski savienota ar attāluma sensoru un OLED, izmantojot Qwiic savienotāju. Pārējie divi kabeļi ir 3V3 un GND.
Vispirms apskatīsim nepieciešamo informāciju, lai sazinātos ar kapteini ar vergiem, kas mums būtu jāzina unikālas adreses.
Ierīce: ZIO attāluma sensors
- Daļas numurs: RFD77402
- I2C adrese: 0x4C
- Datu lapas saite
Ierīce: ZIO OLED displejs
- Daļas numurs: SSD1306
- Adrese: 0x3C
- Datu lapas saite
Lai atrastu vergu ierīču unikālo adresi, atveriet sniegto datu lapu. Attāluma sensoram adrese ir norādīta moduļa saskarnes sadaļā. Katram sensoram vai komponentam ir atšķirīga datu lapa ar dažādu sniegto informāciju. Dažreiz var būt grūti to atrast 30 lapu datu lapā (mājiens: atveriet meklēšanas rīku PDF skatītājā un ātrai meklēšanai ierakstiet “adrese” vai “ierīces ID”).
Tagad, kad ir zināma katras ierīces unikālā adrese, lai lasītu/ rakstītu datus, ir jāidentificē iekšējā reģistra adrese (arī no datu lapas). Apskatot ZIO attāluma sensora datu lapu, attāluma noteikšanas adrese atbilst 0x7FF.
Šajā konkrētajā gadījumā mums tiešām nav nepieciešama šī informācija sensora izmantošanai, kā to jau dara bibliotēka.
Nākamais solis, iepazīstieties ar kodu. ZUINO M UNO ir saderīgs ar Arduino IDE, kas ievērojami atvieglo iestatīšanu. Šim projektam nepieciešamās bibliotēkas ir šādas:
- Vads.h
- Adafruit_GFX.h
- Adafruit_SSD1306.h
- SparkFun_RFD77402_Arduino_Library.h
Wire.h ir arduino bibliotēka, divas Adafruit bibliotēkas tiek izmantotas OLED, bet pēdējās - attāluma sensoram. Pārbaudiet šo pamācību par to, kā saistīt *.zip bibliotēkas ar Arduino IDE.
Aplūkojot kodu, vispirms ir jādeklarē bibliotēkas, kā arī OLED adrese.
Iestatījumos () sākas pārraide un tiek parādīts teksts par attāluma sensora funkcionalitāti.
Cilpa () veic attāluma mērījumus, un OLED to izdrukā.
Pārbaudiet avota koda piemēru vietnē github.
Abu sadalīšanas dēļu izmantošana ir diezgan vienkārša visās nozīmēs. Aparatūras pusē Qwiic savienotājs padara aparatūras iestatīšanu ātrāku un daudz mazāk netīru nekā maizes dēlis un džemperu vadi. Un programmaparatūrai, izmantojot atbilstošās bibliotēkas I2C komunikācijai, sensors un displejs padara kodu daudz vienkāršāku.
4. darbība. Kāds ir maksimālais kabeļa garums?
Maksimālais garums ir atkarīgs no SDA un SCL izmantotajiem pacelšanas rezistoriem un kabeļa kapacitātes. Rezistori nosaka arī kopnes ātrumu, jo mazāks autobusa ātrums, jo garāks kabeļa ierobežojums. Kabeļa kapacitāte ierobežo kopnē esošo ierīču skaitu, kā arī kabeļa garumu. Tipiski pielietojumi ierobežo stieples garumu līdz 2,5-3,5 m (9-12 pēdām), taču atkarībā no izmantotā kabeļa var būt atšķirības. Atsaucei maksimālais garums I2C lietojumprogrammās, kurās tiek izmantoti ekranēti 22 AWG vītā pāra kabeļi, ir aptuveni 1 m (3 pēdas) pie 100 kbaund, 10 m (30 pēdas) pie 10 kbaud.
Ir dažas vietnes, piemēram, mogami vai WolframAlpha, kas ļauj novērtēt kabeļa garumu.
5. darbība. Kā savienot vairākas ierīces vienā autobusā?
I2C ir seriālā kopne, kurā visas ierīces ir savienotas ar kopīgu kopni. Izmantojot Qwiic savienotāju, dažādus sadalīšanas dēļus var savienot viens pēc otra, izmantojot Qwiic savienotāju. Katrai plāksnei ir vismaz 2 Qwiic savienotāji.
Mēs izveidojām dažādus dēļus, lai atrisinātu dažus Qwiic un I2C ierobežojumus. Zio Qwiic adaptera plāksni izmanto, lai izveidotu savienojumu, izmantojot Qwiic ierīces bez Qwiic savienotāja, izmantojot Qwiic un maizes dēļa vīriešu galvenes kabeli. Šis vienkāršais triks rada neierobežotas iespējas.
Lai savienotu dažādas ierīces autobusu vai koku tīklā, mēs izstrādājām Zio Qwiic Hub.
Visbeidzot, bet ne mazāk svarīgi, Zio Qwiic MUX ļauj savienot divas vai vairākas ierīces, izmantojot vienu un to pašu adresi.
6. darbība: kas ir I2C izbeigšana?
I2C ir jāpārtrauc, tāpēc līnija var brīvi pievienot citas ierīces. Tas var būt nedaudz mulsinoši, jo pārtraukšanas terminu parasti izmanto, lai aprakstītu kopnes pievilkšanas rezistorus (lai nodrošinātu noklusējuma stāvokli, šajā gadījumā strāvas padevei ķēdei). Zuino plāksnēm rezistora vērtība ir 4,7 kΩ.
Ja izbeigšana tiek izlaista, kopnē vispār nebūs saziņas- meistars nevarēs ģenerēt sākuma nosacījumu, tāpēc ziņojums netiks pārsūtīts vergiem.
Lai iegūtu papildinformāciju un Zio iespējas, pārbaudiet jaunākos Zio produktus. Šī raksta mērķis ir izskaidrot I²C komunikācijas pamatus un to, kā tas darbojas ar Zio un Qwiic savienotāju. Sekojiet līdzi jaunumiem.
Ieteicams:
Robotiskā roka ar Zio moduļiem 3. daļa: 4 soļi
Robotiskā roka ar Zio moduļiem 3. daļa: Šis emuāra ziņojums ir daļa no Zio Robotics sērijas. Ievads Iepriekšējā emuārā mēs ievietojām 1. un 2. daļas pamācību par to, kā vadīt robotu roku, izmantojot Zio moduļus. Pirmā daļa galvenokārt koncentrējās uz jūsu robotizētā rokas naga automātisku vadību
Robotiskā roka ar Zio moduļiem 2. daļa: 11 soļi
Robotiskā roka ar Zio moduļiem, 2. daļa: Šodienas apmācībā mēs izmantosim visus 4 servus un PS2 bezvadu kontrolieri, lai kontrolētu robotu roku. Šis emuāra ziņojums ir daļa no Zio Robotics sērijas. Ievads Iepriekšējā emuārā mēs ievietojām 1. daļu apmācība par to, kā kontrolēt robotu
Kontrolējiet robotu roku ar Zio moduļiem 1. daļa: 8 soļi
Kontrolējiet robotu roku ar Zio moduļiem 1. daļa: Šis emuāra ziņojums ir daļa no Zio Robotics sērijas. Ievads Šajā apmācībā mēs izveidosim projektu, kurā mēs izmantosim Zio moduļus, lai kontrolētu robotu roku. Šis projekts iemācīs jums, kā padarīt robotu rokas spīles atvērtas un aizvērtas. Šis n
Iepazīstinām ar LoRa ™!: 19 soļi
Iepazīstinām ar LoRa! ar preču zīmi (™) autors Semtech - sen pazīstams (1960) ASV daudznacionālais ievēlētais
Iepazīstinām ar “Deodorino” - infrasarkano staru kontrolēto Arduino tukšā dezodoranta nūjiņā. Noklikšķiniet uz 1. fotoattēla: 7 soļi
Iepazīstinām ar “Deodorino” - infrasarkano staru kontrolēto Arduino tukšā dezodoranta nūjiņā. Noklikšķiniet uz 1. fotoattēla: tagad līdz detaļām