ds1621 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. Kernel driver ds1621
  2. ====================
  3. Supported chips:
  4. * Dallas Semiconductor / Maxim Integrated DS1621
  5. Prefix: 'ds1621'
  6. Addresses scanned: I2C 0x48 - 0x4f
  7. Datasheet: Publicly available from www.maximintegrated.com
  8. * Dallas Semiconductor DS1625
  9. Prefix:
  10. 'ds1621' - if binding via _detect function
  11. 'ds1625' - explicit instantiation
  12. Addresses scanned: I2C 0x48 - 0x4f
  13. Datasheet: Publicly available from www.datasheetarchive.com
  14. * Maxim Integrated DS1721
  15. Prefix: 'ds1721'
  16. Addresses scanned: I2C 0x48 - 0x4f
  17. Datasheet: Publicly available from www.maximintegrated.com
  18. Authors:
  19. Christian W. Zuckschwerdt <zany@triq.net>
  20. valuable contributions by Jan M. Sendler <sendler@sendler.de>
  21. ported to 2.6 by Aurelien Jarno <aurelien@aurel32.net>
  22. with the help of Jean Delvare <khali@linux-fr.org>
  23. Module Parameters
  24. ------------------
  25. * polarity int
  26. Output's polarity: 0 = active high, 1 = active low
  27. Description
  28. -----------
  29. The DS1621 is a (one instance) digital thermometer and thermostat. It has
  30. both high and low temperature limits which can be user defined (i.e.
  31. programmed into non-volatile on-chip registers). Temperature range is -55
  32. degree Celsius to +125 in 0.5 increments. You may convert this into a
  33. Fahrenheit range of -67 to +257 degrees with 0.9 steps. If polarity
  34. parameter is not provided, original value is used.
  35. As for the thermostat, behavior can also be programmed using the polarity
  36. toggle. On the one hand ("heater"), the thermostat output of the chip,
  37. Tout, will trigger when the low limit temperature is met or underrun and
  38. stays high until the high limit is met or exceeded. On the other hand
  39. ("cooler"), vice versa. That way "heater" equals "active low", whereas
  40. "conditioner" equals "active high". Please note that the DS1621 data sheet
  41. is somewhat misleading in this point since setting the polarity bit does
  42. not simply invert Tout.
  43. A second thing is that, during extensive testing, Tout showed a tolerance
  44. of up to +/- 0.5 degrees even when compared against precise temperature
  45. readings. Be sure to have a high vs. low temperature limit gap of al least
  46. 1.0 degree Celsius to avoid Tout "bouncing", though!
  47. The alarm bits are set when the high or low limits are met or exceeded and
  48. are reset by the module as soon as the respective temperature ranges are
  49. left.
  50. The alarm registers are in no way suitable to find out about the actual
  51. status of Tout. They will only tell you about its history, whether or not
  52. any of the limits have ever been met or exceeded since last power-up or
  53. reset. Be aware: When testing, it showed that the status of Tout can change
  54. with neither of the alarms set.
  55. Temperature conversion of the DS1621 takes up to 1000ms; internal access to
  56. non-volatile registers may last for 10ms or below.
  57. The DS1625 is pin compatible and functionally equivalent with the DS1621,
  58. but the DS1621 is meant to replace it.
  59. The DS1721 is pin compatible with the DS1621, has an accuracy of +/- 1.0
  60. degree Celsius over a -10 to +85 degree range, a minimum/maximum alarm
  61. default setting of 75 and 80 degrees respectively, and a maximum conversion
  62. time of 750ms.