S3C2410X精简指令集微处理器支持多路控制IIC-总线串行接口。一个专用的连续数据行(SDA)及一个连续时钟行(SCL)在总线控制器与连接在IIC总线上的外围设备之间传送信息。SDA与SCL行是双向的。
在多路控制IIC总线模式下,多重S3C2410X精简指令微处理器接收或发送连续数据到隶属的设备。S3C2410X控制器能启动或停止IIC总线上的数据传输。S3C2410X上的IIC总线使用标准总线仲裁程序。
为了控制多路控制IIC总线操作,相关值必须写入以下的寄存器内:
——多路控制IIC总线控制寄存器,IICCON
——多路控制IIC总线控制/状态寄存器,IICSTAT
——多路控制IIC总线Tx/Rx数据转换寄存器,IICDS
——多路控制IIC总线地址寄存器,IICADD
20 IIC-总线接口
导论
S3C2410X精简指令集微处理器支持多路控制IIC-总线串行接口。一个专用的连续数据行(SDA)及一个连续时钟行(SCL)在总线控制器与连接在IIC总线上的外围设备之间传送信息。SDA与SCL行是双向的。
在多路控制IIC总线模式下,多重S3C2410X精简指令微处理器接收或发送连续数据到隶属的设备。S3C2410X控制器能启动或停止IIC总线上的数据传输。S3C2410X上的IIC总线使用标准总线仲裁程序。
为了控制多路控制IIC总线操作,相关值必须写入以下的寄存器内:
——多路控制IIC总线控制寄存器,IICCON
——多路控制IIC总线控制/状态寄存器,IICSTAT
——多路控制IIC总线Tx/Rx数据转换寄存器,IICDS
——多路控制IIC总线地址寄存器,IICADD
当IIC总线空闲时,SDA与SCL行应该都为高电平。SDA的一个高至低的转换可以启动开始条件。当SCL持续为高电平时,SDA的一个低至高的转换可以启动停止条件。
开始与停止条件总是由主设备来产生。当开始条件启动后,一个在数据首字节的7位地址值会被传输至总线,这7位地址值能决定总线主设备选择了哪一个从设备。第8位决定传输方向(读或写)。
到SDA行的每个数据字节都应该为8位。在总线传输操作中,发送或接收的字节是没有限制的。数据总是从最有意义的位(MSB)首先发送,且每字节应该紧跟在一个承认(ACK)位后。
图20-1. IIC总线块图解
注:IIC数据保持时间
IIC数据保持时间(tSDAH)为最小0ns。
(在IIC规范V2.1中,标准/快速总线模式下IIC数据保持时间为最小0ns)
请检查数据保持时间是否为0ns。
IIC控制器仅支持IIC总线设备(标准/快速总线模式),不支持C总线设备。
IIC总线接口
S3C2410X上IIC总线接口有四种操作模式:
——主传输模式
——主设备模式
——从传输模式
——从设备模式
这些操作模式间的关系在下面讲述。
开始及停止条件
当IIC总线接口停止时,它通常为从模式。换而言之,接口在检测SDA行的开始条件(开始条件可以被以下条件启动,SCL的时钟信号为高电平,SDA行从高电转为低电)前接口应该是从模式。当接口状态变为主模式时,SDA行上的数据传输被启动,SCL信号同时产生。
开始条件可以能过SDA行传输一字节连续数据,停止条件可以停止数据传输。停止条件是当SCL为高电平时,SDA行由低电转为高电。开始及停止条件总是由主设备产生。当开始条件产生后IIC总线开始工作。停止条件会使IIC总线空闲。
当主设备启动开始条件,它应该发送一个从设备地址来通报从设备。一字节的地址由7位地址和一位传输方向指示器组成(表示写或读)。如果位8为0,它启动的是一个写操作(传输操作),如果位8为1,它启动读取数据的请求(接收操作)。
主设备能过传输停止条件来结束传输操作。如果主设备想继续对总线的数据传输,它应该产生另一个开始条件及一个从设备地址。这样,读写操作可以通过不同的模式执行。
图20-2. 开始与停止条件
数据传输格式