David Fries | 6cd1597 | 2008-10-15 22:04:43 -0700 | [diff] [blame] | 1 | Kernel driver w1_therm |
| 2 | ==================== |
| 3 | |
| 4 | Supported chips: |
| 5 | * Maxim ds18*20 based temperature sensors. |
Raphael Assenat | f3261df | 2012-08-16 12:56:40 -0400 | [diff] [blame] | 6 | * Maxim ds1825 based temperature sensors. |
David Fries | 6cd1597 | 2008-10-15 22:04:43 -0700 | [diff] [blame] | 7 | |
| 8 | Author: Evgeniy Polyakov <johnpol@2ka.mipt.ru> |
| 9 | |
| 10 | |
| 11 | Description |
| 12 | ----------- |
| 13 | |
Matt Campbell | d9411e5 | 2015-04-28 07:44:17 -0400 | [diff] [blame] | 14 | w1_therm provides basic temperature conversion for ds18*20 devices, and the |
| 15 | ds28ea00 device. |
David Fries | 6cd1597 | 2008-10-15 22:04:43 -0700 | [diff] [blame] | 16 | supported family codes: |
| 17 | W1_THERM_DS18S20 0x10 |
| 18 | W1_THERM_DS1822 0x22 |
| 19 | W1_THERM_DS18B20 0x28 |
Raphael Assenat | f3261df | 2012-08-16 12:56:40 -0400 | [diff] [blame] | 20 | W1_THERM_DS1825 0x3B |
Matt Campbell | d9411e5 | 2015-04-28 07:44:17 -0400 | [diff] [blame] | 21 | W1_THERM_DS28EA00 0x42 |
David Fries | 6cd1597 | 2008-10-15 22:04:43 -0700 | [diff] [blame] | 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 |
Ben Sen | 0a19f12 | 2016-05-01 23:23:33 +0200 | [diff] [blame] | 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. |
David Fries | 6cd1597 | 2008-10-15 22:04:43 -0700 | [diff] [blame] | 45 | |
| 46 | The module parameter strong_pullup can be set to 0 to disable the |
Michael Arndt | 29e5507 | 2013-02-17 20:51:20 +0100 | [diff] [blame] | 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 |
David Fries | 6cd1597 | 2008-10-15 22:04:43 -0700 | [diff] [blame] | 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. |
Matt Campbell | d9411e5 | 2015-04-28 07:44:17 -0400 | [diff] [blame] | 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. |