mirror of https://gitee.com/openkylin/linux.git
64 lines
2.6 KiB
Plaintext
64 lines
2.6 KiB
Plaintext
Kernel driver ds1621
|
|
====================
|
|
|
|
Supported chips:
|
|
* Dallas Semiconductor DS1621
|
|
Prefix: 'ds1621'
|
|
Addresses scanned: I2C 0x48 - 0x4f
|
|
Datasheet: Publicly available at the Dallas Semiconductor website
|
|
http://www.dalsemi.com/
|
|
* Dallas Semiconductor DS1625
|
|
Prefix: 'ds1621'
|
|
Addresses scanned: I2C 0x48 - 0x4f
|
|
Datasheet: Publicly available at the Dallas Semiconductor website
|
|
http://www.dalsemi.com/
|
|
|
|
Authors:
|
|
Christian W. Zuckschwerdt <zany@triq.net>
|
|
valuable contributions by Jan M. Sendler <sendler@sendler.de>
|
|
ported to 2.6 by Aurelien Jarno <aurelien@aurel32.net>
|
|
with the help of Jean Delvare <khali@linux-fr.org>
|
|
|
|
Module Parameters
|
|
------------------
|
|
|
|
* polarity int
|
|
Output's polarity: 0 = active high, 1 = active low
|
|
|
|
Description
|
|
-----------
|
|
|
|
The DS1621 is a (one instance) digital thermometer and thermostat. It has
|
|
both high and low temperature limits which can be user defined (i.e.
|
|
programmed into non-volatile on-chip registers). Temperature range is -55
|
|
degree Celsius to +125 in 0.5 increments. You may convert this into a
|
|
Fahrenheit range of -67 to +257 degrees with 0.9 steps. If polarity
|
|
parameter is not provided, original value is used.
|
|
|
|
As for the thermostat, behavior can also be programmed using the polarity
|
|
toggle. On the one hand ("heater"), the thermostat output of the chip,
|
|
Tout, will trigger when the low limit temperature is met or underrun and
|
|
stays high until the high limit is met or exceeded. On the other hand
|
|
("cooler"), vice versa. That way "heater" equals "active low", whereas
|
|
"conditioner" equals "active high". Please note that the DS1621 data sheet
|
|
is somewhat misleading in this point since setting the polarity bit does
|
|
not simply invert Tout.
|
|
|
|
A second thing is that, during extensive testing, Tout showed a tolerance
|
|
of up to +/- 0.5 degrees even when compared against precise temperature
|
|
readings. Be sure to have a high vs. low temperature limit gap of al least
|
|
1.0 degree Celsius to avoid Tout "bouncing", though!
|
|
|
|
The alarm bits are set when the high or low limits are met or exceeded and
|
|
are reset by the module as soon as the respective temperature ranges are
|
|
left.
|
|
|
|
The alarm registers are in no way suitable to find out about the actual
|
|
status of Tout. They will only tell you about its history, whether or not
|
|
any of the limits have ever been met or exceeded since last power-up or
|
|
reset. Be aware: When testing, it showed that the status of Tout can change
|
|
with neither of the alarms set.
|
|
|
|
Temperature conversion of the DS1621 takes up to 1000ms; internal access to
|
|
non-volatile registers may last for 10ms or below.
|