Bus 1wire heterogene et de grande longueur
Posté : mar. 14 déc. 2021 11:22
Bonjour,
j'ai rencontré beaucoup de problèmes avec le bus un fil et des sondes 18b20 .
J'ai un réseau filaire mon domicile qui a été installé à sa rénovation en utilisant des câbles: téléphonique, paire torsadés d'une autre époque (réseau AUI) bref
la pire réseau qui puisse exister bien loin du catégorie 5
Après beaucoup de mise au point et d'ajustement j'ai réussi a obtenir un fonctionnement à peu prêt correct j'ai donc 8 sondes qui sont reparties
en trois groupes avec un câblage en étoile, en effet le daisy chain conseillé sur la documentation dallas ne fonctionne pas du tout dans mon cas..
J'ai donc bidouillé en utilisant les conseils glanés ça et la sur le net . (résistance de 150 ohms en série sur la pin data de chaque capteurs et sur les groupes capacité sur l'alimentation en bout de ligne diode en inverse etc ),mais rien de cela ne m'a donné un fonctionnement correct .... Parfois disparition des sondes avec pour seule solution la mise hors tension du Raspberry un reboot ne changeant rien ..
J'ai donc pris le taureau par les cornes sorti mon scope et examiné tout cela, premier constat temps de montée des signaux minable (même avec une résistance de tirage de 1.5k au lieu de 4.7k .
je me suis dit que l'interface du raspi était peut être inadaptée et essayé une clef usb speciale DS9490R# c'était encore pire ....
Visiblement les capacités des câbles posent problèmes...mais pas que ....
Je me suis souvenu d'une astuce à une autre époque, pour compenser les capacités parasites des bases des transistors bipolaire (Neurodynage) , le problème est que cela fonctionne seulement à une plage de fréquence très réduite .
âpres moult essais j'ai obtenu une résultat ( cela tourne en boucle rapide depuis 8 jours sans problèmes ce qui était impossible avant)
1er chose une résistance de tirage de 1.5K au niveau du raspberry (avec des diodes transil de protection on ne sais jamais sur l'alimentation et la broche GPIO4)
j'utilise l'alimentation 3.3v du raspi puis pour chacune des trois branches un condensateur polypropylène de 2.2µF 63V en série avec la broche data et en bout de ligne une résistance de 10k entre data et +3.3 avec un condensateur de 470nF entre la masse et le +3.3v
Donc une alimentation propre au plus proche des sondes, et un couplage capacitif qui compense les capacités de câble, et isole des courants induits par les câbles (qui dans mon cas véhiculent aussi des tensions de commande 24v de vannes et de relais .
Avec ce montage un peu alambiqué j'ai des fronts beaucoup plus raide et plus de plantage il fallait donc en faire profiter tout le monde ....
voila si vous avez des explications elle sont les bienvenues mais l'essentiel est que ça fonctionne ...
j'ai rencontré beaucoup de problèmes avec le bus un fil et des sondes 18b20 .
J'ai un réseau filaire mon domicile qui a été installé à sa rénovation en utilisant des câbles: téléphonique, paire torsadés d'une autre époque (réseau AUI) bref
la pire réseau qui puisse exister bien loin du catégorie 5
Après beaucoup de mise au point et d'ajustement j'ai réussi a obtenir un fonctionnement à peu prêt correct j'ai donc 8 sondes qui sont reparties
en trois groupes avec un câblage en étoile, en effet le daisy chain conseillé sur la documentation dallas ne fonctionne pas du tout dans mon cas..
J'ai donc bidouillé en utilisant les conseils glanés ça et la sur le net . (résistance de 150 ohms en série sur la pin data de chaque capteurs et sur les groupes capacité sur l'alimentation en bout de ligne diode en inverse etc ),mais rien de cela ne m'a donné un fonctionnement correct .... Parfois disparition des sondes avec pour seule solution la mise hors tension du Raspberry un reboot ne changeant rien ..
J'ai donc pris le taureau par les cornes sorti mon scope et examiné tout cela, premier constat temps de montée des signaux minable (même avec une résistance de tirage de 1.5k au lieu de 4.7k .
je me suis dit que l'interface du raspi était peut être inadaptée et essayé une clef usb speciale DS9490R# c'était encore pire ....
Visiblement les capacités des câbles posent problèmes...mais pas que ....
Je me suis souvenu d'une astuce à une autre époque, pour compenser les capacités parasites des bases des transistors bipolaire (Neurodynage) , le problème est que cela fonctionne seulement à une plage de fréquence très réduite .
âpres moult essais j'ai obtenu une résultat ( cela tourne en boucle rapide depuis 8 jours sans problèmes ce qui était impossible avant)
1er chose une résistance de tirage de 1.5K au niveau du raspberry (avec des diodes transil de protection on ne sais jamais sur l'alimentation et la broche GPIO4)
j'utilise l'alimentation 3.3v du raspi puis pour chacune des trois branches un condensateur polypropylène de 2.2µF 63V en série avec la broche data et en bout de ligne une résistance de 10k entre data et +3.3 avec un condensateur de 470nF entre la masse et le +3.3v
Donc une alimentation propre au plus proche des sondes, et un couplage capacitif qui compense les capacités de câble, et isole des courants induits par les câbles (qui dans mon cas véhiculent aussi des tensions de commande 24v de vannes et de relais .
Avec ce montage un peu alambiqué j'ai des fronts beaucoup plus raide et plus de plantage il fallait donc en faire profiter tout le monde ....
voila si vous avez des explications elle sont les bienvenues mais l'essentiel est que ça fonctionne ...