本應用筆記介紹如何擦除超級時序控制器的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文章
16332瀏覽量
177808 -
寄存器
+關注
關注
31文章
5336瀏覽量
120230 -
EEPROM
+關注
關注
9文章
1019瀏覽量
81560
原文標題:超級時序控制器的EEPROM擦除和編程
文章出處:【微信號:motorcontrol365,微信公眾號:電機控制設計加油站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論