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.
|