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ří:
- 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).
- 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.
- 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.
- 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:
- 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).
- 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.
- 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í.
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