×
单片机 > 单片机程序设计 > 详情

ATmega 16 单片机的TWI接口的相关寄存器(六)

发布时间:2020-08-24 发布时间:
|
1.TWBR——TWI比特率寄存器

TWBR为比特率发生器分频因子。比特率发生器是一个分频器,在主机模式下产生SCL时钟频率。当TWI工作于从机模式时,不需要设定比特率寄存器或预分频系数,但从机的CPU频率必须大于TWI时钟线SCL频率的16倍。

                                                                                    f

                                                            f=—————————————

                                                                  16+2*TWBR*4(TWPS)

注意:为了保持伟输的稳定,TWI工作在主机模式时TWBR的值不小于10。

2.TWCR——TWI控制寄存器

          TWINT     TWEA     TWSTA     TWSTO     TWWC     TWEN     –     TWIE

TWCR用来控制TWI操作。它用来使能TWI,通过施加START到总线上来启动主机访问,产生接收器应答,产生STOP状态,以及在写入数据到TWDR寄存器时控制总线的暂停等。这个寄存器还可以给出在TWDR无法访问期间,试图将数据写入到TWDR而引起的写入冲突信息。

位 7——TWINT:TWI中断标志
当TWI完成当前工作,希望应用程序介入时TWINT置位。若SREG的I标志以及TWCR寄存器的TWIE标志也置位,则MCU执行TWI中断例程。当TWINT置位时,SCL信号的低电平被延长。TWINT标志的清零必须通过软件写"1”来完成。执行中断时硬件不会自动将其改写为"0”。要注意的是,只要这一位被清零,TWI立即开始工作。因此,在清零TWINT之前一定要首先完成对地址寄存器TWAR,状态寄存器TWSR,以及数据寄存器TWDR的访问。
位 6——TWEA:使能TWI应答
TWEA标志控制应答脉冲的产生。若TWEA置位,出现如下条件时接口发出ACK脉冲:
(1).器件的从机地址与主机发出的地址相符合
(2).TWAR的TWGCE置位时接收到广播呼叫
(3).在主机/从机接收模式下接收到一个字节的数据
(4).将TWEA清零可以使器件暂时脱离总线。置位后器件重新恢复地址识别。
位 5——TWSTA:TWI START状态标志
当CPU希望自己成为总线上的主机时需要置位TWSTA。TWI硬件检测总线是否可用。若总线空闲,接口就在总线上产生START状态。若总线忙,接口就一直等待,直到检测到一个STOP状态,然后产生START以声明自己希望成为主机。发送START之后软件必须清零TWSTA。
位 4——TWSTO:TWI STOP状态标志
在主机模式下,如果置位TWSTO,TWI接口将在总线上产生STOP状态,然后TWSTO自动清零。在从机模式下,置位TWSTO可以使接口从错误状态恢复到未被寻址的状态。此时总线上不会有STOP状态产生,但TWI返回一个定义好的未被寻址的从机模式且释放SCL与SDA为高阻态。

位 3——TWWC:TWI写碰撞标志
当TWINT为低时写数据寄存器TWDR将置位TWWC。当TWINT为高时,每一次对TWDR的写访问都将更新此标志。
位 2——TWEN:TWI使能
TWEN位用于使能TWI操作与激活TWI接口。当TWEN位被写为"1”时,TWI引脚将I/O引脚切换到SCL与SDA引脚,使能波形斜率限制器与尖峰滤波器。如果该位清零,TWI接口模块将被关闭,所有TWI传输将被终止。
位1——Res:保留
保留,读返回值为”0”。
位 0——TWIE:使能TWI中断
当SREG的I以及TWIE置位时,只要TWINT为"1”,TWI中断就激活。
3.TWSR——TWI状态寄存器

位 [7..3]——TWS:TWI状态
这5位用来反映TWI逻辑和总线的状态。不同的状态代码将会在后面的部分描述。注意从TWSR读出的值包括5位状态值与2位预分频值。检测状态位时设计者应屏蔽预分频位为"0”。这使状态检测独立于预分频器设置。

位 2——Res:保留
保留,读返回值为"0”。
位[ 1..0]——TWPS:TWI预分频位
这两位可读/写,用于控制比特率预分频因子。

TWPS1   TWPS0      预分频器值
     0              0                  1
     0              1                  4
     1              0                  16
     1              1                  64
4.TWDR——TWI数据寄存器

位 [7..0[——TWD:TWI数据寄存器
根据状态的不同,其内容为要发送的下一个字节,或是接收到的数据。

5.TWAR——TWI地址寄存器

位[7..1]——TWA:TWI从机地址寄存器
其值为从机地址。
位0——TWGCE:使能TWI广播识别
置位后MCU可以识别TWI总线广播。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
AVR熔丝位操作时的要点和需要注意的相关事项