ABCelectronique : portail d'information dans le domaine de l'électronique

Merci de ne pas poster des messages en relation avec le piratage.


    Forums de Abcelectronique > Electronique Analogique et Numérique
  » Améliorer le slew rate sur un bus 1-wire
Identifiant Se souvenir de moi ?
Mot de passe
Répondre     Nouvelle discussion
Améliorer le slew rate sur un bus 1-wire

 

david8887
david8887 ☆☆☆☆☆☆ 21/08/2017, 15h29 #1  
Bonjour à tous,
Je réalise un projet incluant 10 capteurs de températures DS18B20 sur bus 1-wire (relié à un Raspberry Pi 3 GPIO 04).
L'ensemble fonctionne très bien en essais, les 10 capteurs communique bien, le bus semble ok.

Par contre en situation avec des liaisons de quelques mètres pour mes sondes DS18B20 ce n'est plus la même histoire ! (la plus longues des sondes mesure 12m).

En effet, de bus 1-wire se met à 0V de façon aléatoire, et du coups plus aucunes lecture sur le bus.
De plus je constate que les signaux montent très difficilement (slew rate élevé) on dirait un effet capacitif...
Pour info j'utilise une résistance de pull-up de 2.2k, j'avais une 4.7k auparavant avec des résultats encore pire !
En PJ une capture d'oscillo de quelques fronts sur le bus.

Qu'en pensez vous ?

Merci d'avance
Miniatures attachées
Cliquez sur l'image pour la voir en taille réelle

Nom :  DS0020.PNG
Affichages : 36
Taille :  11,1 Ko
pym
pym ★★★★★★★ 21/08/2017, 16h15 #2  
Nature du câble utilisé?
A+
__________________
Je préfère les laides car elles sont plus lumineuses que les ampoulées
Thyratron
Thyratron ★★★★★☆☆ 21/08/2017, 17h05 #3  
Quand l'usb annonce des centaines de Mbits/s, ce n'est pas vrai à 10m, peut être 1m tout au plus.
Il existe une règle à ne pas oublier sur une liaison filaire : plus on communique loin, plus il faut ralentir le débit.
Si ce n'est pas possible, il faut prévoir une interface adaptée au débit: baisser l'impédance de la ligne, opto etc.
MINUX75
MINUX75 ★★★★★★ 21/08/2017, 17h56 #4  
Il faut mesurer l'impédance caractéristique du câble et adapter l'impédance de sortie en fonction. Voila une vidéo très explicite sur les lignes de transmission. https://www.youtube.com/watch?v=Uq050FZaoRc
AUDIOVALVE
AUDIOVALVE ★★★★★★★ 21/08/2017, 18h03 #5  
__________________
le gros problème des démocraties : c'est le peuple
jiherve
jiherve ★★★★★☆☆ 21/08/2017, 20h22 #6  
Bonsoir,
Tenter avec un pull up actif.
JR
guy92
guy92 ★★★★★★ 22/08/2017, 00h43 #7  
Commencer par lire la doc et la comprendre.
La longueur du bus , le type de câble, son impédance et son type d'isolant (pour la vélocité), les raccordements , la résistance de terminaison (ou pas) tout cela est assez critique et l'on ne peux faire n'importe quoi.
__________________
More the knowledge lesser the Ego, lesser the knowledge, more the Ego
david8887
david8887 ☆☆☆☆☆☆ 22/08/2017, 17h15 #8  
Bonjour, merci pour vos réponses.
pym : j'utilise du câble cat5e avec le branchement d'après l'image ci-dessous.

Thyratron : j'ai une topologie de bus étoile, détaillé dans l'image ci-dessous.
Est ce qu'un convertisseur de niveaux logiques pourrait m'aider ? je pourrait ainsi utiliser les capteurs 1-wire sur du 5V et transmettre en 3.3V à mon raspberry pi...
Pour le débit du bus 1-wire, je ne pense pas pouvoir agir dessus.

Minux75: merci pour le lien, j'ai bien regardé, et en effet je vois bien une énergie réverbérée, signe que mon impédance de ligne n'est pas adaptée, aussi une piste à travailler.

jiherve : Ok mais en quoi consiste le pull up actif ?

guy92 : En effet j'ai passé pas mal de temps sur le lien de ADIOVALVE, à savoir le site de MAXIME qui dans son TUTORIAL 148 traite des liaisons 1-wire longues.


Aujourd'hui j'ai ''nettoyé'' le signal 1-wire en changeant l'alimentation du montage, je me suis rendu compte que mon alim à découpage précédente introduisait beaucoup de bruits, et là depuis ça plante déjà beaucoup moins, mais ce n'est pas encore infaillible.
Surtout que l’environnement finale du projet se situe dans un milieu entouré de moteurs électriques (avec variation de vitesse), ce qui engendre encore une couche de perturbation !

Y'a t-il un filtre que l'on peut placer en entré pour augmenter l’immunité du bus 1-wire ?

Merci d'avance
Miniatures attachées
Cliquez sur l'image pour la voir en taille réelle

Nom :  DS18b20 Cat5 cable.jpg
Affichages : 23
Taille :  31,6 Ko Cliquez sur l'image pour la voir en taille réelle

Nom :  topologie reseau 1-wire.GIF
Affichages : 21
Taille :  25,3 Ko
AUDIOVALVE
AUDIOVALVE ★★★★★★★ 22/08/2017, 17h24 #9  
le choix même du bus one wire est surprenant en milieu pollué !
__________________
le gros problème des démocraties : c'est le peuple
david8887
david8887 ☆☆☆☆☆☆ 22/08/2017, 18h29 #10  
Ok. Est-il préférable de passer sur des capteurs NTC, avec un convertisseur AN?
AUDIOVALVE
AUDIOVALVE ★★★★★★★ 22/08/2017, 18h37 #11  
en milieu pollué , on préfèrera un bus symétrique bien plus résistant...
comme le RS485
__________________
le gros problème des démocraties : c'est le peuple
jiherve
jiherve ★★★★★☆☆ 22/08/2017, 19h35 #12  
Bonsoir
attaché un jpeg qui démontre l’intérêt d'un pull up actif, il utilise un npn et une diode(Q1,D1) la sortie est sur la jonction émetteur/anode, les deux autres transistors émulent la sortie du maitre.
Courbe en bleu avec pull up actif en vert avec pull up passif sur la même charge capacitive 10n (ce qui est énorme), c'est à 50Khz.
Bien sur s'il faut tenir le CC on rajoutera une petite résistance(10 ..47ohm) en série avec le collecteur en fonction du transistor utilisé et de la durée du CC admissible.
JR
Miniatures attachées
Cliquez sur l'image pour la voir en taille réelle

Nom :  activpull.jpg
Affichages : 35
Taille :  210,3 Ko

Dernière modification par jiherve 22/08/2017 à 19h45.
guy92
guy92 ★★★★★★ 23/08/2017, 09h01 #13  
Posté par david8887

Bonjour, merci pour vos réponses.
pym : j'utilise du câble cat5e avec le branchement d'après l'image ci-dessous.

Thyratron : j'ai une topologie de bus étoile, détaillé dans l'image ci-dessous.
Est ce qu'un convertisseur de niveaux logiques pourrait m'aider ? je pourrait ainsi utiliser les capteurs 1-wire sur du 5V et transmettre en 3.3V à mon raspberry pi...
Pour le débit du bus 1-wire, je ne pense pas pouvoir agir dessus.

Minux75: merci pour le lien, j'ai bien regardé, et en effet je vois bien une énergie réverbérée, signe que mon impédance de ligne n'est pas adaptée, aussi une piste à travailler.

jiherve : Ok mais en quoi consiste le pull up actif ?

guy92 : En effet j'ai passé pas mal de temps sur le lien de ADIOVALVE, à savoir le site de MAXIME qui dans son TUTORIAL 148 traite des liaisons 1-wire longues.


Aujourd'hui j'ai ''nettoyé'' le signal 1-wire en changeant l'alimentation du montage, je me suis rendu compte que mon alim à découpage précédente introduisait beaucoup de bruits, et là depuis ça plante déjà beaucoup moins, mais ce n'est pas encore infaillible.
Surtout que l’environnement finale du projet se situe dans un milieu entouré de moteurs électriques (avec variation de vitesse), ce qui engendre encore une couche de perturbation !

Y'a t-il un filtre que l'on peut placer en entré pour augmenter l’immunité du bus 1-wire ?

Merci d'avance



Bonjour,

Bus étoile?????
Déjà "Bus Etoile" me laisse rêveur
Si l'Etoile c'est la topologie pas de soucis... Comme se faisait le Token Ring
(Physique un anneau et topologie Etoile.)

Un bus physique, c'est que chaque tronçon de câble est chargé par un équipement et le départ du câble suivant ce qui ne cause pas "trop "de soucis au terminal.
Chaque terminal a pour charge la moitie de l'impédance caractéristique du câble et c'est calculé pour. Les terminaux d'extrémité sont chargées par un seul câble et une résistance de terminaison ce qui fait qu'il sont aussi chargés par la moitie de l'impédance caractéristique.

Première interrogation:
Ton répartiteur, il est fait comment?

Je n'ai pas le temps de lire toute la doc du sujet.
Si ton répartiteur est une simple connectique sans adaptation d'impédance il y a un gros soucis à ce niveau
En gros, au niveau du répartiteur, chaque câble voit comme charge de terminaison le 1/10eme de son impédance caractéristique, donc cela va entrainer des résonances dans tous les sens dépendant de qui émets et des longueurs de câbles différentes (cela se calcule voir Monsieur Bessel)

En bus étoile, et d'autant plus que tu as de nombreuses branches, il faut faire une adaptation d'impédance qui va entrainer une atténuation. Pas de soucis il y a de la marge, si les liaisons sont courtes

Les fils inutilisées des câbles sont en l'air?
C'est du câble UTP?

Que recommande le constructeur?
__________________
More the knowledge lesser the Ego, lesser the knowledge, more the Ego
dspix
dspix ★★★★★★★ 23/08/2017, 10h05 #14  
Salut,

Comme d’habitude le problème est pris à l'envers !

On ne part pas d'un bus pour ensuite d'essayer de le faire marcher dans un environnement particulier, MAIS on part d'un environnement particulier dans le lequel on va mettre en ouvre le bus le plus adapté.

Le 1wire, spi, I2C etc sont des bus initialement fait pour causer au seins d'une même carte, ou d'un ensemble de carte... Même si certains arrivent a faire fonctionner hors spec, on est clairement pas en présence de bus dont la robustesse permet l'usage sur une grande longueur dans un environnement industriel bruité....

Le type de bus matériel est une chose, il y'a ensuite le protocole qui joue aussi pour beaucoup dans la robustesse. Des lors qu'il y'a risque de perturbation importante, il faut mettre en place des systèmes de vérification a minima ou de correction d'erreur. Cela évite de prendre des données qui sont fausse.

bref, la solution raspberry, c'est bien pour bricoler à la maison ou à l'école, mais n'est absolument pas adapté à un usage en environnement industriel...
__________________
A+
Damien
jiherve
jiherve ★★★★★☆☆ 23/08/2017, 11h57 #15  
Bonjour,
Avec le 1 wire l'adaptation d’impédance est illusoire puisque l'esclave pompe son alimentation sur le bus. Si donc signal adapté alors il est vraisemblable que le niveau de tension sera insuffisant pour alimenter le capteur.
Le lien donné #5 par Audiovalve est très explicite.
JR
Acetronics
Acetronics ★★★★★★ 23/08/2017, 18h08 #16  
Pour info,

j'ai un ami Anglais qui a fait une gestion complète de ses serres avec le bus OneWire ... ( 3 serres , de 10 à 25m de cable suivant la serre)

Hormis le montage présenté au #5, et qu'il n'utilise pas l'alim "fantôme", rien de particulier , et ça fonctionne parfaitement depuis déjà quelques années ...

Bon, c'est aussi un environnement très peu perturbé électriquement ...

Alain

PS: la longueur MAX, ... c'est 17m et pas 44m .... une paille !!!
__________________
Si ta question contient le mot " Problème " ...
la réponse est très très très probablement " lis donc ton manuel ou ta datasheet !!! "

Dernière modification par Acetronics 23/08/2017 à 18h13.
AUDIOVALVE
AUDIOVALVE ★★★★★★★ 23/08/2017, 18h21 #17  
tout comme pour Ethernet : c'est la distance de collision.
__________________
le gros problème des démocraties : c'est le peuple
david8887
david8887 ☆☆☆☆☆☆ 23/08/2017, 21h42 #18  
Merci pour vos réponses.
guy92: le répartiteur est simplement constitué de connecteurs 3 positions sur une plaque à trous.
d'après jiherve il n'y aurait donc pas d'adaptation d'impédance à réaliser...
Le câble utilisé est bien du UTP, mais je pense utiliser du FTP en environnement perturbé.
Les fils inutilisés sont bien "en l'air" est-ce grave ?
Le fabricant préconise du cable cat 5e

dspix : je crois avoir vu des réalisations à base de Raspberry Pi sérieuses dans le monde industriel,
il y a par exemple https://www.rexcontrols.com/rex-con...em-raspberry-pi
ou encore des projets comme le UniP
https://www.netram.co.za/2094-unipi...rry-pi-plc.html
Thyratron
Thyratron ★★★★★☆☆ 24/08/2017, 08h50 #19  
L'adaptation en impédance peut être oubliée.
Le relevé du signal que vous avez joint, montre un décrochement du flanc.
Il ne s'agit pas d'une réflexion électrique mais un changement d'état (écoute-transmission) des circuits d'interface donc de charge de la ligne.
Il faut remarquer le bruit sur le signal lors de la transition qui peut expliquer les soucis de dialogue.
Selon la source, le câble possède une capacité linéaire. Plus la liaison est longue, plus elle est élevée.
Cette valeur peut varier dans des proportions importantes avec la température. Le froid la fait augmenter, ce qui peut produire, le jour ça marche, la nuit, moins bien.

Un essai sur table avec la longueur de câble nécessaire est facile à réaliser.
Faire très attention à la qualité des alimentations, celle des signaux devrait suivre.
david8887
david8887 ☆☆☆☆☆☆ 24/08/2017, 20h15 #20  
Ok merci pour les conseils, en effet j'ai changer l'alimentation, elle perturbais effectivement le signal.
Là ça tourne depuis 24h sans plantage... en espérant que ça dur.
L'alimentation joue vraiment un rôle primordiale dans n'importe quel montage !
Acetronics
Acetronics ★★★★★★ 25/08/2017, 16h05 #21  
Posté par david8887

L'alimentation joue vraiment un rôle primordiale dans n'importe quel montage !



c'est pour ça qu'on te répète toujours de ne pas aller chez Mc Do ... ( ceux qui ont connu J.Borel comprendront !!!! )

Alain
__________________
Si ta question contient le mot " Problème " ...
la réponse est très très très probablement " lis donc ton manuel ou ta datasheet !!! "
rlo69
rlo69 ★★★★☆☆☆ 25/08/2017, 16h27 #22  
Bonjour,

Sur les aires d'autoroutes, le restoroute Jacques Borel, bien connu pour ces toilettes à la fin du repas.
Heureusement, je n'y ai jamais mis les pieds, je préférais mon sandwich au jambon.

Cordialement
Répondre