Gach eolas faoi bhus Arduino I2C

Bus Arduino I2C

le Is féidir le Arduino líon mór tionscadal a chruthú mar a chonaic tú má léigh tú Hwlibre, an micrea-rialaitheoir a chlárú ar bhealach simplí. Ach i measc na naisc analógacha agus digiteacha atá ag an mbord crua-earraí saor in aisce seo, tá roinnt ann nach bhfuil ar eolas ag go leor tosaitheoirí fós, mar shampla fíor-acmhainneacht na nasc PWM, an SPI, na bioráin RX agus TX den phort sraitheach, nó an bus I2C féin. Dá bhrí sin, leis an iontráil seo is féidir leat gach rud a theastaíonn uait ón I2C a bheith ar eolas agat ar a laghad.

le an bus I2C Is féidir leat a lán gléasanna tríú páirtí a bhfuil an cineál prótacail seo acu a nascadh agus a úsáid chun cumarsáid a dhéanamh le bord Arduino. Eatarthu, is féidir leat luasmhéadair, taispeántais, cuntar, compáis, agus go leor ciorcad níos comhtháite a nascadh a bhuíochas leis an aireagán Philips seo.

Cad é I2C?

Tagraíonn I2C do Chuaird Idir-Chomhtháite, is é sin, ciorcad idir-chomhtháite. Is bus sraitheach cumarsáide sonraí é a d’fhorbair an chuideachta Philips Semiconductors i 1982, atá inniu mar NXP Semiconductors tar éis fáil réidh leis an gcuid seo. Ar dtús cruthaíodh é do theilifíseáin den bhranda seo, chun roinnt sceallóga inmheánacha a chur in iúl ar bhealach simplí. Ach ó 1990 tá an I2C scaipthe agus in úsáid ag go leor déantúsóirí.

Úsáidtear an iliomad déantúsóirí sliseanna faoi láthair le haghaidh ilfheidhmeanna. Thug Atmel, cruthaitheoir na micrea-rialaitheoirí do bhoird Arduino, an t-ainmniú TWI (Dhá Chomhéadan Sreangaithe) isteach chun críocha ceadúnaithe, cé go bhfuil sé comhionann le I2C. Ach in 2006, chuaigh an phaitinn bhunaidh in éag agus níl sí faoi réir cóipchirt a thuilleadh, mar sin athúsáid an téarma I2C (ní dhéantar ach an lógó a chosaint i gcónaí, ach níl srian ar a chur i bhfeidhm nó ar úsáid an téarma).

Sonraí teicniúla bus I2C

Bus I2C

El Tá bus I2C anois mar chaighdeán tionscail, agus chuir Arduino i bhfeidhm é le haghaidh cumarsáide le forimeallach a bhfuil gá acu leis. Níl de dhíth air ach dhá líne nó cábla chun é a oibriú, ceann don chomhartha clog (CLK) agus an ceann eile chun sonraí sraitheacha (SDA) a sheoladh. Tá sé seo buntáisteach i gcomparáid le cumarsáidí eile i gcomparáid leis an mbus SPI, cé go bhfuil a oibriú beagán níos casta mar gheall ar an gciorcadóireacht bhreise atá ag teastáil.

Ar an mbus seo tá seoladh ag gach feiste atá ceangailte leis a úsáidtear chun rochtain a fháil ar na gairis seo ina n-aonar. Socraítear an seoladh seo le crua-earraí, trí na 3 ghiotán dheireanacha a mhodhnú trí geansaithe nó trí DIPanna a athrú, cé gur féidir le bogearraí é a dhéanamh freisin. Beidh seoladh uathúil ag gach feiste, cé go bhféadfadh go mbeadh an seoladh céanna ag cuid acu agus b’fhéidir go mbeidh sé riachtanach bus tánaisteach a úsáid chun coinbhleachtaí a sheachaint nó é a athrú más féidir.

Ina theannta sin, tá a Ailtireacht den chineál Máistir-Sclábhaí, is é sin, máistir-sclábhaí. Ciallaíonn sé seo, nuair a chuirfidh máistirghléas tús le cumarsáid, go mbeidh sí in ann sonraí a sheoladh nó a fháil óna sclábhaithe. Ní bheidh na sclábhaithe in ann cumarsáid a thionscnamh, ní féidir ach leis an máistir déanamh amhlaidh, agus ní féidir leis na sclábhaithe labhairt lena chéile go díreach gan idirghabháil an mháistir.

Má tá tú roinnt múinteoirí ar an mbus, ní féidir ach le duine gníomhú mar mhúinteoir ag an am céanna. Ach ní fiú é, ós rud é go n-éilíonn athrú múinteoirí castacht ard, mar sin ní minic.

Coinnigh i gcuimhne go bhfuil an Soláthraíonn máistir an comhartha clog chun gach feiste ar an mbus a shioncronú. Cuireann sé sin deireadh leis an ngá atá le gach sclábhaí a uaireadóir féin a bheith acu.

Foráiltear le prótacal bus I2C freisin go n-úsáidfear friotóirí tarraingt suas sna línte voltais soláthair (Vcc), cé nach n-úsáidtear na friotóirí seo de ghnáth le Arduino tarraingt suas mar gheall ar leabharlanna cláir de réir mar a ghníomhaíonn Wire na cinn inmheánacha le luachanna 20-30 k. D’fhéadfadh sé seo a bheith ró-bhog do roinnt tionscadal, dá bhrí sin beidh imill ardú an chomhartha níos moille, mar sin is féidir luasanna níos ísle agus achair chumarsáide níos giorra a úsáid. Chun é sin a chur ina cheart b’fhéidir go mbeidh ort friotóirí tarraingt suas seachtracha a shocrú ó 1k go 4k7.

Comhartha

Comhartha I2C

 

La fráma cumarsáide a bhfuil comhartha bus I2C comhdhéanta de na giotáin nó na stáit (iad siúd a úsáidtear in Arduino, ós rud é go gceadaíonn an caighdeán I2C do dhaoine eile):

  • 8 ngiotán, 7 gcinn acu seoladh den fheiste sclábhaithe ar mhaith leat rochtain a fháil air chun sonraí a sheoladh nó a fháil uaidh. Le 7 ngiotán, is féidir suas le 128 seoladh éagsúil a chruthú, mar sin d’fhéadfaí rochtain a fháil ar 128 feiste go teoiriciúil, ach ní féidir ach 112 a rochtain, ós rud é go bhfuil 16 curtha in áirithe le haghaidh úsáidí speisialta. Agus an giota breise a léiríonn más mian leat seol nó faigh faisnéis faoi ghléas sclábhaithe.
  • Tá freisin giotán bailíochtaithe, mura bhfuil sí gníomhach ní bheidh an chumarsáid bailí.
  • Ansin an bearta sonraí gur mian leo na sclábhaithe a sheoladh nó a fháil. Tá gach beart, mar is eol duit, comhdhéanta de 8 ngiotán. Tabhair faoi deara, le haghaidh gach 8 ngiotán nó 1 bheart de shonraí a sheoltar nó a fhaightear, go dteastaíonn 18 ngiotán bailíochtaithe, seoladh, srl., Rud a chiallaíonn go bhfuil luas an-teoranta ag an mbus.
  • Le beagán deiridh de bailíochtú den chumarsáid.

Ina theannta sin, minicíocht an chloig do tá tarchuir 100 Mhz mar chaighdeán, cé go bhfuil modh níos gasta ag 400 Mhz.

Buntáistí agus míbhuntáistí an bhus I2C

an leas a bhaint as fuaime:

  • Simplíocht gan ach dhá líne a úsáid.
  • Tá sé meicníochtaí chun a fháil amach an bhfuil an comhartha tagtha i gcomparáid le prótacail chumarsáide eile.

an míbhuntáistí fuaime:

  • Speed tarchur measartha íseal.
  • Ní déphléacs iomlán éis é sin, ní féidir leat a sheoladh agus a fháil ag an am céanna.
  • Ní úsáideann paireacht ná aon chineál eile meicníochta fíoraithe chun a fháil amach an bhfuil na giotáin sonraí a fuarthas ceart.

 

 

I2C ar Arduino

Bus Arduino I2C

En Arduino, ag brath ar an tsamhail, tá éagsúlacht sna bioráin is féidir a chumasú chun an bus I2C seo a úsáid. Mar shampla:

  • Arduino UNO, Nano, Mini Pro: Úsáidtear A4 le haghaidh SDA (sonraí) agus A5 le haghaidh SCK (clog).
  • Arduino Mega: bioráin 20 do SDA agus 21 do SCK.

Cuimhnigh gur gá duit é a úsáid úsáid a bhaint as an leabharlann Sreang.h do do chóid Arduino IDE, cé go bhfuil cinn eile cosúil leis I2C y I2Cdevlib. Féadfaidh tú cáipéisí na leabharlanna seo nó ár n-alt a léamh ar na tionscadail ar spéis leat cóid a fháil faoin gcaoi a ndéanfaí é a chlárú.

Conas a bheith ar an eolas faoi sheoladh feiste chun é a úsáid le I2C?

Rabhadh deireanach amháin, agus is é sin nuair a cheannaíonn tú ICanna ó mhonaróirí Eorpacha, Seapánacha nó Meiriceánacha, tusa léirigh an treo gur chóir duit a úsáid don fheiste. Ar an láimh eile, uaireanta ní thugann na Sínigh mionsonraí air nó ní bhíonn sé ceart, mar sin ní oibreoidh sé. Is féidir é sin a réiteach go héasca le scanóir seoltaí chun a fháil amach cén treo ar cheart duit tagairt a dhéanamh dó i do sceitse.

La pobal arduino chruthaigh sé seo cód chun an seoladh a scanadh agus é a aithint Ar bhealach simplí. Cé go dtaispeánfaidh mé an cód duit anseo:

#include "Wire.h"
 
extern "C" { 
    #include "utility/twi.h"
}
 
void scanI2CBus(byte from_addr, byte to_addr, void(*callback)(byte address, byte result) ) 
{
  byte rc;
  byte data = 0;
  for( byte addr = from_addr; addr <= to_addr; addr++ ) {
    rc = twi_writeTo(addr, &data, 0, 1, 0);
    callback( addr, rc );
  }
}
 
void scanFunc( byte addr, byte result ) {
  Serial.print("addr: ");
  Serial.print(addr,DEC);
  Serial.print( (result==0) ? " Encontrado!":"       ");
  Serial.print( (addr%4) ? "\t":"\n");
}
 
 
const byte start_address = 8;
const byte end_address = 119;
 
void setup()
{
    Wire.begin();
 
    Serial.begin(9600);
    Serial.print("Escaneando bus I2C...");
    scanI2CBus( start_address, end_address, scanFunc );
    Serial.println("\nTerminado");
}
 
void loop() 
{
    delay(1000);
}


Cloíonn ábhar an ailt lenár bprionsabail eitic eagarthóireachta. Chun earráid a thuairisciú cliceáil anseo.

Bí ar an chéad trácht

Fág do thrácht

Ní thabharfar do sheoladh r-phoist a fhoilsiú. Réimsí riachtanacha atá marcáilte le *

*

*

  1. Freagrach as na sonraí: Miguel Ángel Gatón
  2. Cuspóir na sonraí: SPAM a rialú, bainistíocht trácht.
  3. Legitimation: Do thoiliú
  4. Na sonraí a chur in iúl: Ní chuirfear na sonraí in iúl do thríú páirtithe ach amháin trí oibleagáid dhlíthiúil.
  5. Stóráil sonraí: Bunachar sonraí arna óstáil ag Occentus Networks (EU)
  6. Cearta: Tráth ar bith is féidir leat do chuid faisnéise a theorannú, a aisghabháil agus a scriosadh.