您的位置:首页 > 其它

I2C总线学习笔记

2016-12-28 20:36 253 查看
20IIC-BUS INTERFACE

S3C2440支持IIC接口。可以在接口器件之间传送信息。SDA,SCL是双向

控制I2C总线操作,必须写以下几个寄存器

      IIC总线控制寄存器 IICCON

       IIC总线控制状态寄存器IICSTAT

       IIC总线收发移位寄存器IICDS---data shift

       IIC总线地址寄存器IICADD

IIC总线空闲,SDA,SCL都为高电平。SDA从高到低为开始传送。SCL一直为高,SDA由低到高结束操作。

开始结束操作由主控端发出。第一个字节信息,前七位为从设备地址,第八位为传送方向。(读或写)

SDA每次传送8位。在总线传输期间字节数不受限制。数据总是从最高位开始传输,每字节传输完成后会有一个ACK应答位。

 

S3C2440  IIC总线四种传输模式

主传输

主接收

从发送

从接收

 

IIC接口不活动,一般都是从模式。在侦测到SDA上的开始信号,IIC为从模式。开始信号是SCL为高,SDA由高到低。

主设备初始化一个开始信号,先发送一个字节。这个字节高七位为从设备地址,最后一位为传输方向(读或写)如果第8位为0,写操作。为1,读操作。

主设备用停止信号结束传输。如果要继续传输,就需要重新产生开始信号。

 


字节传输格式

每个SDA线上传输的都是八位数据。字节数在每次传输不受限制。开始信号后的第一个字节包括从设备地址。每个字节后跟一个应答位。最高位先传。


 

ACK信号

完成一个字节传输,从设备需要发送一个ACK位给主设备。ACK脉冲出现在SCL线的第九个时钟周期。之前的八个时钟用于数据传输。

主设备收到ACK时钟脉冲,应该让SDA线为高释放SDA。从设备在ACK时钟周期将ACK拉低。

ACK位的传输功能可以通过IICSTAT寄存器使能或禁用。SCL第九个时钟的ACK信号必须完成一个字节的传输。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  electronic