1. IIC描述
上图说明了在IIC总线拓扑中应该含有至少一个微控制器。该控制器通过IIC总线的SCL和SDA线与其他关联设备进行通信。基于传统的串行总线通信机制,IIC总线通信也是通过SDA与SCL配合实现,传输速率包含标注准(100kps)、快速(400kps)、高速(3.4Mbps)三大类。
2. IIC总线时序
启动时序:当SCL为高电平时,SDA下降沿,表示启动。
停止时序:当SCL为高电平时,SDA上升沿,表示停止。
※由此可知,数据的传送应该在SCL为低电平时发生的,不能再高电平期间发生。进一步可知,SDA电平是在SCL为高电平时被读取。
数据帧的内容包括 起止信号、7位或者10位的从机地址,传送方向标志位,数据位(8位),每个字节数据后又一个ACK位(应答信号),之后是终止信号结束数据帧。总的来说就是”启动--地址(7或者10位)--R/W--数据--ACK--数据--ACK--....--停止“
3. I2C电路结构图
数据手册描述,USCI模块在PUC或者手动设置UCSWRST位后,处于复位状态,如果要是其工作在I2C状态选,应将UCMODEx设置为11.在设置后,只要清除UCSWRST位即可让USCI工作起来。
4. IIC一些主要的配置语句
UCB0CTL1 |= UCSWRST; //使能软件复位,先关闭USCI_B0模式以便进行初始 //化设置
UCB0CTL0 = UCMST + UCMODE_3 +UCSYNC; //I2C主机、同步模式
UCB0BR0 = 12; //12分频
UCB0BR1 = 0;
UCB0I2CSA = 0x4e; //设置从机模式
UCB0CTL1 &= ~UCSWRST; //清除软件复位
|