Dallas 18B20 - velikost přívodu

Zdravím všechny uživatele tohoto super fóra,
a zrovna mám dotaz ohledně maximální délky přívodu k teplotním čidlům Dallas 18B20. Chci tato čidla požít pro pokojový termostat řízený Picem se třemi měřícími místy.

Dík
Pavel

V literatuře se udává až 300 metrů pro komunikaci sběrnicí one-wire od Dallasu. Skutečnost je bohužel trochu jiná. V každém případě nelze při hraničních parametrech používat parazitní napájení.

Zkoušel jsem na 100m cívce kabelu UTP. +5V a GND na jednom páru a DATA a GND na druhém páru. Jelo to v pohodě. Přímo na nohy DS18B20 jsem připájel pullup odpor 3K3 a 100nF na napájecí přívody. Na osciloskopu jsem to nezkoušel, ale nějaké zaoblení signálu tam asi bude. Doma mám na cca 15m čidlo připojeno na plochý telefonní kabel TAK-4 a taky dobrý.
Mikop

PS. Možná bych ten titulek přejmenoval na Délku přívodu. Ta velikost je taková divná …

Záleží také dost na tom, jak budeš konfigurovat síť. Pokud vše pověsíš na jeden kablík, není problém. Pokud topologii sítě vytvoříš do hvězdy, tak to taky není problém, ale pokud postavíš síť jako páteř s odbočkami, pak záleží na délce jednotlivých odboček. Nicméně, pokud použiješ pouze tři měřicí místa, tak by jsi neměl mít potíže. Maxim předepisuje externí pullup 4k7, ale je potřeba provést úpravu hodnoty rezistoru dle délek vodičů sítě. Pokud by jsi použil pouze parazitní napájení (tj. vodič GND a pracovní DQ), mohl by jsi se dostat do potíží s napájením větších vzdáleností, to znamená, že by se vnitřní napájecí kondík nestihl dostatečně nabíjet a napájet tak obvod pro převod a přenos dat. Je tedy lepší použít ještě třetí vodič a přivádět k obvodům kompletní napájení (GND, DQ, U). Pullup lze upravovat. Mikop Ti potvrdil, že to ve sto metrech vodiče to pracuje na rezistoru 3k3.

Ještě poznamenám, že mám 2 čidla. Každé je na sólo pinu procesoru. Jedno cca 2m a to druhé těch cca 15m. Nikdy jsem nezkoušel více čidel na jedné sběrnici. Mrkni na s-o.webnode.cz/ Ten to takto používá.
Mikop

Děkuji moc za rychlé a pro mně dostačující odpovědi.
Pavel

Protože jsem se musel pro jednu zakázku one wire sběrnicí zabývat, tak jsem měl pověšeno na drátu 12 kousků teploměrů DS18B20 a paměti DS2433. Komunikace není sice nejrychlejší, ale problém to v provozu nečinilo. Navíc je možno přepnout komunikaci do fast režimu. Makalo to vše v pohodě.

Bude to chodit len treba zistit ci nebude potreba aktivny driver zbernice… Pri vecsich dlzkach nutnost… Druhouvmoznostou je znizenie odporu pullup. Doporucujem utp kabel

Dlouhé přívody k DS18B20 někdy způsobují naindukování vyššího napětí na signálovém vodiči než je napájní. Mám s tím dlouholeté zkušenosti. Takové zarušení pak způsobí, že na signálovém vodíči nedosahuje logická nula dostatečně nízké hodnoty a komunikace s DS18B20 se totálně zasekne a pomůže jen odpojit od napájení a znovu připojit.
Řešení je jednoduché. Naletuj mezi 3 vývody DS18B20 dvojitou sériovou LED v SMD (já tam dávám BAV99). Katodu první LED dáš na plus DS18B20, prostřední signálový vývod DS18B20 zapojíš na střed dipod a anodu druhé LED dáš na mínus DS18B20 a to je vše. Případné vyšší (nebo nožší než mínus) naindukované napětí ze signálového vodiče svede přes diodu do napájení a je klid. Jinak bez té úpravy to není spolehlivé a pokud budeš mít na sběrnici více DS18B20 na delších vodičích, je téměř jistota, že se ti to dřív nebo později sekne. Stalo se mi dokonce, že se mi to seklo na asi 1,5 m dlouhém přívodu.

Můžu vědět, kde jsi to měl zapojené? Myslím, že by to zajímalo i ostatní. Na 1,5m je to zaseknutí docela síla. Pokud jsem měl pocit ze zarušeného prostředí, použil jsem stíněný kabel (STP či SFTP - jeden pár data a GND a druhý pár plus a GND) a menší pullup odpor, cca 1K a 100nF na napajeni u čidla. Na vstupu MCU na datovém pinu jsem použil paralelně 5V1 zenerku. Ale vždy jedno čidlo na jednom vstupu MCU. A jak jsem tu psal výše, u mě dobrý. :slight_smile:

Zapojeno to bylo u lednice v nerezový pixli, takže rušení od kompresoru tam asi nějaký bylo… Kabel jsem neměl stíněný, to je fakt, protože jsem v tomto případě na takto krátkém drátu nepředpokládal.
Ale stávalo se mi to poměrně často, když jsem používal více čidel na jednom vstupu. Kdysi jsem tam v těchto případech letoval kondíky myslím 100n na napájení, samozřejmě pullup na plus. Pomáhalo to taky, ale ne stoprocentně. Už tam ty koďany vůbec nedávám, letuju jen ty diody a 100% úspěch. Od té doby jsem již nikdy tento problém neřešil.

:arrow_right: administrator: příspěvek byl upraven
Předchozí příspěvky se necitují.

Jo, ještě mě napadlo, že ta Tvoje zenera tam může taky sehrávat podobnou roli, ale ne na vstupu MCU. V těchto případech, když jsem tento problém řešil, bylo jedno, jestli tam ten pullup mám nebo ne, jak jsem již psal kondík pomáhal ale ne na 100%.

:arrow_right: administrator: příspěvek byl upraven
Předchozí příspěvky se necitují.