Bastl: I2C AVR teploměr

Jacob

Bastl: I2C AVR teploměr
« kdy: 01. 03. 2013, 15:28:13 »
Na internetu jsem našel jednoduchý návod jak uvedu do provozu čidlo DS1820 pomocí IWIRE.
kod je zde:http://www.mcselec.com/index.php?option=com_content&task=view&id=39&Itemid=57
datsheet je zde: http://www.datasheetcatalog.org/datasheet/maxim/DS1820-DS1820S.pdf
jazyk:bascom

Co mi ale není jasné je tohle:

Kód: [Vybrat]

1wwrite &hcc ' read internal RAM
1wwrite &Hbe  ' read 9 data bytest

Jasně asi je to totálně stupidní dotaz, ale může mi prosím někdo vysvětlit kde v datasheetu zjistím, že adresa &hcc čte ram? Jak přesně se k tomuto údaji mohu dopídit? Popřípadě přepčítat  :'(

Jak na sběrnici určím(rozliším) adresu čidla(či více čidel)?




AlyoSHA

Re:Bastl: I2C AVR teploměr
« Odpověď #1 kdy: 01. 03. 2013, 15:49:08 »
No nie som expert, ale skutocne je to i2c? V dshite sa sice pise ze je to 1-wire co nepoznam, ale i2c potrebuje aj CLOCK a to tam nevidim.

AlyoSHA

Re:Bastl: I2C AVR teploměr
« Odpověď #2 kdy: 01. 03. 2013, 15:54:03 »
Jak na sběrnici určím(rozliším) adresu čidla(či více čidel)?

Pokial ide o i2c, tak kazdy slave na zbernici ma svoju adresu v rozsahu 1-126 adresa 127 sluzi ako broadcast (Master tymto moze oslovit vsetky slave na zbernici) adresa jednotlivych slavov by sa mala dat zmenit.

Pavel

Re:Bastl: I2C AVR teploměr
« Odpověď #3 kdy: 01. 03. 2013, 16:02:57 »
V datasheetu obvodu DS18B20 je kapitola ROM COMMANDS a v ni je popis tech "zahadnych" cisel :)
SKIP ROM [CCh]
READ SCRATCHPAD [BEh]

Jacob

Re:Bastl: I2C AVR teploměr
« Odpověď #4 kdy: 01. 03. 2013, 16:42:27 »
Pavle moc děkuju!

Jenom ještě jak se pak řeší ta adresace ostatních čidel?


zdenek.

Re:Bastl: I2C AVR teploměr
« Odpověď #5 kdy: 01. 03. 2013, 21:33:36 »
No v první řadě zapoměň na I2C. 1-wire má s I2C společné akorát to, že taky běhá po drátech (ale má jich o 1 míň).

S adresováním se to má tak, že každé zařízení má 64 bitovou adresu. Když jsem s tím kdysi dělal, tak byla ta adresa uvedená přímo na tom zařízení (Dallas iButton) nebo se z té věci tá vyčíst (povel Read ROM / 33h) v momentě, kdy na sběrnici není jiné zařízení. Master vždy v rámci povelu posílá před vlastním kódem povelu adresu (těch 64 bitů) příslušného adresáta - viz třeba example 1 na straně 17 toho datasheetu, co se na něj odkazuješ. Případně ještě strany 15 a 16 tamtéž. Je ovšem třeba dodržet celou sekvenci včetně různých restovacích pulzů a tak.

Z.

RDa

  • *****
  • 2 677
    • Zobrazit profil
    • E-mail
Re:Bastl: I2C AVR teploměr
« Odpověď #6 kdy: 01. 03. 2013, 22:59:37 »
Tak ja to jeste musim upresnit, protoze zde nekteri pisou blbosti :)

I2C a 1-wire jsou dve ruzne rozhrani - tak si je prosim neplette.

DS18B20 je 1-wire zarizeni, ktere nese v sobe svoji unikatni adresu. Pokud techto zarizeni date na sbernici vice, lze s nima pracovat pokud implementujete "multidrop" funkce (zjistovani seznamu pripojenych adres binarnim vetvenim, posilani adresy pred prikazem). Pokud mate jen 1 zarizeni, lze mu rovnou poslat prikaz.

Co se tyce samotneho teplomeru - je nutno pouzit bud maly pullup odpor, nebo jeste lepe implementovat "strong-pullup" (zapinani napajeni na signalni drat), kvuli vetsi spotrebe pri prevodu.

Michal

Re:Bastl: I2C AVR teploměr
« Odpověď #7 kdy: 02. 03. 2013, 09:46:19 »
Pokud se chces s DS1820 bavit pres I2C tak muzes: pozij DS2482 (http://www.maximintegrated.com/datasheet/index.mvp/id/4382) coz je bridge mezi I2C a 1-wire.