I2C通讯
I2C(Inter - Integrated Circuit) 是一种通用的总线协议。开发板的 I2C 控制器支持下列功能
- 兼容 I2C 与 SMBus 总线
- 支持主模式下的 I2C 总线
- 软件可编程时钟频率支持到 400kbps, 最高可达 1000kbps
- 支持 7 位和 10 位寻址模式
- 一次中断或轮询至多 32 个字节的数据传输
Net name | NUM | NUM | Net name | ||
---|---|---|---|---|---|
I2C2_SDA_M4 | GPIO1_A0_3V3 | 1 | 2 | GPIO4_D5_3V3 | |
I2C2_SCL_M4 | GPIO1_A1_3V3 | 3 | 4 | GPIO4_D4_3V3 | |
I2C4_SDA_M3 | GPIO1_A2_3V3 | 5 | 6 | GPIO4_D3_3V3 | I2C8_SDA_M0 |
I2C4_SCL_M3 | GPIO1_A3_3V3 | 7 | 8 | GPIO4_D2_3V3 | I2C8_SCL_M0 |
GPIO1_B4_3V3 | 9 | 10 | GPIO1_C6_1V8 | ||
GND | 11 | 12 | GND | ||
GPIO1_B3_3V3 | 13 | 14 | SARADC_VIN2 | ||
GPIO1_B2_3V3 | 15 | 16 | VCC3V3_SYS | ||
GPIO1_B1_3V3 | 17 | 18 | VCC12V_DCIN | ||
VCC5V0_SYS | 19 | 20 | VCC12V_DCIN |
使用 i2c-tools 工具包提供了一些非常方便的工具来对系统的 I2C 总线进行调试
# 查看开启的 i2c 总线
ls /dev/i2c-*
# 安装i2c-tools工具进行i2c总线调试
sudo apt -y install i2c-tools
# 需要超级用户权限方可操作
# 扫描在 i2c-2 上的器件情况
i2cdetect -a 2
# 读取0x68设备的全部寄存器的值
i2cdump -f -y 2 0x68
# 读取指定 IIC 设备的某个寄存器的值,如下读取地址为 0x68 器件中的 0x01 寄存器值。
i2cget -f -y 2 0x68 0x01
# # 写入指定 IIC 设备的某个寄存器的值,如下设置地址为 0x68 器件中的 0x01 寄存器值为 0x6f
i2cset -f -y 2 0x68 0x01 0x6f
其他部分可以参考SDK中kernel 下面的 Documentation/i2c/dev-interface 文档