1-wire sběrnice – nefunguje ti čidlo? Nejčastější problémy jsme tu popsali a vyřešili.

1-wire sběrnice patří mezi ty velmi populární. Díky ní jednoduše připojíš různé čidla nebo paměti. Ale i tato sběrnice má kromě výhod i své nevýhody a během jejího používání můžeš navíc narazit na problém, kdy to prostě nebude fungovat. V tomto článku ti poradíme jak případné problémy vyřešit nebo lépe, vyhnout se jim.

Jak z názvu vyplývá 1-wire sběrnice je sběrnice, kde se data mezi zařízeními vyměňují skrze jeden jediný vodič. K nim je potřeba napájení. Mezi typického představitele dozajista patří teplotní čidlo DS18B20.

Naše vývojová deska Meteo Mini a už připravenou pozici pro jeho osazení.

Základními vlastnostmi 1-wire sběrnice patří:

  1. Jeden vodič pro komunikaci: Sběrnice 1-Wire používá pouze jeden vodič pro přenos dat. To zjednodušuje zapojení a umožňuje snadnou integraci do různých zařízení. Sběrnice je určená pro pomalý přenos dat (16.3kbit/s).
  2. Unikátní identifikace zařízení: Každé zařízení připojené k sběrnici 1-Wire má unikátní 64bitovou sériovou číslici (ROM kód), která umožňuje jednoznačnou identifikaci zařízení v síti.
  3. Parazitní napájení: Sběrnice 1-Wire umožňuje napájení připojených zařízení pomocí parazitního napájení. To znamená, že zařízení mohou být napájena pouze pomocí signálu datového vodiče, což snižuje požadavky na počet vodičů v kabelu ze tří na dva.
  4. Komunikace pomocí časování: Komunikace na sběrnici 1-Wire je synchronní a probíhá pomocí časovaných impulsů. Zařízení jsou řízena master zařízením (např. mikrokontrolérem), které generuje časové impulsy pro odesílání a přijímání dat.

Mezi problémy při použití 1-wire sběrnice jsou:

  1. Rušení a interferenční problémy: Komunikace na 1-wire sběrnici může být citlivá na rušení – elektromagnetické – a interferenci z jiných zařízení nebo elektrických signálů. To může vést k nespolehlivé komunikaci.
    • Řešením je použití kvalitních stíněných vodičů, které zamezí rušení do kabelu. Nezapomeň, že i stínění musí být připojeno k zemi, tedy záleží i na kvalitním uzemnění na straně MCU.
    • Pokud je to možné, vyhni se problémovým místům, které by komunikaci mohla zarušit – například silové vedení. Je také vhodné zvážit použití ochranných obvodů (ochranné diody, optické oddělovače, feritové perly).
  2. Délka sběrnicového kabelu: Délka kabelu použitého na sběrnici 1-Wire může ovlivnit spolehlivost komunikace. Příliš dlouhé kabely mohou způsobit ztrátu signálu a snížení spolehlivosti celého systému.
    • Rychlost komunikace je definovaná a není možné jí změnit. Délka vedení může být i několik desítek metrů.
    • Vyhnout by ses měl ale i odbočkám na vedení. I když sběrnice dokáže fungovat na desítky metrů, je důležité vyhnout se dlouhým odbočkám či síti typu hvězdice.
    • Nezapomeň, že kominikace do čidla, změření dat a komunikace z čidla může trvat dlouho. Proto dodrž specifikaci dle datasheetu jednotlivých čidel.
    • Odstranění chyb v komunikaci je tedy prakticky řešeno zejména změnou kabeláže za kvalitnější. Mezi další úpravy, které mohou pomoci je zkrácení kabelu, snížením pul-up rezistoru (z napájení na datový vodič) nebo snížení jednotek na jedné sběrnici.
  3. Parazitní napájení: Parazitní napájení, kde je napájení zařízení přenášeno přes datový vodič, může být citlivé na napěťové úbytky a může vést k nestabilnímu napájení a nespolehlivé komunikaci.
    • Parazitní napájení je zajímavou předností sběrnice 1-wire. Dovoluje použít pouze dva vodiče (GND, napájení+data) namísto tří (GND, napájení, data). Mezi negativa ale patří vyšší citlivost na rušení, nižší přenesený výkon a s tím spojené možné omezení jednotek na sběrnici. Parazitní napájení není vhodné pro všechny aplikace, zejména pro ty, které jsou náročné na kvalitní napájení.
Parazitní napájení čidla

4. Adresace a identifikace zařízení: I když každé zařízení na sběrnici 1-Wire má unikátní identifikátor, může dojít k chybě v identifikaci, pokud je tento identifikátor poškozen nebo nečitelný. Například vlivem rušení nebo nekvalitního napájení.

5. Podpora hardware a software: Některé platformy a mikrokontroléry nemusí mít vestavěnou podporu pro sběrnici 1-Wire, což může znamenat dodatečnou práci při implementaci potřebných funkcí.

6. Problémy s fyzickým propojením: Špatné propojení nebo poškození kabelu může způsobit problémy s komunikací a spolehlivostí celého systému.

7. Neočekávaná hodnota z čidla: Čidlo ti chodí, ale dostáváš špatná/neočekávaná data? Možná je problém v inicializaci nebo čtením dat před dokončením měření. Na tuto vlastnost některých čidel, třeba DS18B20, která vrací +85°C) upozornil Petr Klosko. Nejlepší způsobem, jak problém vyřešit, je využít vzorový kód výrobce – jakým způsobem má provedenou inicializaci čidla, jakým způsobem kontroluje dokončení měření atp.

Některá čidla nepodporují parazitní napájení i když je v datasheetu uvedeno, že ano. Důvodem můžeš být to, že je to padělek, fejk. Na internetu najdete různé testovací kódy pro jejich testování.

https://github.com/joysfera/DS18B20-tester nebo https://github.com/cpetrich/counterfeit_DS18B20

Při návrhu sítě s 1-wire sběrnicí se podívej na tento guideline. Můžeš tak předejít spoustě problémům – https://pdfserv.maximintegrated.com/en/an/AN148.pdf

Článek byl upraven na základě podnětů dalších bastlířů. Děkujeme. https://www.facebook.com/LaskaKit/posts/pfbid02HDXS5ncsFoDYYHWLGzjmz3WAponUYgCbDuq9eLKPhPFqiSNjDGavxVM9mJja35Svl

Sdílet článek

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Mohlo by se také líbit