当前位置:首页 > 单片机 > 单片机
[导读]TWI: 是一种全双工的串行通讯协议,与I2C工作方式相同,由一条数据传输线SDL,一条时钟线SCL组成,对应单片机的外部引脚PC1,PC0。 由于只有两条总线,简化了系统设计。特点: ? 简单,但是强大而灵活的通讯接口,只

TWI: 是一种全双工的串行通讯协议,与I2C工作方式相同,由一条数据传输线SDL,一条时钟线SCL组成,对应单片机的外部引脚PC1,PC0。

由于只有两条总线,简化了系统设计。

特点: ? 简单,但是强大而灵活的通讯接口,只需要两根线
? 支持主机和从机操作
? 器件可以工作于发送器模式或接收器模式
? 7 位地址空间允许有128 个从机
? 支持多主机仲裁
? 高达400 kHz 的数据传输率
? 斜率受控的输出驱动器
? 可以抑制总线尖峰的噪声抑制器
? 完全可编程的从机地址以及公共地址
? 睡眠时地址匹配可以唤醒AVR

主机: 控制启动和停止传输的设备。主机同时要产生SCL 时钟
从机: 被主机寻址的设备
发送器: 将数据放到总线上的设备
接收器: 从总线读取数据的设备

TWI工作模式: 主机发送模式(MT)

主机接收模式(MR)

从机发送模式(ST)

从机接收器模式(SR)

例如, TWI 可用MT 模式给TWIEEPROM 写入数据,用MR 模式从EEPROM 读取数据。如果系统中有其它主机存在 ,它们可能给TWI 发送数据,此时就可以用SR 模式。应用程序决定采用何种模式。

模式状态缩写:

S: START 状态
Rs:REPEATED START 状态
R:读一个比特(SDA 为高电平)
W:写一个比特(SDA 为低电平)
A:应答位(SDA 为低电平)
A: 无应答位(SDA 为高电平)
Data:8 位数据
P: STOP 状态
SLA:从机地址


一、主机模式:可以向从机发送数据,进入主机模式,首先发送一个START信号,接着的从机地址决定了进入MT还是MR模式

主机发送(MT): S+SLA+W, 主机接收(MR): S+SLA+R

1、波特率设置:TWBR=100;

2、分频设置: TWSR|=(1<

写过程:

1)、发送启动信号: TWCR=(1<

2)、 等待应答信号: while ((TWCR&(1<

3)、 进入主机写模式: TWDR=0Xa0;// TWDR=SLA+W; //通过在TWDR中写入SLA+W进入主机写模式,SLA+R进入主机读模式

TWCR=(1<

 while ((TWCR&(1<

    4)、发送要写入的地址: TWDR=adress;

TWCR=(1<

while(!(TWCR&(1<

5)、 发送要写入的数据: TWDR=data;

TWCR=(1<

while(!(TWCR&(1<

6)、发送停止信号: TWC(1<

读过程:

1)、启动信号: TWCR=(1<

while(!(TWCR&(1<

2)、 进入主机写模式:TWDR=0Xa0; //TWDR=SLA+W;

TWCR=(1<

while(!(TWCR&(1<

3)、写入要读的地址: TWDR=address;

TWCR=(1<

while(!(TWCR&(1<

4)、发送启动信号: TWCR=(1<

while(!(TWCR&(1<

5)、进入主机读模式: TWDR=0Xa1 ;//TWDR=SLA+R;

TWCR=(1<

while(!(TWCR&(1<

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭