内核驱动 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。