内核驱动 w1_ds28e17

支持的芯片

  • Maxim DS28E17 1-Wire 到 I2C 主桥

支持的家族代码

W1_FAMILY_DS28E17

0x19

作者:Jan Kandziora <jjj@gmx.de>

描述

DS28E17 是一款充当 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,但芯片可能会在单线总线上来来去去而不断电,并且只要“w1_ds28e17”驱动程序注意到单线总线上新连接或重新连接的 DS28E17 设备,它就会重新应用此设置。

有效值为 100、400、900 [kBaud]。任何其他值都意味着在检测时保持当前的 DS28E17 设置不变。默认值为 100。

stretch

此参数设置新连接的 DS28E17 设备使用的默认伸展值。它是用于计算 I2C 传输的忙等待时间的乘数。这是为了考虑那些大量使用 I2C 时钟伸展功能的 I2C 从设备,因此无法正确预先计算所需的超时。由于 w1_ds28e17 驱动程序在预先计算的等待时间之后循环检查 DS28E17 的忙碌标志,因此几乎不需要调整此设置。

除非您收到 ETIMEDOUT 错误并在内核日志中看到“w1_slave_driver 19-00000002dbd8: busy timeout”,否则请将其保留为 1。

有效值为 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