Pièces: capteur de température à 1 fil (DS1822)

Télécharger: Buspirate.v0d.zip

Le protocole 1 fil de Dallas / Maxim est l’ajout le plus demandé au pirate de bus. Nous avons enfin obtenu quelques parties 1 files et nous montrerons aujourd’hui le thermomètre numérique DS1822 1 fil. Prenez la fiche technique (PDF) et vous conformez.

Cette publication est partie avec la version v.0d du micrologiciel du pirate de bus pour la version 0. Ceci inclut la nouvelle bibliothèque de protocoles 1 fil, plus d’options de configuration et d’autres améliorations.

DS1822 Thermomètre numérique sur le climat économique (DIGIKIKEY # DS1822 + -ND, 3,87 $) Nous avons découvert une empreinte dans la bibliothèque à 1 fil pour Eagle sur la page de téléchargement de Cadsoft.

Le protocole à 1 fil utilise un seul câble pour le transfert de données et parfois la puissance. Les données sont transférées dans les «emplacements» sensibles au temps car il n’y a pas une horloge séparée pour délimiter les périodes de bits.

Pirate de bus

DS1822

SDA

Dq

+ 5Volts
Vdd

Sol

Gnd

Les connexions DS1822 sont indiquées dans la table. Nous avons utilisé l’alimentation 5 Volt du pirate du bus pour alimenter le DS1822, mais cela fonctionne également à 3,3 volts. Une résistance (R1, ~ 5K) maintient le bus haut.

Toutes les commandes 1 fil commencent par une procédure de réinitialisation, respectées par l’une des cinq commandes rom.

Commander
La description

0x33
Lire la rom. Vérifié l’adresse de gadget unique.

0x55
Match Rom. Correspondre à l’adresse du gadget, respectée par une adresse 64 bits.

0xcc
Skip Rom. Adressez tous les gadgets ensemble.

0xec
Recherche d’alarme. Parcourir pour la condition d’alarme.

0xf0
Rom de recherche. partie de la procédure d’énumération de l’adresse.

Les commandes ROM sont expliquées à la page 10 de la fiche technique. Toutes les commandes ROM sont proposées sous forme de macros dans la bibliothèque de bus pirate 1, voir (0) pour un menu. Les macros de commande ROM incluent la procédure de réinitialisation de bus à 1 fil.

Appareil unique

Tous les gadgets à 1 fil ont une adresse unique de 64 bits (8 byges) et certains gadgets à 1 fil sont utilisés uniquement pour fournir à l’électronique un numéro de suivi unique. Lorsqu’un gadget unique est lié à un bus à 1 fil, la commande check Out ROM extrait son adresse.

1-fil> {0x33 r: 8 <-Command Réinitialisation du bus XXX 1Wire OK xxx 1Wire écrit: 0x33 <-Read ROM XXX 1Wire en vrac lire, 0x08 octets: 0x22 0x47 0x45 0x22 0x00 0x00 0x00 0x29 <-ID # 1 filtre>

La commande envoie une réinitialisation de bus ({), la commande rom cochée (0x33) et lit l’adresse 64 bits (R: 8, 8 octets * 8bits / octets = 64bits).

Le tout premier octet (0x22) détermine ceci sous forme de thermomètre DS1822. Les 6 octets suivants sont uniques à cet appareil et le dernier octet est un CRC des 7 octets précédents.

Nous pouvons maintenant aborder le gadget avec la commande correspondante ROM et l’envoyer d’autres instructions.

1-fil> {0x55 0x22 0x47 0x45 0x22 0x00 0x00 0x00 0x29 0x44
Réinitialisation du bus XXX 1Wire OK
XXX 1Wire Ecrire: 0x55 <-Match ROM Commande XXX 1Wire Ecrire: 0x22 <-Start Adresse XXX 1Wire Écrire: 0x47 XXX 1Wire Écrire: 0x45 XXX 1Wire Écrire: 0x22 XXX 1Wire Écrire: 0x00 XXX 1Wire Écrire: 0x00 XXX 1Wire Écrire: 0x00 XXX 1Wire Écrire: 0x29 XXX 1Wire Écrivez: 0x44 <-Start Conversion 1 filtre>

Premièrement, nous envoyons la commande correspondante ROM (0x55) et l’adresse de gadget (8 octets). Suivant est la commande T Convert T (0x44, Fiche technique page 11) qui démarre la conversion de la température.

Une deuxième séquence de commandes récupère la lecture de la température de la DS1822.

1-fil> {0x55 0x22 0x47 0x45 0x22 0x00 0x00 0x00 0x29 0xbe R: 9
Réinitialisation du bus XXX 1Wire OK
XXX 1Wire Écrire: 0x55
XXX 1Wire Écrire: 0x22
… Adresse longue 1 fil …
XXX 1Wire Écrire: 0x29
XXX 1Wire Écrivez: 0xbe <-Rewread ScratchPad Command XXX 1Wire en vrac lecture, 0x09 octets: 0x71 0x01 0xFF 0x00 0x7f 0xFF 0x0F 0x10 0xf8 1 filtre>

La commande de scratchPad à décédération (0xbe, fiche technique page 11) renvoie 9 octets. Nous ne nous soucions que des deux premiers octets, le reste peut être décodé selon le tableau à la page 7 de la fiche technique. La température est calculée en fonction de la page 4 de la fiche technique: 0x0171 hex = 369 déc, 369 * 0,0625 = 23C (74F).

Plusieurs appareils

Lorsque plusieurs gadgets 1 fil partagent un bus, il est plus difficile de déterminer toutes les adresses. La méthode la plus rapide pour découvrir les gadgets connectés est la commande BrowseSe Rom (0xf0) et une procédure de ramification binaire. Le pirate de bus l’automatise avec Macro (240).

1-fil> (240) <-macro 240 Commande XXX 1Wire Rom: Parcourir (0xf0) Trouvé des gadgets à: Adresse macro 1 fil 1.0 × 22 0x50 0x28 0x22 0x00 0x00 0x00 0x0a <-Address * DS1822 Econ Dig Therm <-Type selon le code du ménage 2.0 × 22 0xd0 0xc7 0x1a 0x00 0x00 0x00 0x01 * DS1822 ECON DIG THERM THERM 3.0 × 22 0x47 0x45 0x22 0x00 0x00 0x00 0x29 * DS1822 ECON DIG THERM THERM Trouvé 0x03 périphériques. Les 10 premiers identifiants de gadgets sont proposés par Macro, voir (0). 1 filtre>

La commande BROWSEE ROM indique les gadgets qu’il a trouvés et le type selon le code du ménage.

Nous pensons que la dactylographie des adresses 1 byte à 1 fils est vraiment fastidieuse, de sorte que les 10 premières adresses de gadgets sont conservées en mémoire et peuvent être consultées avec les macros (1) … (10). Un tampon pour autant que 50 adresses de gadgets peut être définie dans la bibliothèque à 1 fil à la compilation. Idéalement, ces données seront conservées dans un tampon de rayures mondial partagé par tous les modules dans une future mise à jour du micrologiciel.

1-fil> (0) <-Show macro liste 0.macro Menu Macro Adresse de 1 fils

Send your Comment

Your email address will not be published. Required fields are marked *