欲对EEPROM空间进行块擦除,请执行下列步骤。
1. 将0x01写入UPDCFG寄存器0x90。这是存储器更新控制
寄存器。向寄存器0x90写入0x01能使配置寄存器持续更
新。建议在整个读/写在线测试(ICT)过程中使该位保持
置位状态。
2. 擦除或访问0xFA00到0xFBFF地址范围的EEPROM时,首
先必须中止时序控制引擎。将0x01写入SECTRL寄存器
0x93以中止时序控制引擎。每次对时序控制引擎的
EEPROM空间执行读或写处理时,都必须中止该引擎。
3. 擦除或访问ADM1166/ADM1168/ADM1169上0xF800到
0xF89F或0xF900到0xF9FF地址范围的EEPROM时,应将
0x01写入BBCTRL寄存器0x9C。该写操作中止黑盒操作,
并访问0xF800到0xF89F和0xF900到0xF9FF地址范围的
EEPROM。
4. 将0x05写入UPDCFG寄存器0x90。此写操作使能EEPROM
块擦除功能。
5. 利用下面列出的程序擦除任何EEPROM空间中的页面。该
程序分解了单页擦除功能的系统管理总线(SMBus)处理。
• 发送从机地址。
• 接收应答消息。
• 发送EEPROM高位地址(例如0xFA)。
• 接收应答消息。
• 发送EEPROM低位地址(例如0x00)。
• 接收应答消息。
• 发送停止消息。
• 发送从机地址。
• 接收应答消息。
• 发送页擦除命令代码(0xFE)。
• 接收应答消息。
• 发送停止消息。
AN-0973
应用笔记
One Technology Way • P.O. Box 9106 •Norwood, MA 02062-9106, U.S.A. • Tel: 781.329.4700 • Fax: 781.461.3113 • www.analog.com
Rev. A | Page 1 of 2
超级时序控制器的EEPROM擦除和编程
作者:Enrico Del Mastro、Michael Bradley
6. 对于要擦除的每一页,将低位地址递增32字节,即
0x20、0x40、0x60、0x80、0xA0、0xC0和0xE0,然后重
复第4步中的例行程序。
7. 擦除所有页面后,重复第4步中的例行程序,根据需要
将高位地址更改为0xF9、0xFA或0xFB,并按照第6步所
述设置低位页面地址。
8. 将0x01写入寄存器0x90。此写操作将禁用EEPROM块擦
除功能。
注意:EEPROM 0xF8地址范围(0xF8A0至0xF8FF)被保留,
若试图访问此范围,将产生不应答(NACK)。
逐字节写入EEPROM空间
字节写入
1. 要逐字节写入EEPROM空间,请执行下列步骤:
• 发送从机地址。
• 接收应答消息。
• 发送EEPROM高位地址(例如0xF8)。
• 接收应答消息。
• 发送EEPROM低位地址(例如0x00)。
• 接收应答消息。
• 发送数据。
• 从机应答。
• 发送停止消息。
2. 对于全部0xF8 EEPROM空间,重复第1步中的例行程序。
不过,每写入一个字节的数据后,必须递增低位地址。
3. 当0xF8地址范围内的全部EEPROM(0xFA00至0xFBFF)均
已写入时,将高位地址更改为0xF9、0xFA或0xFB,然后
重复第1步和第2步。
4. 在0xFA00至0xFBFF范围内进行编程时,应将0x00写入
SECTRL寄存器0x93,使时序控制引擎进入正常工作模式。
5. 对ADM1166/ADM1168/ADM1169上0xF800到0xF89F或
0xF900到0xF9FF地址范围的EEPROM进行编程时,应将
0x00写入BBCTRL寄存器0x9C,以使能黑盒。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !