Bus 1wire heterogene et de grande longueur

Pour les questions spécifiques sur le Raspberry Pi

Modérateur : Francois

Répondre
JBaill
Messages : 24
Enregistré le : jeu. 14 juil. 2016 10:36

Bus 1wire heterogene et de grande longueur

Message par JBaill » 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 ...

destroyedlolo
Raspinaute
Messages : 1585
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: Bus 1wire heterogene et de grande longueur

Message par destroyedlolo » mar. 14 déc. 2021 14:40

Salut,

Avant tous, j'ai un réseau de plus de 70m ou il y a 25 sondes de températures mais aussi PIO.
Et je n'ai strictement aucun problème, et pourtant, mon bus passe a coté du congélo, vers la pompe de la piscine, la TV ... donc des sources de parasitages.
JBaill a écrit :
mar. 14 déc. 2021 11:22
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
Mon réseau est entièrement fait de cable téléphonique. Pas de pb non plus avec les paire torsadés de ton réseau AUI ... mais il faut proscrire les cables blindés.
JBaill a écrit :
mar. 14 déc. 2021 11:22
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 ....
Du coup, t'utilise directement les GPIO du PI ????
C'est une très mauvaise idée car il ne sont pas prévus pour :
  • ca stresse leur électronique spécialement pour un réseau long
  • le driver kernel n'est pas génial avec des "stop de world" pour respecter les timing ... donc nul si ton PI sert aussi a autre chose
  • le nombre de chip supporté est réduit
  • ...
La solution est d'utiliser des adaptateur I2C -> 1W comme je l'explique sur mon site. En plus, ils vont protéger le PI et t'éviter de mettre des bouchons ou autres.

Bonus, tu peux aussi passer ton réseau en 5V ce qui securise niveau parasitage.
JBaill a écrit :
mar. 14 déc. 2021 11:22
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 )
La résistance de 150 ohms sert a protéger les chips de courants induits.
Quand aux diodes, je pense que c'est la même chose pour protéger des orages.

Sur cette page, j'ai mis d'autre utilisation que simplement la température, par exemple la commande de la pompe de ma piscine. D'autres trucs a venir ...

A+
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

JBaill
Messages : 24
Enregistré le : jeu. 14 juil. 2016 10:36

Re: Bus 1wire heterogene et de grande longueur

Message par JBaill » mer. 15 déc. 2021 14:41

Merci de tout ces précieux conseils.
le problème dans mon cas c est que j'utilise toute les autre broches du rasp donc impossible d'utiliser l'i2c.
Je pense que passer en 5 volt sur les lignes capacitives n'arrange rien bien au contraire, puisque c'est le temps de montée qui est important...
Mais je vais retenter de faire fonctionner la clef usb interface DS9490 le problème est sûrement que la résistance de tirage est trop élevée pour mon réseau je vais donc lui ouvrir le ventre ....
Je trouve cela un peu drôle qu'une interface à 35 euros fonctionne aussi mal mais il est vrais que ce bus n'a jamais été conçu pour des longues lignes ....
En tout cas la nouvelle config fonctionne pour l'instant (8 jours sans planter du jamais vu)
Reste plus qu'a attendre les orages.....

destroyedlolo
Raspinaute
Messages : 1585
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: Bus 1wire heterogene et de grande longueur

Message par destroyedlolo » mer. 15 déc. 2021 19:21

JBaill a écrit :
mer. 15 déc. 2021 14:41
le problème dans mon cas c est que j'utilise toute les autre broches du rasp donc impossible d'utiliser l'i2c.
Si tu les utilises déjà de l'I2C, j'imagine que tu sais que tu peux les chainer sans problème ;) c'est même fait pour ca.
Sinon, tu devrais pouvoir trouver un bus I2C sur les ports dédiés a l'écran et à la caméra. Conditionnel car je sais que c'est le cas sur mes bananaPI, je n'ai pas vérifié sur le Raspberry.
JBaill a écrit :
mer. 15 déc. 2021 14:41
Je pense que passer en 5 volt sur les lignes capacitives n'arrange rien bien au contraire, puisque c'est le temps de montée qui est important...
Ben pas vraiment car les chips 1-wire ont leurs propres capacités internes qui servent pour le mode parasite. Du coup, même avec une polarisation longue a monté, ca ne pause pas de problème pour peu que tu laisses les dites capa le temps de se recharger (je les interroges en batch toutes les 5 minutes et je n'ai pas eu ce pb).
Par contre, si tes lignes sont capacitives, ce sont les data qui vont merdés dans tous les cas ce qui peut expliquer pourquoi tu perds des sondes.
JBaill a écrit :
mer. 15 déc. 2021 14:41
Reste plus qu'a attendre les orages.....
Pour ca malheureusement, je n'ai pas trouver de solutions et j'avais demandé a Dallas qui m'avait répondu qu'ils n'avaient pas de solutions et mon renvoyé sur le montage classique a base de diode faites par un amateur et donc qu'ils ne garantissent pas.
La foudre est tombée a 1 centaines de metres de chez moi et ca a grillé 1 de mes DS18b20 ... et une tablette qui était branchée sur ma freebox par USB :evil:
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

Répondre

Retourner vers « Raspberry Pi (tout modèles) »