I2C více zařízení

daton
Příspěvky: 612
Registrován: 16 bře 2013, 16:12

I2C více zařízení

Příspěvek od daton »

Dobrý den
Chtěl bych se zeptat zda má někdo zkušenosti s připojováním více periferii na I2C, a případně zda by mi nemohl předat nějaké zkušenosti. Jde mi o společné připojení LCD a dataloggeru. Obě zařízení by měly fungovat po sběrnici s tím že by se řídilo jejich přepínání. To jsem ale v příkladu nikde průhledně tedy polopaticky nenašel. Proto se obracím na vás zda by jste věděli jak to udělat a jak napsat kod oproti klasickému připojení LCD bez I2C předřadníku. Děkuji za odpovědí.
daton
Příspěvky: 612
Registrován: 16 bře 2013, 16:12

Re: I2C více zařízení

Příspěvek od daton »

Ještě dodatek ten modul dataloggeru využívá I2C asi jen pro hodiny
http://www.ebay.com/itm/Mini-Data-Logge ... 1679727907

tedy kdybych ty odiny oželel pak by to mohlo fungovat i bez přepínání ale zrovna ty hodiny tam jsou docela dobré. Ukládání a zápis do SD je řízen asi přes SPI ale nejsem si tím jist.
DavidO
Příspěvky: 1005
Registrován: 01 kvě 2013, 21:27

Re: I2C více zařízení

Příspěvek od DavidO »

I2c je z principu sběrnice, ke které může být připojeno víc zařízení. Až na "mastera" (počítač, mikrokontroler, cokoli), který to celé řídí, má každé svoji adresu a když master chce s někým mluvit, použije ji. Adresu použije vždycky, i když tam je další zařízení jen jedno. Takže displej (pokud tedy je určen k připojení na i2c) má svoji adresu a datalogger má svoji adresu. A při komunikaci prostě master použije jednu nebo druhou.
Uživatelský avatar
Dex
Administrátor
Příspěvky: 1312
Registrován: 16 úno 2013, 14:26

Re: I2C více zařízení

Příspěvek od Dex »

Jen si dovolím doplnit ;), že i "masterů" může být více, což se někdy může hodit. Je to ale už pak složitejší a i jednotlivá zařízení to musí podporovat.

V tomto kontextu je to ale spíše "akademická" poznámka ;)
"all your robots are belong to us"
robodoupe.cz | rxd.cz | codetory.cz
DavidO
Příspěvky: 1005
Registrován: 01 kvě 2013, 21:27

Re: I2C více zařízení

Příspěvek od DavidO »

Já mu to chtěl zatajit, aby ho to teď nemátlo :mrgreen:. Pravda je, že při konkrétní komunikaci vždy master řídí přenos a slave dělá co ten master chce.
Slavové nemají co podporovat, tohle je záležitost masterů, navíc si ji vynucuje standard i2c takže jestli někdo neumí multimaster arbitration, tak se nemůže nazývat masterem a nemá na i2c sběrnici co dělat. Teoreticky, prakticky to je jako s každejma jinejma "zákonama".
(a pravda je i to, že těch masterů tam může být víc ale slabší master to pozná a odpojí se, že tam můžou být broadcasty, že slave taky může komunikaci ovlivnit a podobně, ale to už jsou finesy, které se pro první zapojení dají přeskočit)
Uživatelský avatar
Dex
Administrátor
Příspěvky: 1312
Registrován: 16 úno 2013, 14:26

Re: I2C více zařízení

Příspěvek od Dex »

Tak až zase tolik jsem toho prozrazovat nechtěl :D
"all your robots are belong to us"
robodoupe.cz | rxd.cz | codetory.cz
DavidO
Příspěvky: 1005
Registrován: 01 kvě 2013, 21:27

Re: I2C více zařízení

Příspěvek od DavidO »

:lol:

A teď zase zpátky na zem. Datone, z čeho chceš ten displej a datalogger používat (připojovat)? A v jakém jazyce to chceš psát?
Uživatelský avatar
fulda
Příspěvky: 1072
Registrován: 04 led 2016, 17:18

Re: I2C více zařízení

Příspěvek od fulda »

Jenom tak čistě pragmaticky - ten dataloger obsahuje DS1307, ten má adresu 1101000x, takže pokud LCD (bohužel bez popisu) používá jakoukoli jinou adresu, tak to bude fungovat samo od sebe. Podle použité platformy bude různé náročné s tím komunikovat, ale všechny platformy novější než PIC12F6xx mají celkem komfortní podporu pro I2C.
BTW: Tesla tuším v roce 1988 vydala knížku popisující I2C, tu dokonce mám, tak jestli jí někdo ofotí na robodoupě, tak bych jí mohl zapůjčit.
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
daton
Příspěvky: 612
Registrován: 16 bře 2013, 16:12

Re: I2C více zařízení

Příspěvek od daton »

Ahoj
Tak to je velká spousta informací a za ně moc dík. Vyskytla se potřeba vytvořit takové univerzální měřidlo , které bude měřit napětí i proud a hodnoty bude po určitém čase cpát proávě na tu sd kartu dataloggeru. CHtěl bych to programově dotáhnout tak abych mohl tlačítkem potom listovat v tom datalogeru a pročítat hodnoty. lcd je klasika P1620 nebo 1602 na které připojím převodník pro sériovou komunikaci s PCF8574. Poskládat to elektricky nebude problém ale potom to naprogramovat už bude podstatně horší. O spojení několika zařízení na I2C jsem věděl ale nevěděl jsem jak se managuje to přepínání. Pokud to řeší nějaká knihovna a závisí jen na adrese pak je to super. Jen dotaz LCD je asi jedno když se nové data pro displej trochu zpozdí ale tak předpokládám že arduino bude master. Ale datalogger respektive jeho časová základna bude asi chtít pravidelně předávat data, nebo je to na vyžádání masteru a ten časovač tam poskytne aktuální hodnotu na dotaz?
JiT
Příspěvky: 36
Registrován: 29 bře 2016, 08:52
Bydliště: Kladno (to u Prahy)

Re: I2C více zařízení

Příspěvek od JiT »

V tom itemu na ebay se kasají, že mají knihovny a samply.
Nepodařilo se mi je najít. To přišlo na CD s modulem?
Postni sem prosím nějaký link. Rád bych se na ně podíval.

Děkuju.
Odpovědět