68 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
Kernel driver w1_therm
 | 
						|
====================
 | 
						|
 | 
						|
Supported chips:
 | 
						|
  * Maxim ds18*20 based temperature sensors.
 | 
						|
  * Maxim ds1825 based temperature sensors.
 | 
						|
 | 
						|
Author: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
 | 
						|
 | 
						|
 | 
						|
Description
 | 
						|
-----------
 | 
						|
 | 
						|
w1_therm provides basic temperature conversion for ds18*20 devices, and the
 | 
						|
ds28ea00 device.
 | 
						|
supported family codes:
 | 
						|
W1_THERM_DS18S20	0x10
 | 
						|
W1_THERM_DS1822		0x22
 | 
						|
W1_THERM_DS18B20	0x28
 | 
						|
W1_THERM_DS1825		0x3B
 | 
						|
W1_THERM_DS28EA00	0x42
 | 
						|
 | 
						|
Support is provided through the sysfs w1_slave file.  Each open and
 | 
						|
read sequence will initiate a temperature conversion then provide two
 | 
						|
lines of ASCII output.  The first line contains the nine hex bytes
 | 
						|
read along with a calculated crc value and YES or NO if it matched.
 | 
						|
If the crc matched the returned values are retained.  The second line
 | 
						|
displays the retained values along with a temperature in millidegrees
 | 
						|
Centigrade after t=.
 | 
						|
 | 
						|
Parasite powered devices are limited to one slave performing a
 | 
						|
temperature conversion at a time.  If none of the devices are parasite
 | 
						|
powered it would be possible to convert all the devices at the same
 | 
						|
time and then go back to read individual sensors.  That isn't
 | 
						|
currently supported.  The driver also doesn't support reduced
 | 
						|
precision (which would also reduce the conversion time) when reading values.
 | 
						|
 | 
						|
Writing a value between 9 and 12 to the sysfs w1_slave file will change the
 | 
						|
precision of the sensor for the next readings. This value is in (volatile)
 | 
						|
SRAM, so it is reset when the sensor gets power-cycled.
 | 
						|
 | 
						|
To store the current precision configuration into EEPROM, the value 0
 | 
						|
has to be written to the sysfs w1_slave file. Since the EEPROM has a limited
 | 
						|
amount of writes (>50k), this command should be used wisely.
 | 
						|
 | 
						|
The module parameter strong_pullup can be set to 0 to disable the
 | 
						|
strong pullup, 1 to enable autodetection or 2 to force strong pullup.
 | 
						|
In case of autodetection, the driver will use the "READ POWER SUPPLY"
 | 
						|
command to check if there are pariste powered devices on the bus.
 | 
						|
If so, it will activate the master's strong pullup.
 | 
						|
In case the detection of parasite devices using this command fails
 | 
						|
(seems to be the case with some DS18S20) the strong pullup can
 | 
						|
be force-enabled.
 | 
						|
If the strong pullup is enabled, the master's strong pullup will be
 | 
						|
driven when the conversion is taking place, provided the master driver
 | 
						|
does support the strong pullup (or it falls back to a pullup
 | 
						|
resistor).  The DS18b20 temperature sensor specification lists a
 | 
						|
maximum current draw of 1.5mA and that a 5k pullup resistor is not
 | 
						|
sufficient.  The strong pullup is designed to provide the additional
 | 
						|
current required.
 | 
						|
 | 
						|
The DS28EA00 provides an additional two pins for implementing a sequence
 | 
						|
detection algorithm.  This feature allows you to determine the physical
 | 
						|
location of the chip in the 1-wire bus without needing pre-existing
 | 
						|
knowledge of the bus ordering.  Support is provided through the sysfs
 | 
						|
w1_seq file.  The file will contain a single line with an integer value
 | 
						|
representing the device index in the bus starting at 0.
 |