I2C
I²C 或 I2C (Inter-IC) 是由 Philips Semiconductors 于 1982 年发明的同步、多控制器/多目标(控制器/目标)、分组交换、单端、串行通信总线。
许多硬件板使用它与通用 I/O (GPIO) 设备进行通信。
I2C 的一个类似扩展是 SMBus,它更专门用于硬件监控目的。
安装
I2C 内核模块已存在于大多数默认内核包中。
用户空间工具可以从 i2c-tools 安装。前沿版本可在 i2c-tools-gitAUR 获取。
SMBus 特定工具可以从 lm_sensors 安装。
模块加载
在某些情况下,可能需要在启动时加载模块
/etc/modules-load.d/i2c-dev.conf
i2c_dev
在 FS#76233 修复后,将不再需要这样做。
根据您的系统和用途,可能还必须加载其他硬件特定模块,例如 i2c_i801
或 i2c_smbus
。
如果模块加载正确,您应该看到 /dev/i2c-*
设备。
可以通过将用户添加到 i2c
用户组 来授予使用 /dev/i2c-*
设备的权限。
用法
i2cdetect
可以检测所有活动的 I2C 设备
$ i2cdetect -l
i2c-0 i2c Synopsys DesignWare I2C adapter I2C adapter i2c-1 i2c Synopsys DesignWare I2C adapter I2C adapter i2c-2 i2c Synopsys DesignWare I2C adapter I2C adapter i2c-3 i2c Synopsys DesignWare I2C adapter I2C adapter i2c-4 smbus SMBus I801 adapter at f040 SMBus adapter i2c-5 i2c i915 gmbus dpb I2C adapter i2c-6 i2c i915 gmbus dpc I2C adapter i2c-7 i2c i915 gmbus misc I2C adapter i2c-8 i2c AUX B/DDI B/PHY B I2C adapter
当 I2C 设备连接到已知总线时,i2cdetect
可以探测其活动地址
$ i2cdetect 1
0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: 60 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- 76 --
请注意,此程序可能会混淆您的 I2C 总线,导致数据丢失甚至更糟的情况。