Ce site contient essentiellement des notes de travail. Le contenu est en constante évolution, et loin d'être achevé. (+ d'infos)
La plupart des documentations informatiques sont orientées Debian / Ubuntu.

Electronique/Hardware/Outils/Bus Pirate/Protocoles/1-wire

De Ordinoscope.net
Sauter à la navigation Sauter à la recherche

Test de lecture d'une ou plusieurs sondes de température DS1820

Connexions

Bus Pirate 1-wire.png
Bus Pirate Dir. Circuit Description
MOSI DQ Serial Data
GND GND Signal Ground

Exemple à 1 sonde

HiZ> m
1. HiZ
2. 1-WIRE
3. UART
4. I2C
5. SPI
6. 2WIRE
7. 3WIRE
8. LCD
x. exit(without change)

Passe en mode 1-wire

(1)> 2
1WIRE routines (C) 2000 Michael Pearce GNU GPL
Ready

Active l'alimentation

1-WIRE> W
Power supplies ON

Détection de l'adresse du DS1820

1-WIRE>[0x33 r:8
BUS RESET  OK
WRITE: 0x33 
READ: 0x10 0x47 0xF5 0xA8 0x01 0x08 0x00 0x17

Démarrage de la conversion (0x44)

1-WIRE>[0x55 0x10 0x47 0xF5 0xA8 0x01 0x08 0x00 0x17 0x44

Demande la valeur mesurée (0xbe) + reçoit 9 bytes (r:9)

1-WIRE>[0x55 0x10 0x47 0xf5 0xa8 0x01 0x08 0x00 0x17 0xbe r:9
BUS RESET  OK
WRITE: 0x55 
WRITE: 0x10 
WRITE: 0x47 
WRITE: 0xF5 
WRITE: 0xA8 
WRITE: 0x01 
WRITE: 0x08 
WRITE: 0x00 
WRITE: 0x17 
WRITE: 0xBE 
READ: 0x30 0x00 0x4B 0x46 0xFF 0xFF 0x0A 0x10 0x47

Les 2 premier bytes contiennent la température. Dans cet exemple, pour faire simple:

t => (0x30 0x00) 48 / 2 = 24°C

Exemple à 2 sondes (macros)

Cherche les sondes

1-WIRE> (240)
SEARCH (0xF0)
Macro     1WIRE address
 1.0x10 0x7E 0x61 0xA9 0x01 0x08 0x00 0x4B
   *DS18S20 High Pres Dig Therm
 2.0x10 0x47 0xF5 0xA8 0x01 0x08 0x00 0x17 
   *DS18S20 High Pres Dig Therm
Device IDs are available by MACRO, see (0).

Démarrage de la conversion (0x44)

1-WIRE> (85) (1) 0x44
BUS RESET  OK
MATCH ROM (0x55)

ADDRESS MACRO 1: 0x10 0x7E 0x61 0xA9 0x01 0x08 0x00 0x4B 

WRITE: 0x44 

Demande la valeur mesurée (0xbe) + reçoit 9 bytes (r:9)

1-WIRE> (85) (1) 0xbe r:9
BUS RESET  OK
MATCH ROM (0x55)

ADDRESS MACRO 1: 0x10 0x7E 0x61 0xA9 0x01 0x08 0x00 0x4B 

WRITE: 0xBE 
READ: 0x31 0x00 0x4B 0x46 0xFF 0xFF 0x07 0x10 0x8D 

Références