Commit | Line | Data |
---|---|---|
6cd15974 DF |
1 | Kernel driver w1_therm |
2 | ==================== | |
3 | ||
4 | Supported chips: | |
5 | * Maxim ds18*20 based temperature sensors. | |
f3261dfb | 6 | * Maxim ds1825 based temperature sensors. |
6cd15974 DF |
7 | |
8 | Author: Evgeniy Polyakov <johnpol@2ka.mipt.ru> | |
9 | ||
10 | ||
11 | Description | |
12 | ----------- | |
13 | ||
d9411e57 MC |
14 | w1_therm provides basic temperature conversion for ds18*20 devices, and the |
15 | ds28ea00 device. | |
6cd15974 DF |
16 | supported family codes: |
17 | W1_THERM_DS18S20 0x10 | |
18 | W1_THERM_DS1822 0x22 | |
19 | W1_THERM_DS18B20 0x28 | |
f3261dfb | 20 | W1_THERM_DS1825 0x3B |
d9411e57 | 21 | W1_THERM_DS28EA00 0x42 |
6cd15974 DF |
22 | |
23 | Support is provided through the sysfs w1_slave file. Each open and | |
24 | read sequence will initiate a temperature conversion then provide two | |
25 | lines of ASCII output. The first line contains the nine hex bytes | |
26 | read along with a calculated crc value and YES or NO if it matched. | |
27 | If the crc matched the returned values are retained. The second line | |
28 | displays the retained values along with a temperature in millidegrees | |
29 | Centigrade after t=. | |
30 | ||
31 | Parasite powered devices are limited to one slave performing a | |
32 | temperature conversion at a time. If none of the devices are parasite | |
33 | powered it would be possible to convert all the devices at the same | |
34 | time and then go back to read individual sensors. That isn't | |
35 | currently supported. The driver also doesn't support reduced | |
0a19f129 BS |
36 | precision (which would also reduce the conversion time) when reading values. |
37 | ||
38 | Writing a value between 9 and 12 to the sysfs w1_slave file will change the | |
39 | precision of the sensor for the next readings. This value is in (volatile) | |
40 | SRAM, so it is reset when the sensor gets power-cycled. | |
41 | ||
42 | To store the current precision configuration into EEPROM, the value 0 | |
43 | has to be written to the sysfs w1_slave file. Since the EEPROM has a limited | |
44 | amount of writes (>50k), this command should be used wisely. | |
6cd15974 DF |
45 | |
46 | The module parameter strong_pullup can be set to 0 to disable the | |
29e5507a MA |
47 | strong pullup, 1 to enable autodetection or 2 to force strong pullup. |
48 | In case of autodetection, the driver will use the "READ POWER SUPPLY" | |
49 | command to check if there are pariste powered devices on the bus. | |
50 | If so, it will activate the master's strong pullup. | |
51 | In case the detection of parasite devices using this command fails | |
52 | (seems to be the case with some DS18S20) the strong pullup can | |
53 | be force-enabled. | |
54 | If the strong pullup is enabled, the master's strong pullup will be | |
55 | driven when the conversion is taking place, provided the master driver | |
56 | does support the strong pullup (or it falls back to a pullup | |
6cd15974 DF |
57 | resistor). The DS18b20 temperature sensor specification lists a |
58 | maximum current draw of 1.5mA and that a 5k pullup resistor is not | |
59 | sufficient. The strong pullup is designed to provide the additional | |
60 | current required. | |
d9411e57 MC |
61 | |
62 | The DS28EA00 provides an additional two pins for implementing a sequence | |
63 | detection algorithm. This feature allows you to determine the physical | |
64 | location of the chip in the 1-wire bus without needing pre-existing | |
65 | knowledge of the bus ordering. Support is provided through the sysfs | |
66 | w1_seq file. The file will contain a single line with an integer value | |
67 | representing the device index in the bus starting at 0. |