快捷搜索:  汽车  科技

单片机常用接口总线(小5带你飞13)

单片机常用接口总线(小5带你飞13)设备从机地址被接收bit 6:使能TWI应答。TWEA标志控制应答脉冲的产生,若TWEA置位,则会出现如下条件时接口发生ACK脉冲:TWBR 为比特率发生器分频因子。比特率发生器是一个分频器,在主机模式下产生SCL时钟频率。就是一个8位的,这个没啥说的。该寄存器用来使能TWI,通过施加START到总线上来启动主机访问,产生接收器应答,产生STOP状态,以及在写入数据到TWDR寄存器时控制总线的暂停等一些列活动。bit 7:TWI中断标志,当TWI完成当前的工作,希望应用程序介入时TWINT置位。若SREG的I标志及其TWCR寄存器的TWIE标志也置位,则MCU执行TWI中断。

单片机常用接口总线(小5带你飞13)(1)

TWI总线可以认为是I2C总线,ATmega328p的TWI总线是一个简单强大的通讯接口,使用两根线就可以了,分别是时钟线SCL和数据线SDA。关于TWI的一些术语就不在这里讲了,自己可以去百度一下,大把的资料。

单片机常用接口总线(小5带你飞13)(2)

TWI总线配置图

我们主要来看它涉及到的寄存器。

1.TWBR :TWI比特率寄存器

单片机常用接口总线(小5带你飞13)(3)

TWBR 为比特率发生器分频因子。比特率发生器是一个分频器,在主机模式下产生SCL时钟频率。就是一个8位的,这个没啥说的。

该寄存器用来使能TWI,通过施加START到总线上来启动主机访问,产生接收器应答,产生STOP状态,以及在写入数据到TWDR寄存器时控制总线的暂停等一些列活动。

bit 7:TWI中断标志,当TWI完成当前的工作,希望应用程序介入时TWINT置位。若SREG的I标志及其TWCR寄存器的TWIE标志也置位,则MCU执行TWI中断。

bit 6:使能TWI应答。TWEA标志控制应答脉冲的产生,若TWEA置位,则会出现如下条件时接口发生ACK脉冲:

  • 设备从机地址被接收

  • TWAR的TWGCE置位时接收到广播呼叫

  • 在主机模式或者从机模式下接收到一个字节的数据

将TWEA清零可以是器件暂时脱离总线,置位后器件重新恢复地址识别。

bit 5:TWI START状态标志。当cpu希望自己成为总线上的主机时需要置位该位。TWI硬件检测总线是不是可用,若总线空闲时,接口就在总线上产生START状态,若总线忙,接口就一直等待,直达检测到一个STOP状态然后产生START以声明自己希望成为主机,发送START之后软件必须清零TWSTA。

bit 4:TWI STOP状态标志。在主机模式下,如果该位置位,则TWI接口将在总线上产生STOP状态,然后该位自动清零。在从机模式下,置位该位可以使接口从错位状态恢复到未被寻址的状态。

bit 3:TWI写碰撞标志。当TWINT为低时,写数据寄存器TWDR将置位该位。当TWINT为高时,每一次对TWDR的写访问都将更新此标志。

bit 2:TWI使能。该位用于使能TWI操作与激活TWI接口,当该位置位,TWI引脚将I/O引脚切换到SCL与SDA引脚。如果该位清零,TWI接口将被关闭,所有的TWI传输将被终止。

bit 1:保留位

bit 0:使能TWI中断。当SREG的I位和TWIE置位时,只要TWINT为1,TWI中断就激活。

3.TWSR :TWI 状态寄存器

单片机常用接口总线(小5带你飞13)(4)

bit 7~3:TWI状态位。这5位用来反映TWI逻辑和总线的状态,从TWSR读出的值包含5位状态值和2位预分频值。

我们来看一下这5位对应的值,发送模式的状态情况,见下表:

单片机常用接口总线(小5带你飞13)(5)

即当这5位的值为:0x08,表示START信号发送了,就这个意思。

bit 1~0:TWI预分频位。可读写,用于控制比特率的预分频因子。见下表:

单片机常用接口总线(小5带你飞13)(6)

4.TWDR :TWI 数据寄存器

单片机常用接口总线(小5带你飞13)(7)

在发送模式下,该寄存器包含了要发送的字节,在接收模式下,该寄存器包含了接收到的数据。当TWI接口没有进行移位工作(TWINT置位)时,这个寄存器使可以写的。

bit 7~0:根据不同的状态,存放的要发的下一个字节数据或者是接收到的数据。

5.TWAR – TWI 从机地址寄存器

单片机常用接口总线(小5带你飞13)(8)

bit7~1:从机地址。工作在从机模式的时候,TWI讲根据这个地址进行响应。主机模式不需要此地址。

bit 0:控制到底是读还是写。

6.TWAMR :TWI 从机地址掩码寄存器

单片机常用接口总线(小5带你飞13)(9)

关于寄存器就先说这么多了。

再来看两个表:

单片机常用接口总线(小5带你飞13)(10)

典型数据传输中应用程序与 TWI 的接口

单片机常用接口总线(小5带你飞13)(11)

汇编与 C 语言例程

我们写程序的时候,就可以根据这个表来自己弄了。

下一个教程我们再来写相关的程序。

更多内容请关注头条号:小5嵌入式



猜您喜欢: