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