- 9
- 0
- 约 54页
- 2016-04-07 发布于湖北
- 举报
例5.14 在读方式下往从器件写入一个地址字节。 void f_I2cWriteAdd_R(unsigned char uc_I2CAdd) //写从器件地址和读方式 { TWDR=(uc_I2CAdd); TWCR=(1TWINT) |(1TWEN) ; //写数据到TWDR while(!(TWCR(1TWINT); if(TWSR0xf8!= 0x40) error(); } 例5.15 往从器件写入一个数据字节。 void f_I2cWriteData_R(unsigned char uc_I2CData) //写从器件数据 { TWDR=(uc_I2CData); TWCR=(1TWINT) |(1TWEN) //写数据到TWDR while(!(TWCR(1TWINT); if(TWSR0xf8!= 0x28) error(); } 例5.16 读从器件,返回字节数据。要求接收到ACK信号。 unsigned char f_I2Cread1(viod) //读返回数据 { unsigned char uc_ReturnData; TWCR=( TWCR0xCF)| (1TWEN)| (1TWEA) |(1TWINT) ; //启动主读方式 while(!(TWCR(1TWINT); if(TWSR0xf8!= 0x50) //接收到数据,返回 ACK return 0; uc_ReturnData= TWDR; return uc_ReturnData; } AT24C02 AT24C02是由ATMEL公司提供的,I2C总线串行EEPROM,其容量为2Kbit(256B),工作电压在2.7V~5.5V之间,生产工艺是CMOS工艺。 各引脚功能如下。 A2~A0:器件地址选择引脚。将这3个引脚配置成不同的编码值,在同一串行总线上最多可扩充8片同一容量或不同容量的24系列串行EEPROM芯片。 SDA:串行数据输入输出口,是一个双向的漏极开路结构的引脚,容量扩展时可以将多片24系列的SDA引脚直接相连。 SCL:串行移位时钟控制端。写入时上升沿起作用,读出时下降沿起作用。 WP:硬件写保护控制引脚。当其为低电平时,正常写操作,高电平时,对EEPROM部分存储区域提供硬件写保护功能,即对被保护区域只能读不能写。 GND:接地。 VCC:接+5V电压 电路设计 型号与容量 容量计算方法 AT24Cxx:01~1024 容量=xx X 1Kbit 型号系列列表 AT24C01 1K(128X8) AT24C02 2K(256X8) AT24C04 4K(512X8) AT24C08 8K(1KX8) AT24C16 16K(2KX8) AT24C512 512K(64KX8) AT24C1024 1M(128KX8) 器件地址结构 程序流程 5.4.3 总线接口单元 该单元包括数据与地址移位寄存器TWDR, START/STOP 控制器和总线仲裁判定硬件电路。 5.4.4 地址匹配单元 地址匹配单元将检测从总线上接收到的地址是否与TWAR 寄存器中的7 位地址相匹配。 5.4.5 控制单元: 控制单元监控TWI 总线,并根据 TWI 控制寄存器TWCR 的设置作出相应的响应。 5.4.6 使用TWI AVR的 TWI接口是面向字节和基于中断的。 在字节发送和接收过程中,不需要应用程序的干预。 TWCR 寄存器的 TWIE位和SREG寄存器的全局中断允许位一起决定了应用程序是否响应TWINT标志位产生的中断请求。 1、TWI寄存器设置 (1)TWI 比特率寄存器(TWBR) Bits 7..0 – TWI 比特率寄存器 TWBR 为比特率发生器分频因子。比特率发生器是一个分频器,在主机模式下产生SCL时钟频率。 (2)TWI 控制寄存器(TWCR) Bit 7 – TWINT: TWI 中断标志 Bit 6 – TWEA: 使能TWI 应答 Bit 5 – TWSTA: TWI START 状态标志 Bit 4 – TWSTO: TWI STOP 状态标志 Bit 3 – TWWC: TWI 写碰撞标志 Bit 2 – TWEN: TWI 使能 Bit 1 – Res: 保留 Bit 0 – TWIE: 使能TWI 中断 (3)TWI 状态寄存器(TWSR) Bits 7..3 – TWS: TWI 状态 Bit 2 – Res: 保留 Bits 1..0 – TWPS: TWI 预分频位 (4)TWI 数据寄存器(TWDR) Bits 7..0
原创力文档

文档评论(0)