AT24C02的使用

1.简介

        AT24C02是一个2K位串行CMOS E2PROM, 内部含有256个8位字节。AT24C02有一个8字节页写缓冲器。该器件通过IIC总线接口进行操作,有一个专门的写保护功能。

2.分析

参考博客https://blog.csdn.net/qq_38693598/article/details/86521264

2.1AT24C02引脚

AT24C02的话,就是存储单元有2K位,即0.25K字节=256字节,寻址范围为0~255,寻址地址位数就有8位。

AT24C04的话,就是存储单元有4K位,即0.5K字节=512字节,寻址范围为0~511,寻址地址位数就有9位

AT24C08的话,就是存储单元有8K位,即1K字节=1024字节,寻址范围为0~1023,寻址地址位数就有10位。

以此类推。。。

2.2寻址方式

操作时有两种寻址方式:片寻址和存储单元寻址。
(1)片寻址:AT24C02的芯片地址为1010,其地址控制字格式为1010A2A1A0R/W。其中A2,A1,A0可编程地址选择位。A2,A1,A0引脚接高、低电平后得到确定的三位编码,与1010形成7位编码,即为该器件的地址码。R/W为芯片读写控制位,该位为0,表示芯片进行写操作;该位为1,表示芯片进行读操作。
(2)存储单元寻址:芯片寻址可对内部存储单元256B中的任一个进行读/写操作,其寻址范围为00~FF,共256个寻址单位。

2.3代码解析

IIC只能一次传送8位但是AT24C04/08等芯片的存储单位地址不止8位。所以需要存储单元多出的几位地址要占用片寻址的A0~A2。

比如:由上面可知,AT24C08有10位地址,所以要占用片寻址的2位。

当ReadAddr超过256字节时,ReadAddr/256就会得到a9a8值。写成10位地址就是0000 0000 a9a8,左移一位就是0000 000a9 a80,刚好对应片地址1010 A2a9a8R/W。

所以IIC_Send_Byte(0XA0+((ReadAddr/256)<<1))  //发送器件地址0XA0+存储单元高位地址

IIC_Send_Byte(ReadAddr%256);   //发送存储单元低位地址

2.4时序

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值