Répondre à la discussion
Affichage des résultats 1 à 15 sur 15

DS18B20 : ordre d'identification



  1. #1
    Paintitblack

    DS18B20 : ordre d'identification

    Bonjour,
    Je m'excuse par avance si c'est une question bete !
    J'ai 3 capteurs de température DS18B20 sur le même bus one-wire.
    Ma routine (d'apres l'AN 162 du fabricant) de recherche du nombre de composants sur le bus et d'identification de leurs codes 64-bit respectifs ne pose pas de problème. Je lis les temperatures des 3 capteurs.
    Je me pose simplement cette question : dans quel ordre sont identifies les capteurs sur le bus ? Autrement dit, qu'est-ce qui fait que lors de la recherche des composants, tel capteur est toujours identifie en 1er, tel autre en second, etc... ?
    Merci de m'éclairer.

    -----


  2. Publicité
  3. #2
    Paintitblack

    Re : DS18B20 : ordre d'identification

    Personne n'utilise des DS18B20 ?
    Peut-etre que ma question n'est pas claire.
    Je m'explique a nouveau :
    J'ai 3 capteurs de temperature DS18B20 sur un bus one-wire.
    Chacun possede une adresse 64-bit unique.
    Je peux lire ces adresses en "cherchant" ce qu'il y a sur le bus.
    Ca fonctionne. Je recupere les adresses. Je peux m'adresser aux capteurs, j'obtient les temperatures.
    J'ai remarque que les adresses des capteurs me sont toujours retournees dans le meme ordre et je pensais que cela etait fonction de la position sur le bus. Mais a bien y regarder cela ne semble pas etre le cas.
    D'ou ma question : qu'est-ce qui fait qu'un capteur est reconnu (trouve) avant un autre ?
    De la reponse depend le traitement des info. par mon pic.
    Merci.

  4. #3
    vede

    Re : DS18B20 : ordre d'identification

    Bonsoir,

    c'est son adresse personnelle...

    c'est trié par l'algorythme de recherche des composants utilisé...

    selon un 1 ou un 0 au début ou à la fin de l'adresse...

    delà l'algo de recherche selectionne le composant ou non....

    puis passe au bit d'adresse suivant....


    tout ça pour dire que c'est trié au niveau de l'algo de recherche...

    vede
    ;O]

  5. #4
    Paintitblack

    Re : DS18B20 : ordre d'identification

    J'ai repris l'algo. fournit par Dallas dans le datasheet. Je vais l'etudier de plus pres.
    Mais en gros ca fonctionne comme ca ?
    Le Pic interroge : "qui a son code 64-bit qui commence par 1 ?"
    Un DS18B20 : "Moi, moi !"
    Le Pic : "Bon ben tu seras numero 1 dans ma liste !"

    Serieusement, y-a-t-il un moyen de savoir quelle temperature est renvoyee par quel capteur sans savoir precisement a qui appartient telle ou telle adresse 64-bit.
    Je souhaiterais que le capteur au bout de ma ligne mesure la temperature exterieure et celui juste avant la temperature interieure mais je ne veux pas avoir a noter sur chacun son code 64-bit pour le reconnaitre. En gros je voudrais que dans mon prog. je puisse facilement associer Temp1 avec Capteur1 etc...
    Merci.

  6. #5
    DavidDB

    Re : DS18B20 : ordre d'identification

    Salut,

    L'ordre des capteurs est retourné dans l'ordre de la première collision trouvée sur le bus en partant du bit0.
    Le capteur suivant est trouvé en débutant la recherche à l'endroit de la collision, mais en partant sur le niveau opposé de la dernière recherche à l'endroit de la collision(si nouvelle collision, on mémorise l'endroit pour continuer lors de la recherche suivante, et si pas de collision mémorisée, tous les capteurs sont énumérés).

    Donc, l'ordre retourné des capteurs, n'est ni croissant, ni décroissant, mais est l'ordre des collisions trouvées sur le bus 1Wire en partant du bit0.

    David.

  7. A voir en vidéo sur Futura
  8. #6
    vede

    Re : DS18B20 : ordre d'identification

    Bonsoir,

    c'est impossible, si plusieurs sondes sur un même bus...

    c'est possible en mettant une sonde par bus...
    là pas besoin de l'adresse pour qu'elle renvoie la température...

    et vu qu'en parasite power il suffit d'une ligne pour communiquer,
    il suffit de 3 I/O sur un uC pour créer 3 bus...

    vede
    ;O]

  9. Publicité
  10. #7
    vede

    Cool Re : DS18B20 : ordre d'identification

    Citation Envoyé par DavidDB Voir le message
    Salut,

    L'ordre des capteurs est retourné dans l'ordre de la première collision trouvée sur le bus en partant du bit0.
    Le capteur suivant est trouvé en débutant la recherche à l'endroit de la collision, mais en partant sur le niveau opposé de la dernière recherche à l'endroit de la collision(si nouvelle collision, on mémorise l'endroit pour continuer lors de la recherche suivante, et si pas de collision mémorisée, tous les capteurs sont énumérés).

    Donc, l'ordre retourné des capteurs, n'est ni croissant, ni décroissant, mais est l'ordre des collisions trouvées sur le bus 1Wire en partant du bit0.

    David.
    Bonsoir,

    ça, ça me rappelle des souvenirs, c'est bien ça ;O]

    ils sont fous ces algos ;O]

    vede
    ;O]

  11. #8
    Paintitblack

    Re : DS18B20 : ordre d'identification

    Le mode parasite power me semble un peu delicat a gerer.
    Je vais relever le code 64-bit de chacun des capteurs en ne mettant que lui sur le bus puis je leur mettrai un code couleur. C'est ce que je ne voulais pas faire mais c'est ce qui me semble le plus simple amoins que vous me convainquiez que le parasite power c'est finger-in-the-nose ;o)

  12. #9
    DavidDB

    Re : DS18B20 : ordre d'identification

    Pourquoi impossible???

    J'ai un système qui fonctionne avec 128 capteurs, et j'adresse celui que je veux, comme je le veux...
    Il suffit simplement d'attribuer un index au numéro du capteur et ensuite tu en fais ce que tu veux...

    David.

  13. #10
    vede

    Cool Re : DS18B20 : ordre d'identification

    Citation Envoyé par Paintitblack Voir le message
    Le mode parasite power me semble un peu delicat a gerer.
    Je vais relever le code 64-bit de chacun des capteurs en ne mettant que lui sur le bus puis je leur mettrai un code couleur. C'est ce que je ne voulais pas faire mais c'est ce qui me semble le plus simple amoins que vous me convainquiez que le parasite power c'est finger-in-the-nose ;o)
    Bonsoir,

    non, c'est bien cela qui doit être la meilleure solution...
    puis "adresser" chaque sonde sur le même bus pour avoir sa temperature...
    bien que le PAR n'ai rien de sorcier...

    vede
    ;O]

  14. #11
    Paintitblack

    Re : DS18B20 : ordre d'identification

    @DavidDB :
    Tu veux dire que tes 128 capteurs sont sur un seul bus (je pensais pas qu'on pouvait en mettre autant), donc a la queuleuleu et que tu sais precisement quelle est la temperature envoye par le 53e dans la ligne ?
    Moi aussi j'utilise un index mais je ne sais pas quelle temperature "appartient" a quel capteur.
    Tu peux m'en dire plus ?

  15. #12
    DavidDB

    Re : DS18B20 : ordre d'identification

    La position sur le bus n'est pas importante...

    Avec ou sans index, tu connais toujours la température d'un capteur précis...

    Donc, il suffit de lier l'adresse du capteur à un index, et donc, la température se rapportera à cet index qui est plus facilement manipulable que l'adresse sur 64bits...

    Cela donne : Adresse capteur -> Index numérique -> Nom explicite du capteur

    Sur la console PC, j'ai simplement le nom explicite du capteur avec sa température.

    Pour déterminer sa position physique, pas de miracle...
    Je chauffe la capteur, je fais la lecture de toutes les températures, et donc j'attribue l'index à l'endroit ou se trouve le capteur avec un nom explicite se rapportant à l'index.

    David.

  16. Publicité
  17. #13
    Paintitblack

    Re : DS18B20 : ordre d'identification

    Oui, ce que je comptais faire en fait.
    Merci beaucoup.

    PS : est-ce que c'est indiscret de te demander ce que tu mesures avec 128 capteurs ?

  18. #14
    Paintitblack

    Re : DS18B20 : ordre d'identification

    @vede :
    Merci beaucoup aussi.
    Comme tu sembles (avoir) utiliser le mode parasite power, peux-tu me dire qu'elles sont les difficultes particulieres que l'on rencontre en le mettant en oeuvre ? Est-ce que tout est affaire de timing precis ou y-a-t-il d'autres astuces ? J'avoue que je n'ai meme pas googlelé et que je pose la question dans le feu de l'action.

  19. #15
    DavidDB

    Re : DS18B20 : ordre d'identification

    Citation Envoyé par Paintitblack Voir le message
    PS : est-ce que c'est indiscret de te demander ce que tu mesures avec 128 capteurs ?
    C'est le hardware et le logiciel qui est prévu pour 128 capteurs, soit le maximum prévu par MaximIC afin d'être 100% compatible en toutes circonstances.

    Perso, j'utilise plus de 50 capteurs sur le même bus pour la gestion complète d'un chauffage sol 25 zones(circuits).

    Le mode parasite ne pose pas de problème particulier, mon système gère les 2modes sur le même bus (en hardware prévoir une résistance de plus pour les non-parasite si il y a mélange, afin que le capteur puisse supporter le forçage de la ligne à VDD le temps de charge du condo des parasites)

    David.

Sur le même thème :

Discussions similaires

  1. adresser des composant ds18b20
    Par invite9865321 dans le forum Électronique
    Réponses: 3
    Dernier message: 13/07/2008, 14h13
  2. ds18b20
    Par invite9865321 dans le forum Électronique
    Réponses: 7
    Dernier message: 06/06/2008, 14h54
  3. ordre partiel/ordre global
    Par delphinounette dans le forum Chimie
    Réponses: 4
    Dernier message: 18/12/2006, 15h21
  4. Pb D'identification Self
    Par FILOUP dans le forum Électronique
    Réponses: 4
    Dernier message: 09/08/2006, 10h21
  5. capteur de temperature dallas ds18b20
    Par Ryback08 dans le forum Électronique
    Réponses: 1
    Dernier message: 21/02/2006, 00h06