内核驱动 lm73

支持的芯片

  • 德州仪器 LM73

    前缀: ‘lm73’

    扫描的地址: I2C 0x48, 0x49, 0x4a, 0x4c, 0x4d, 和 0x4e

    数据手册: 可在德州仪器网站公开获取

作者: Guillaume Ligneul <guillaume.ligneul@gmail.com>

文档: Chris Verges <kg4ysn@gmail.com>

描述

LM73 是一款数字温度传感器。所有温度值均以摄氏度给出。

测量分辨率支持

LM73 支持四种分辨率,以每 LSB 摄氏度定义:0.25、0.125、0.0625 和 0.3125。更改分辨率模式会影响 LM73 模数转换器的转换时间。从用户空间,可以通过设备的 ‘update_interval’ sysfs 属性指定所需的分辨率,作为转换时间的函数。此属性会将输入值的范围归一化为数据手册中为分辨率定义的最大时间。

分辨率

转换时间

输入范围

(C/LSB)

(毫秒)

(毫秒)

0.25

14

0..14

0.125

28

15..28

0.0625

56

29..56

0.03125

112

57..无穷大

以下示例显示了如何使用 ‘update_interval’ 属性来更改转换时间

$ echo 0 > update_interval
$ cat update_interval
14
$ cat temp1_input
24250

$ echo 22 > update_interval
$ cat update_interval
28
$ cat temp1_input
24125

$ echo 56 > update_interval
$ cat update_interval
56
$ cat temp1_input
24062

$ echo 85 > update_interval
$ cat update_interval
112
$ cat temp1_input
24031

如此处所示,lm73 驱动程序通过阶跃函数自动调整 ‘update_interval’ 的任何用户输入。在写入操作后回读 ‘update_interval’ 值将确认正在使用的转换时间。

在数学上,可以通过以下函数从转换时间推导出分辨率

g(x) = 0.250 * [log(x/14) / log(2)]

其中 ‘x’ 是 ‘update_interval’ 的输出,而 ‘g(x)’ 是以每 LSB 摄氏度表示的分辨率。

警报支持

LM73 具有简单的过温警报机制。此功能通过 sysfs 属性公开。

属性 ‘temp1_max_alarm’ 和 ‘temp1_min_alarm’ 是 LM73 提供的标志,指示测量的温度是否分别超过了 ‘temp1_max’ 和 ‘temp1_min’ 阈值。 _必须_ 读取这些值才能清除 LM73 上的寄存器。