内核驱动 w1_ds2438¶
支持的芯片
Maxim DS2438 智能电池监控器
- 支持的家族代码
W1_FAMILY_DS2438
0x26
作者: Mariusz Bialonczyk <manio@skyboo.net>
描述¶
DS2438 芯片提供了电池组中所需的多种功能。它还具有 40 字节的非易失性 EEPROM。由于其温度、电流和电压测量能力,该芯片也常用于气象站和以下应用:雨量计、风速/风向测量、湿度传感等。
当前支持通过以下 sysfs 文件提供(除“iad”和“offset”外的所有文件均为只读)
“iad”¶
此文件控制状态/配置寄存器中的“电流 A/D 控制位”(IAD)。写入零值将清除 IAD 位并禁用电流测量。写入值“1”将设置 IAD 位(启用测量)。DS2438 中 IAD 位默认启用。
写入 sysfs 文件时,位 2-7 将被忽略,因此写入 ASCII 是安全的。设置新值时出现问题将返回 I/O 错误。
“page0”¶
此文件提供芯片页 0 (00h) 的全部 8 字节数据。此页包含 DS2438 最常访问的信息。在内部读取此文件时,还会从从设备获取额外的 CRC 字节。如果正确,则将 8 字节的页数据传递到用户空间,否则返回 I/O 错误。
“page1”¶
此文件提供芯片页 1 (01h) 的全部 8 字节数据。此页包含 DS2438 的 ICA、已用时间计数器和电流偏移数据。在内部读取此文件时,还会从从设备获取额外的 CRC 字节。如果正确,则将 8 字节的页数据传递到用户空间,否则返回 I/O 错误。
“offset”¶
此文件控制芯片的 2 字节偏移寄存器。写入一个 2 字节的值将改变偏移寄存器,从而改变芯片进行的电流测量。在强制负载电流为零的同时,将此寄存器更改为当前寄存器的补码,将校准芯片,消除电流 ADC 中的偏移误差。
“temperature”¶
打开并读取此文件将启动芯片的 CONVERT_T(温度转换)命令,之后从设备寄存器读取温度并以 ASCII 十进制值提供。
重要提示:返回的值必须除以 256 才能得到以摄氏度为单位的真实温度。
“vad”, “vdd”¶
打开并读取此文件将启动芯片的 CONVERT_V(电压转换)命令。
根据 sysfs 文件名,将选择不同的 A/D 输入
- vad
通用 A/D 输入 (VAD)
- vdd
电池输入 (VDD)
电压转换后,该值以十进制 ASCII 形式返回。注意:要获得以伏特为单位的值,必须将该值除以 100。