一、总述
I2C--两条线:clk时钟,sda数据。
下面是两个读写示例图(随机读取/写入单字节)
1、写--主机发送START信号,紧跟着从机地址并带WRITE信号,从机返回一个ACK信号;再接着主机发送片内从地址,从机再次返回ACK信号,最后主机发送写数据,器件接收后返回ACK信号;最后主机发送STOP信号。
2、读--主机发送START信号,紧接着从机地址并带WRITE信号,从机返回一个ACK信号;接着主机发片内从地址,从机会再次返回ACK信号;主机重启,紧跟着7位从机地址和READ命令,从机返回ACK信号;从机将片内地址寄存器的值传给主机,主机返回一个ACK确认信号;最后主机发送STOP信号
二、s3c2440作为主发送,主接收流程图
主机发送关键点设置
1、设置为主发送模式
2、将从机地址写入IICDS(数据发送/接收寄存器)
3、启动传输
4、当地址传输完成并接受到ACK,进入中断模式
5、写的数据是否完成(判断是否为最后一字节)
6、stop
主机接收设置关键点
1、设置为主接收模式
2、将从地址地址写入IICDS(数据发送/接收寄存器)
3、启动传输
4、当地址传输完成并接受到ACK,进入中断模式
5、是否还剩一字节--设置不发送ACK
6、接收最后一字节
7、stop