如何看EEPROM芯片手册(以AT24CXX为例)
扫描二维码
随时随地手机看文章
编 者 悟 语
每天结束的可以不完满,但必须让它尽量充实,没有人会向你保证什么,但只要肯去争取,你就拥有了获得的权利。
文 章 导 读
今天给小伙伴们整理了USB接口的类型,带图片说明,好辨识!USB传输速度和USB引线的定义情况,希望对小伙伴们有所帮助哈,!
1 看EEPROM手册要看什么
下面的内容从软件开发的角度出发,可能并不完全,但下面的内容是需要特别注意的。
① EEPROM大小。
② 通信协议。
③ 传输速率。
④ 引脚连接及功能。
⑤ 读写时序。
⑥ 存储组织结构(页组织结构)。
⑦ 结合协议和时序阅读读写机制。
⑧ 编程时根据需要调整时间参数(读写速,直流/交流特性参数等)。
如果对机制不够了解可以看看功能框图,也可以略过。
阅读时对于已经有过类似使用经历的,更多的是针对某一个部分进行查阅。
对于没有对整个手册进行阅读的人员,建议整个读下,读的过程中,主要关注上面的问题,其他的查漏补缺即可。
2 AT24C512的主要功能摘要
1)EEPROM大小
此部分在概览部分,可以分析下页大小是怎么来的,做到心中有数。
AT24C512的大小为512Kbit。
512Kbit = 512 / 8 KByte = 64KByte。
内部有512个页,每页128Byte。
64KByte = 64 * 1024Byte = 512*2 * 64Byte = 512 * 128Byte。
2)通信协议
通信协议为I2C,硬件连接可以用芯片的I2C接口引脚,也可以用普通引脚模拟,带有FlexIO的芯片,用配置寄存器的方式进行I2C通信,引脚复用功能需要配置为FlexIO功能。
3)通信速率
电压与传输速率的对应如下:
1 MHz(5V),400 kHz (2.7V) ,100 kHz(1.8V)。
3)引脚连接及功能
A0和A1为设备地址选择,A2有些手册上为NC,此时能扩4片,如果有A2能扩8片,扩这么多的比较少见。
Vss:地。
SDA:双向串行数据输入/输出口,
SCL:串行时钟输入,上升沿,将SDA上数据写入EEPROM,下降沿从EEPROM读数据到SDA。
WP:写保护。
VCC:供电电压。
4)页组织结构
不同型号的EEPROM的页大小不同,AT24C512是一页128字节,AT24C01是8个字节,AT24C16为16个字节,使用时查看具体手册即可。
下图是AT24C512的页组织结构图,即下图中的n = 127。
行地址指针:指向页号,一行就是一个页缓冲。
列地址指针:指向某一页中首先要访问的字节位置,在传输每个数据字节时,列地址指针将自动递增。
但是,在写入操作期间,页地址指针不会递增,这意味着在页写入操作期间尝试跨越页边界将导致数据回转到此页的开头。
可以看出页缓冲中的字节编号从0开始到127,即一个页缓冲为128个字节。可以将每个页缓冲看成一个成员个数为128的一维数组,数组中的每一个成员的大小为1Byte。
因为页大小为128字节,所以页物理地址的起始地址只能是128的倍数,如设备上的物理页从地址0x0000、0x0080(128)、0x0100(256)开始,依此类推。
5)读写操作
① 控制字。
在将读写之前先看看控制字的格式,设置设备地址。
此控制为8位,前5位固定为10100,A0和A1为设备地址选择,最多可以连接4片EEPROM,R/W为读写控制位,高为读,低为写。
② 写操作。
AT24C512写操作分为写字节和写页。
默认写周期的典型值为5ms。
1> 写字节
通常在向AT24C512发送设备地址控制字,并接到应答信号后,还需要发送2个8位地址来选择要写数据的地址。
AT24C512接收到这个地址后会应答一个零信号,然后接收8位数据进来,并再返回一个零应答信号。
2> 写页
AT24C512可以一次性写入一页128字节。其初始化过程与写字节的方法基本相同。
不同的是:当写入一个数据字节后,单片机不发停止状态,而是在应答信号后接着输入127个字节;每一个字节接收完毕后,AT24C512则照样输出一个零应答信号。
③ 读操作。
AT24C512读操作有当前地址读、随机读、读串三种方式。
其初始化过程基本与写操作相同,只是在设备选择字中的最低位要改成读而已。
1> 读当前地址
读当前地址时,内部数据的地址将保持在最后的读写操作地址加1上,直到读到最后字节后又回到最开始的位置。
内部数据字地址计数器维护上次读或写操作期间访问的最后一个地址,递增一个,芯片只要一直保持供电,该地址在两次操作之间保持有效。
读取期间的地址回滚是从最后一个内存页的最后一个字节到第一页的第一个字节。
一旦读/写选择位设置为1的设备地址被时钟输入并被EEPROM确认,当前地址数据字被串行时钟输出。
微控制器不应答零,但会产生停止条件。
2> 随机读
随机读操作之前先要向AT24C512写入一个字节地址,然后才能读。
随机读取需要一个“伪”字节写入序列来加载数据字地址。
一旦设备地址字和数据字地址被记录并被EEPROM确认,微控制器必须产生另一个启动条件。
微控制器现在通过发送读/写选择位高的设备地址来启动当前地址的读取。
EEPROM确认设备地址,并连续时钟输出数据字。微控制器不响应零,但会产生以下停止条件。
3> 顺序读
顺序读取由当前地址读取或随机地址读取启动。
微控制器接收到一个数据字后,它以一个应答位作为响应。
AT24C512在接收到应答信号后会将地址加1,接着输出下一个字节。当单片机接收到数据但不送应答信号时,读过程结束。
当达到内存地址限制时,数据字地址将回滚,并继续顺序读取。
当微控制器没有以零进行响应,会以停止位,终止顺序读取操作。
今天就到这吧,其他的内容大家结合自己的项目去阅读手册吧,需要注意的是,手册中关于时序及通信机制的细节一定要认真阅读哈。
【1】I2C操作笔记-以 AT24C04为例
【2】学电子最好的工具之一:datasheet
【3】学电子最好的工具二:如何查找datasheet
【4】你所忽略的datasheet,能解答你的一切疑问
【5】SPI怎么玩?搞懂时序,运用自如
【6】怎么看懂芯片的时序图?怎么根据时序图编程?
免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!