DS18B20 respektive 1-Wire Dallas

Lukáš Grepl L.Grepl@sh.cvut.cz
Úterý Duben 8 09:43:39 CEST 2008


> Muzete nejake reseni budice doporucit,to co je popsano v AN244, je mozna
> hezke,ale bohuzel nemam volne 3 piny MPU.

No můžu Vám doporučit jeden "hack" - taková menší prasárna, ale v praxi 
výborně funguje. Po odvysílání "startbitu" při čtení (startbitem myšlena 
log.0 několik us na začátku každého bitu/slotu) dát na chvíli (asi 
1-2us) "tvrdou" log.1. Pokud některý z Dallasů už vysílá log.0, teče 
proud do zkratu (je vhodné omezit výstupním odporem budiče, tak cca 
50-100R), ale to v zásadě ničemu nevadí (je to podobné jako při buzení 
kapacitní zátěže, prostě je na okamžik proud vyšší). Pokud chce ovšem 
některý Dallas vysílat log.1 nebo je prostě sběrnice prázdná, tento 
impuls vytáhne napětí do log.1 prakticky okamžitě, na rozdíl od 
pull-upu. Dále v poslední fázi čtecího cyklu, kdy už slave sběrnici do 
nuly netahá a je nutné zajistit, aby sběrnice došla rychle do log.1 
(ukončení slotu), master opět dá natvrdo log.1 (posledních řekněme 20us 
cyklu). Pokud master vysílá, potom samozřejmě budí sběrnici po celou 
dobu bitu. Takhle se dá zvládnout středně velká sběrnici s jedním pinem 
procesoru a pasivním pull-upem nekritické hodnoty. Hodnoty píšu z hlavy, 
už si to úplně přesně nepamatuju.
Ale korektně udělaný budič, na který ale ty tři piny prostě z principu 
potřebujete, je rozhodně lepší, než budit to přímo pinem procesoru. 
Ještě můžete zkusit kompromis s využitím dvou pinů, jeden bude vstupní a 
zároveň se bude používat pro buzení do log.1 a druhý bude ovládat 
tranzistor (NPN nebo spíš N-MOSFET) pro tahání do log.0.

> Jeste otazku,jak resite vazbu programu v MCU na SN DS1820? Ukaldate SN
> do kodu pri prekladu nebo je ukadate do EEPROM?

Pokud mám jedno čidlo, tak si adresu přečtu pro rozlišení typu čidla, 
jinak samozřejmě není adresa potřeba. U sběrnic jsou adresy při 
konfiguraci nahrány do EEPROM. Teda někdy i do Flash, ale to už je 
implementační detail - prostě v každém případě jsou nahrávány dynamicky, 
nikoliv při překladu.

Lukáš Grepl



Další informace o konferenci Hw-list