核心驅動 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。