FM33A0XX的I2C接口只用作主机,且不支持多主机,因此挂在总线上的其他设备都是从机。总线上总是由主机提供同步时钟SCL,SDA数据流方向可以是主机发送从机接收,或者从机发送主机接收。
数据发送流程
1、主机发起 START 时序
2、主机发送从机地址,从机地址包含 7 位从机地址和 1 位 R/W 标志位,发送数据时 R/W 位为 0 。
3、主机发送第一帧 8 位数据。
4、主机在每次发送完 8 位数据后,会在第 9 个 clock 判断是否检测到有效的 ack ,如果 主机检测到
ack 成功后,会继续输出下一组 8 位的数据。
5、若从机无法响应 ack ,主机检测到 ack 失败后应发送 STOP 时序终止发送。
注:从机地址包含7 位从机地址和 1 位 R/W 标志位 。
数据接收流程
1、 主机发起START 时序
2、 主机发送从机地址,从机地址包含7 位从机地址和1 位R/W 标志位,数据读取时R/W 位为1。
3、 此时设置SSPCON.RCEN 为1,主机自动转为接受状态
4、 主机开始接收第一帧8 位数据,并在第9 个clock 向从机发送有效ack,从而继续读取下一帧8
位数据。
5、 主机读取结束后,发送STOP 时序终止读取。