最近一直在忙考试,没有来更新自己的帖子。现在来谈谈LM3S811的IIC模块的功能运用并且结合本次传感器用的MMA7455三轴加速度。来具体谈谈IIC模块具体运用。
LM3S811的IIC模块
在这里这里仅说说IIC的主模式,从模式可以类比主模式来学习,并且本次的MMA7455三轴加速度传感器也是用的IIC的主模式来控制其运行。
1、IIC的结构图表
在看IIC模块的是感觉比SPI模块的寄存器少多了。很多东西都是相同的,只要学好一种,其他的都可以类比进行的学习。
从IIC的结构图表可以发现,IIC的寄存器还是比较少的。但是功能挺强大的只用两个线就可以完成多数据的传输。虽然在速度上最高只能达到400Kbps,不想USB那样都是很多兆的速度,但是对于IIC的两根线来完成一般的数据传输来说也是非常不错的。
2、IIC的数据传输
首先应该是IIC的启动和停止
在时钟线高的时候数据线从高——低启动IIC,数据线从低——高停止IIC.
其次数据传输:
启动IIC模块后,传输从机地址该地址为7位,第八位是数据方向位,第九位为应答位,该位在表示数据接受收成功。数据位为1的时候接受从机数据,为0的时候发送数据到从机。从第二个字节开始传输数据,当传输完后主机产生停止条件来终止。
要是向的从机的子地址发送,则在发送了从机地址后在发送从机的子地址,之后在开始传输数据。每次数据传输完后都有一个应答位,当主机没有产生应答位的时候表示传输中止。并且为了保证传输的有效必须在时钟为高电平的时候保持数据不要该变,只有时钟线为低电平的时候才可以改变数据线上数据。
应答位应用:
在发送一次数据后第九个时钟周期下接收方都会产生应答数据。应答的时钟有主机提供,SDA线被释放,接受方发送数据产生应答数据,但是其传输的数据也应该满足数据传输有效地规则应用。
IIC传输速度的选择
SCL_PERIOD=2*(1+TIMER_PRD)*(SCL_LP+SCL_HP)*CLK_PRD
其中SCL_LP固定为6,
SCL_HP固定为4,
CLK_PRD为系统的时钟周期
TIMER_PRD为ii2CMTPR寄存器可以编程完成
|