本应用笔记介绍如何擦除超级时序控制器的EEPROM空间,以及如何逐字节地写入该空间。
成块擦除EEPROM空间
欲对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)。• 接收应答消息。• 发送停止消息。
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,以使能黑盒。
ADM1166/ADM1168/ADM1169考虑因素
黑盒利用0xF980至0xF9FF地址范围存储黑盒故障记录。当使能一个或多个黑盒触发器写入EEPROM时,0xF800至0xF9FF地址范围的EEPROM就会激活一个访问锁。因此,读取、写入或尝试擦除0xF800到0xF89F或0xF900到0xF9FF地址范围的EEPROM之前,必须禁用黑盒功能以确保能够访问。要禁用黑盒功能,应向BBCTRL寄存器0x9C写入0x01。不再需要访问EEPROM时,应向BBCTRL寄存器0x9C写入0x00以重新使能黑盒功能。
如果擦除存储器区域0xF980至0xF9FF以清除任何现有黑盒故障记录,则还需要复位黑盒写入的下一个可用位置,即向BBSEARCH寄存器0xD9写入0x01。
-
控制器
+关注
关注
112文章
16185浏览量
177336 -
寄存器
+关注
关注
31文章
5308浏览量
119978 -
EEPROM
+关注
关注
9文章
1010浏览量
81395
原文标题:超级时序控制器的EEPROM擦除和编程
文章出处:【微信号:motorcontrol365,微信公众号:电机控制设计加油站】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论