Linux AT24C256芯片 数据手册解读

27 篇文章 5 订阅

AT24C256 地址

在这里插入图片描述
前四位(1010)是固定的,A2, A1, A0 与硬件连接有关系,外部输入电压为高时是1,外部电压输入为低是0。

本设计中A2, A1, A0都是接地,所以我的设备地址是1010000X,也就是10100000 或10100001。

最后一位R/W是读写位,读操作时为0,写操作时为1。

对于linux IIC子系统,读写位驱动会自动添加,实际设备地址位高七位 1010000B 也就是0x50。

AT24C256页

在这里插入图片描述
这里需要特别注意EEPROM的页操作,在24C256中,存储空间是 64bytr * 512page = 32768 byte, 其中它被分为512页,每页 64 byte。

在进行页操作的时候,word address的低6位用来表示页内的地址其它所有高位表示页地址

比如word address =0 0000 0001 000001B,表示第1页的第一个地址。现在如果往0 0000 0001 000001B的存储地址写入64个数值:1,2,3,… ,64,当写到数值63时,第一页已经写满,那么64会被写到第一页的0地址位置。这时会把第一页0位置的信息被覆盖。

关于IIC EEPROM 页写问题

无论从那个地址连续写,不能超过(跨过)一整页。

AT24CXX 系列的 EEPROM 为了提高写效率,提供了页写功能,内部有个一页大小的写缓冲RAM,地址范围当然就是从00到一页大小,发生写操作时,开始送入的地址对应的页被选中,并将其内容映像到缓冲RAM,数据从低端地址对应的缓冲RAM地址开始修改,超过这个地址范围就回到00,写完后,就会把开始确定的 EEPROM 页擦除,再把一整页RAM数据写入。所有写数据都发生在开始写地址时确定的页上。

如页容量为128,一页都是从00开始按128字节分成一个个的页,0页就是0~ 7F,1页就是80~ FF,类推,边界就是128字节的整数倍地址。页RAM的地址范围为7位00~ 7F,写入时高端地址就是页号。发生写操作,开始送入的地址对应的页被锁存,后续不论写多少,都在这个页中,只是一个页内的地址进行加一,超过就归零开始。从F0开始写32个字节,那么开始送入的地址为F0,就会锁定在1号页(第2个页)上,底端7位页内部地址开始从70H开始写,到达7F时回到00再到10H,也就是写在了F0FF,808F。也就是,从01开始写也只能到7F,再往80写就跑到00上去了,这就是写操作的翻卷,datasheet上都有说明。就是从边界前写两个字节也要分两次写。

页是绝对的,按整页大小排列,不是从开始写入的地址开始算。

读没有页的问题,可以从任意地址开始读取任意大小数据,只是超过整个存储器容量时地址才回卷。但一次性访问的数据长度也不要太大。
所以分页的存储器要做好存储器管理,尽量同时读写的数据放在一个页上。

AT24C256写操作

写操作分为一个字节写和分页写,时序如下图。
在这里插入图片描述
一个字节写时序:

发送开始信号
->发送设备地址
->等待ACK
->发送需要写入的地址
->等待ACK
->发送需要写入的数值
->等待ACK
->发送停止信号。

分页写时序与写一个字节基本相同,只是在发送第一个需要写入的数据之后不发送停止信号,继续发送数据,直到数据发送完之后再发停止信号。

AT24C02读操作

读操作分为:从当前地址读;随机地址读;连续地址读;
在这里插入图片描述
在这里插入图片描述

解析:

当前地址读:24c256内部的data word address 会保存上次读或是写的存储地址,当执行当前地址读时,读取的是data word address counter + 1地址上的指。这里需要主要,在页尾时会出现地址翻转,实际会读取到该页的第一个字节数据。与上面提到的也写操作中的一样。data word address 中保存的值掉电就会丢失。

随机地址读取:注意上图中的Dummy Write。随机读实际上是通过写入一个地址改变eeprom里面data word address 的值,然后再进行当前地址读。

连续读:

连续读由当前地址读和随机地址读启动,只要给eeprom 一个应答信号,他的data word address 就会增加,主控器就可以继续读数据,直到data word address 增加到一个页的末尾后,又回到该页的起始位置地址。当接收到IIC的停止信号的时候结束传输。

注意

最后eeprom 还有一个WP 控制引脚。该引脚为低电平的时候,可以正常的读写数据。当该引脚为高电平的时候。eeprom进入写保护模式。这时数据是写不进去的。

  • 7
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值