微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > TWI接口

TWI接口

时间:12-12 来源:互联网 点击:

元以去除小于50ns的毛刺干扰。当相应的端口被设置为SCL与SDA引脚时,可以使能I/O口内部的上拉电阻,这样可省掉外部的上拉电阻。

当TWI工作于主机模式时,比特率发生器(上图中的Bit Rate Generator部分)控制时钟信号SCL的周期。具体的值由TWI状态寄存器TWSR(上图中的Control Unit部分内)的预分频系数以及比特率寄存器TWBR(上图中的Bit Rate Generator部分内)设定。可通过下面的公式来计算。

式中,TWBR是TWI比特率寄存器的数值,TWPS是TWI状态寄存器预分频的数值。TWI工作在主机模式时,TWBR值应该不小于10。否则主机会在SDA与SCL产生错误输出作为提示信号。

当TWI工作在从机模式时,不需要对比特率或预分频进行设定,但从机的CPU时钟频率必须大于TWI时钟线SCL频率的16倍。

在上图中,还有一个总线接口(上图中的Bus Interface Unit部分)。它包含有数据与地址移位寄存器TWDR,START/STOP控制器和总线仲裁判定硬件电路。TWDR寄存器用于存放发送或接收的数据或地址。除了8位的TWDR外,总线接口单元还有一个寄存器,包含了用于发送或接收应答的(N)ACK。这个(N)ACK寄存器不能由程序直接访问。当接收数据时,它可以通过TWI控制寄存器TWCR来置位或清零;在发送数据时,(N)ACK值由TWCR的设置来决定。START/STOP控制器负责产生和检测TWI总线上的START、REPEATEDSTART与STOP状态。即使在MCU处于休眠状态时,START/STOP控制器仍然能够检测TWI总线上的START/STOP条件,当检测到自己被TWI总线上的主机寻址时,将MCU从休眠状态唤醒,这一功能在节电时非常必要。

接下来是地址匹配单元(上图中的Address Match Unit部分)。地址匹配单元将检测从总线上接收到的地址是否与TWAR寄存器中的7位地址相匹配。如果TWAR寄存器的TWI广播应答识别使能位TWGCE为1,从总线接收到的地址也会与广播地址进行比较。一旦地址匹配成功,控制单元将得到通知以进行正确地响应。TWI可以响应,也可以不响应主机的寻址,这取决于TWCR寄存器的设置。即使MCU处于休眠状态时,地址匹配单元仍可继续工作。一旦主机寻址到这个器件,就可以将MCU从休眠状态唤醒。

最后一个部分是控制单元,它监听TWI总线,并根据TWI控制寄存器TWCR的设置作出相应的响应。当TWI总线上产生需要应用程序干预处理的事件时,TWI中断标志位TWINT置位。一旦TWINT标志位置1,时钟线SCL的电平即被拉低,暂停TWI总线上的数据传输,让用户程序处理事件。在下列状况出现时,TWINT标志位会被置位。

1、在TWI传送完START/REPEATED START信号之后
2、在TWI传送完SLA+R/W数据之后
3、在TWI传送完地址字节之后
4、在TWI总线仲裁失败之后
5、在TWI被主机寻址之后( 广播方式或从机地址匹配)
6、在TWI接收到一个数据字节之后
7、作为从机工作时,TWI接收到STOP或REPEATED START信号之后
8、由于非法的START或STOP信号造成总线错误时

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top