I2C接口
简介
I2C总线(Inter-Integrated Circuit)是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。
特性
支持 Fast mode (400Kbps)和 Slow mode(100Kbps)
只支持I2C master 模式
可通过软件来配置内部的上拉电阻,1.8K 或者 20K
模块最多支持3路独立的 I2C 接口
理论上最多可以支持127个从设备
模块I2C 功能列表
接口 名称 复用 Air720UG/UH Air724UG Air722UG Air820UG 作用
I2C1 CAMI2C_SCL1 I2C1_SCL 121* 51 28 3 I2C1时钟信号
I2C1 CAMI2C_SDA1 I2C1_SDA 122* 50 29 4 I2C1数据信号
I2C2 I2C2_SCL I2C2_SCL 41 32 86 1 I2C2时钟信号
I2C2 I2C2_SDA I2C2_SDA 42 31 87 2 I2C2数据信号
I2C3 ZSP_UART_TXD I2C3_SCL 66 7 20 49 I2C3数据信号
I2C3 SIM0_DET I2C3_SDA 13 8 22 48 I2C3时钟信号
注意: 请优先使用I2C2。I2C1预留给摄像头使用。
参考设计
1.如下是I2C接口的参考线路,注意模块I2C只能做主设备,外部需要上拉,在配置FAST速率时,上拉电阻阻值不要大于4.7K。
2.如果主从设备的参考电平不一致,请注意做电平转换。如下图:
I2C接口软件控制
LUA开发相关API
常见问题及故障排查
http://doc.openluat.com/article/638/0
1.i2c每次读写数据前都需要setup一次吗?
不需要。
2.I2C接口的正常逻辑是什么?
逻辑如下:
i2c.setup
…此处可以多次读写数据
i2c.close
setup之后,只要没有close,就可以反复读写数据
一旦执行了close,下次读写数据前,必须再次setup