Linux AT24C256芯片 数据手册解读
Posted “逛丢一只鞋”
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux AT24C256芯片 数据手册解读相关的知识,希望对你有一定的参考价值。
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进入写保护模式。这时数据是写不进去的。
以上是关于Linux AT24C256芯片 数据手册解读的主要内容,如果未能解决你的问题,请参考以下文章