核心驅動 w1_ds28e17¶
支援的晶片
Maxim DS28E17 1-Wire 轉 I2C 主機橋
支援的系列程式碼
W1_FAMILY_DS28E17
0x19
作者:Jan Kandziora <jjj@gmx.de>
描述¶
DS28E17 是一種 One-Wire 從裝置,作為 I2C 匯流排主裝置執行。
該驅動程式為檢測到的任何 DS28E17 裝置建立一個新的 I2C 匯流排。I2C 匯流排會隨著 DS28E17 裝置的出現和消失而出現和消失。連線到 DS28E17 的 I2C 從裝置可以被核心或使用者空間工具訪問,就好像它們連線到“原生”I2C 匯流排主裝置一樣。
可以使用如下 udev 規則
SUBSYSTEM=="i2c-dev", KERNEL=="i2c-[0-9]*", ATTRS{name}=="w1-19-*", \
SYMLINK+="i2c-$attr{name}"
根據 DS28E17 晶片的唯一 ID 建立穩定的 /dev/i2c- 條目。
驅動引數為
- speed
這設定了 DS28E17 連線後立即配置的預設 I2C 速度。DS28E17 的上電預設值為 400kBaud,但晶片可能在不斷電的情況下在 One-Wire 總線上出現和消失,一旦“w1_ds28e17”驅動程式檢測到 One-Wire 總線上有新連線或重新連線的 DS28E17 裝置,它將重新應用此設定。
有效值為 100、400、900 [kBaud]。任何其他值表示在檢測時保留當前 DS28E17 設定不變。預設值為 100。
- stretch
這設定了新連線的 DS28E17 裝置使用的預設 stretch 值。它是用於計算 I2C 傳輸忙等待時間的乘數。這是為了解決 I2C 從裝置大量使用 I2C 時鐘延長功能,導致所需的超時時間無法正確預先計算的問題。由於 w1_ds28e17 驅動程式在預計算的等待時間後迴圈檢查 DS28E17 的忙碌標誌,因此幾乎不需要調整此設定。
保持為 1,除非您在核心日誌中看到 ETIMEDOUT 錯誤和“w1_slave_driver 19-00000002dbd8: busy timeout”資訊。
有效值為 1 到 9。預設值為 1。
驅動程式為每個裝置建立 sysfs 檔案 /sys/bus/w1/devices/19-<id>/speed 和 /sys/bus/w1/devices/19-<id>/stretch,其中預載入了驅動引數中的預設設定。這些檔案可以隨時更改。此外,還會為 I2C 匯流排主裝置的 sysfs 結構建立一個目錄 /sys/bus/w1/devices/19-<id>/i2c-<nnn>。
更多資訊請參見:https://github.com/ianka/w1_ds28e17。