summaryrefslogtreecommitdiff
path: root/onewire/ds18b20/README
blob: 9246b3266106f086ef431a47875fd103846d5f46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
-------------------------------------------------------------------------------
Dallas DS18B20 1-Wire digital temperature sensor
-------------------------------------------------------------------------------

This is a set of example captures of the 1-Wire traffic from Maxim DS18B20
temperature sensors.

Details:
https://en.wikipedia.org/wiki/1-Wire
https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf


Logic analyzer setup
--------------------

The logic analyzer used was a MCU123 Saleae Logic clone (at 8 MHz):

  Probe       DS18D20 pin
  -----------------------
  1 (brown)   2 (DQ)

The sigrok command line used was:

  sigrok-cli -d fx2lafw:samplerate=1mhz --samples 2m --channels 0 -o <file>


2xds18b20.sr
------------

Two DS18D20 sensors are connected to the 1-Wire bus with following ROM codes:

 - 0x8d011627f794ee28
   (family code: 0x28, serial number: 0x011627f794ee, CRC: 0x8d)
 - 0x330216255487ee28
   (family code: 0x28, serial number: 0x0216255487ee, CRC: 0x33)

The sensors have the same following marking:

  Dallas
  18B20
  1619C4
  +827AH

The communication is initiated by a custom 1-Wire master software
implementation for a STM32F103C8 using timers.

The master performs the following actions:

 - Use Search ROM command to enumerate all 1-Wire devices on the bus so to
   count the number of DS10B20 sensors on the bus (two).
 - Restart enumeration of each device using the Search ROM command so to store
   their ROM code. After enumeration of each device:
   - Use Match ROM command to select device.
   - Use Read Scratchpad function command to read the 9 scratchpad bytes.
   - Use Write Scratchpad function command to write 3 bytes, setting the
     temperature conversion precision to 9 bits.
   - Use the Copy Scratchpad function command to copy the scratchpad into
     the device's internal EEPROM.
 - Use Skip ROM command to address all devices.
 - Use Convert T function command to start temperature conversion.
 - After one second use Match ROM and Read Scratchpad commands on each device
   to read the temperature stored in the scratchpad.
 - After 1 second use Skip ROM and Convert T commands to start next conversion.