内核驱动程序 max31827¶
支持的芯片
Maxim MAX31827
前缀:'max31827'
扫描地址:I2C 0x40 - 0x5f
数据手册:可在 Analog Devices 网站公开获取
Maxim MAX31828
前缀:'max31828'
扫描地址:I2C 0x40 - 0x5f
数据手册:可在 Analog Devices 网站公开获取
Maxim MAX31829
前缀:'max31829'
扫描地址:I2C 0x40 - 0x5f
数据手册:可在 Analog Devices 网站公开获取
- 作者
Daniel Matyas <daniel.matyas@analog.com>
描述¶
此驱动程序支持的芯片非常相似。它们之间的唯一区别在于芯片上电后的默认行为。MAX31827 的故障队列设置为 1,而其他两个芯片的故障队列设置为 4。此外,MAX31829 的报警活动状态为高电平,而其他两个芯片的报警在低电平有效。需要注意的是,这些芯片可以通过一次写入配置寄存器的操作来配置为相同的操作方式。从现在开始,我们将把所有这些芯片都称为 MAX31827。
MAX31827 采用 6 WLP 封装方案,实现了一个温度传感器。该传感器测量芯片自身的温度。
MAX31827 具有低温和过温报警功能,带有有效值和滞后值:低温报警为 -40 和 -30 摄氏度,过温报警为 +100 和 +90 摄氏度。
报警可以在设备树中配置为比较器模式和中断模式。在比较器模式下,当温度升高到 TH 值以上或下降到 TL 值以下时,OT/UT 状态位的值为 1,这也受故障队列选择的影响。当温度下降到 TH_HYST 值以下或进入关机模式时,OT 状态返回 0。类似地,当温度升高到 TL_HYST 值以上或进入关机模式时,UT 状态返回 0。
在中断模式下,超过 TH 也会将 OT 状态设置为 1,该状态一直保持,直到对配置/状态寄存器(最大或最小属性)执行读取操作为止;此时,它返回 0。一旦 OT 状态因超过 TH 而设置为 1 并复位后,只有当温度低于 TH_HYST 时,它才会再次设置为 1。输出保持断言状态,直到通过读取复位。如果温度超过 TH,它会再次设置,依此类推。同样的逻辑也适用于 UT 状态位的操作。
将 MAX31827 置于关机模式也会复位 OT/UT 状态位。请注意,如果在 OT/UT 状态位已设置的情况下更改模式,则可能需要复位 OT/UT 状态,然后它才能正常工作。为防止这种情况,建议在更改操作模式之前,对配置/状态寄存器进行读取以清除状态位。
转换可以是手动的一次性功能,也可以是设定频率的自动转换。上电时,芯片以 1 次转换/秒的速度测量温度。转换速率可以通过芯片的 update_interval 属性进行修改。转换/秒 = 1/update_interval。因此,根据数据手册,可用选项为:
64000 (ms) = 1 次转换/64 秒
32000 (ms) = 1 次转换/32 秒
16000 (ms) = 1 次转换/16 秒
4000 (ms) = 1 次转换/4 秒
1000 (ms) = 1 次转换/秒 (默认)
250 (ms) = 4 次转换/秒
125 (ms) = 8 次转换/秒
当设备已启用时再次启用它,会产生将转换频率设置为 1 次转换/秒的副作用。转换时间因分辨率而异。
分辨率每增加一位,转换时间就会加倍。可用分辨率为:
8 位 -> 8.75 毫秒转换时间
9 位 -> 17.5 毫秒转换时间
10 位 -> 35 毫秒转换时间
12 位 (默认) -> 140 毫秒转换时间
有一个 temp1_resolution 属性,它表示输入温度以毫摄氏度为单位的变化。
1000 毫摄氏度 -> 8 位
500 毫摄氏度 -> 9 位
250 毫摄氏度 -> 10 位
62 毫摄氏度 -> 12 位 (默认) - 实际上是 62.5,但文件返回 62
当芯片处于关机模式且请求读取操作时,会触发一次性转换,设备等待 <转换时间> 毫秒,之后才读取温度值寄存器。请注意,转换时间向上取整到最近的可能整数。
温度值的 LSB 为 0.0625 摄氏度,但温度值以毫度显示。这意味着一些数据会丢失。两个连续值之间的步长为 62 或 63。这种效应在写入报警值时也可以看到。对于正数,用户输入值将始终向下舍入到最近的可能值;对于负数,用户输入将始终向上舍入到最近的可能值。
当 SCL 保持低电平超过 30 毫秒(标称)时,总线超时会复位 I2C 兼容接口。
报警极性决定报警的活动状态是低电平还是高电平。两种设置的行为都取决于故障队列设置。ALARM 引脚是开漏输出,需要上拉电阻才能工作。
故障队列位选择在相应的状态位中指示过温或欠温故障之前必须发生多少次连续的温度故障。
PEC 支持¶
读取寄存器值时,PEC 字节由芯片计算并发送。
在正常条件下,字数据事务上的 PEC 会显着增加带宽使用(读写均增加 +33%)。
由于此操作意味着每次事务都会有额外的延迟,PEC 可以通过 sysfs 禁用或启用。只需向“pec”文件写入 1 即可启用 PEC,写入 0 即可禁用它。