Etude du bus 1-wire au travers du capteur de température dallas ds18s20
Ce rapport se propose de résumer l’emploie du capteur de température DS18S20.
Données de bases : * Bus de données sur pin DQ en 1-Wire ; * Tension d’alimentation entre les pins VDD et GND : de 3V à 5V ; * Plage de mesure avec une précision de ±0,5°C : -10°C à +85 ; * Plage de fonctionnement : -55°C à +125°C ; * Codage de la température sur 9 bits ; * Possibilité d’alarme avec stockage de la donnée sur mémoire non volatile ; * Chaque DS18S20 comporte une adresse unique codée sur 64bit, on peut donc adresser plusieurs capteurs reliés sur le même bus 1-Wire ; * Possibilité d’alimenter le capteur via le bus. En effet il contient une capacité pour s’auto alimenter quand le bus est au niveau de tension basse ; * La température est codée en complément à deux sur 16bits (00AAh = +85.0°C ; 0001h = 0,5°C ; 0000h = 0°C ; FFFFh = -0,5°C ; FF92h = -55.0°C)
Principe de fonctionnement
La ROM de 64bit contient l’adresse du capteur. Le SCRATCHPAD contient 9 Octets (bytes). La température y est codée sur 2 octets (octet 0 ->LSB) (Octet 1 -> MSB). Les bit T H (alarme température haute dépassée) et TL (température basse dépassée) sont stockés sur de l’EEPROM, donc si l’alimentation du capteur est coupée, il est possible de récupérer les valeurs ultérieurement. Ces bits sont accessibles via le SCRATCHPAD.
Il faut placer une résistance de 4,7kΩ « pullup » sur le bus afin de maintenir à VPU la tension sur la ligne.
64-bit ROM contenant l’adresse
Le CRC est calculé à partir des 58 premiers bits seulement.
Organisation des registres EEPROM du capteur (SCRATCHPAD)
Quand on cherche à lire le SCRATCHPAD il faut utiliser la commande BEh. Le capteur envoie le registre (SCRATCHPAD) en entier en commençant par le LSB de l’octet 0.
Octets (bytes) 0 et 1
Ces deux octets contiennent la température mesurée après conversion. LSB octet 1 , MSB octet 2. En lecture seul.