I2C
Rockchip I2C 控制器支持兼容 I2C 与 SMBus 总线,拓展引脚中 I2C 信息如下:
| 主板 | SOC | 平台 | 拓展引脚 |
|---|---|---|---|
| K1 | RK3568 | Rockchip | I2C X2 |
| K1B | RK3568 | Rockchip | I2C X1 |
| K3 | RK3562 | Rockchip | I2C X1 |
| K7 | RK3576 | Rockchip | I2C X3 |
| K7C | RK3576 | Rockchip | I2C X2 |
| K8 | RK3588 | Rockchip | I2C X2 |
Allwinner 的 TWI 总线兼容 I2C 总线协议,拓展引脚中 I2C 信息如下:
| 主板 | SOC | 平台 | 拓展引脚 |
|---|---|---|---|
| K2B | H618 | Allwinner | I2C X3 |
| K2C | H618 | Allwinner | I2C X2 |
| K4B | T113 | Allwinner | I2C X3 |
| K5C | A133 | Allwinner | I2C X1 |
术语说明
| 术语 | 说明 |
|---|---|
| I2C | Inter-Integrated Circuit,集成电路间总线 |
| TWI | Two-Wire Interface,双线接口 |
硬件连接
示意图为 I2C 总线的硬件连接方式,需要上拉电阻,改变上拉电阻大小可调节 I2C 总线的上拉强度。

DTS 节点配置
Rockchip
下面为 Rockchip 平台 i2c 配置 hym8563 设备的 dts 节点配置示例:
&i2c2 {
status = "okay";
hym8563: hym8563@51 {
compatible = "haoyu,hym8563";
reg = <0x51>;
pinctrl-names = "default";
pinctrl-0 = <&hym8563_int>;
interrupt-parent = <&gpio0>;
interrupts = <RK_PA0 IRQ_TYPE_LEVEL_LOW>;
wakeup-source;
};
};
Allwinner
Allwinner 平台 twi0 配置 hym8563 设备的 dts 节点配置示例:
&twi0{
clock-frequency = <400000>;
pinctrl-0 = <&twi0_pins_a>;
pinctrl-1 = <&twi0_pins_b>;
status = "okay";
hym8563@51 {
compatible = "haoyu,hym8563";
reg = <0x51>;
interrupt-parent = <&pio>;
interrupts = <PB 8 IRQ_TYPE_LEVEL_LOW>;
status = "okay";
};
};
I2C tools
I2C tool 是一个开源工具,需自行下载进行交叉编译,下载地址:
编译后会生成 i2cdetect,i2cdump,i2cset,i2cget 等工具,可以直接在命令行上调试使用:
Note
i2cdetect – 用来列举 I2C bus 和上面所有的设备。
i2cdump – 显示 i2c 设备所有 register 的值。
i2cget – 读取 i2c 设备某个 register 的值。
i2cset – 写入 i2c 设备某个 register 的值。
I2C tool 都是开源的,编译与使用请参考里面的 README 与帮助说明。
示例
以 K1B 拓展 I2C 引脚接入 I2C 设备(RTC hym8563 模块)为例,其他主板类似。
1. 确认拓展引脚 I2C 引脚位置以及模块的电源域,RTC hym8563 为 3.3V。

2. 确认模块 SDA SCL 是否内置上拉电阻,没有则需要增加上拉电阻。
3. 连接模块,i2cdetect 检测设备是否挂载识别成功。
Warning
主板通电状态下,禁止安装/拆卸操作!
