本應(yīng)用筆記介紹如何擦除超級時(shí)序控制器的EEPROM空間,以及如何逐字節(jié)地寫入該空間。
成塊擦除EEPROM空間
欲對EEPROM空間進(jìn)行塊擦除,請執(zhí)行下列步驟。
1. 將0x01寫入U(xiǎn)PDCFG寄存器0x90。這是存儲器更新控制寄存器。向寄存器0x90寫入0x01能使配置寄存器持續(xù)更新。建議在整個(gè)讀/寫在線測試(ICT)過程中使該位保持置位狀態(tài)。
2. 擦除或訪問0xFA00到0xFBFF地址范圍的EEPROM時(shí),首先必須中止時(shí)序控制引擎。將0x01寫入SECTRL寄存器0x93以中止時(shí)序控制引擎。每次對時(shí)序控制引擎的EEPROM空間執(zhí)行讀或?qū)懱幚頃r(shí),都必須中止該引擎。
3. 擦除或訪問ADM1166/ADM1168/ADM1169上0xF800到0xF89F或0xF900到0xF9FF地址范圍的EEPROM時(shí),應(yīng)將0x01寫入BBCTRL寄存器0x9C。該寫操作中止黑盒操作,并訪問0xF800到0xF89F和0xF900到0xF9FF地址范圍的EEPROM。
4. 將0x05寫入U(xiǎn)PDCFG寄存器0x90。此寫操作使能EEPROM塊擦除功能。
5. 利用下面列出的程序擦除任何EEPROM空間中的頁面。該程序分解了單頁擦除功能的系統(tǒng)管理總線(SMBus)處理。
? 發(fā)送從機(jī)地址。? 接收應(yīng)答消息。? 發(fā)送EEPROM高位地址(例如0xFA)。? 接收應(yīng)答消息。? 發(fā)送EEPROM低位地址(例如0x00)。? 接收應(yīng)答消息。? 發(fā)送停止消息。? 發(fā)送從機(jī)地址。? 接收應(yīng)答消息。? 發(fā)送頁擦除命令代碼(0xFE)。? 接收應(yīng)答消息。? 發(fā)送停止消息。
6. 對于要擦除的每一頁,將低位地址遞增32字節(jié),即0x20、0x40、0x60、0x80、0xA0、0xC0和0xE0,然后重復(fù)第4步中的例行程序。
7. 擦除所有頁面后,重復(fù)第4步中的例行程序,根據(jù)需要將高位地址更改為0xF9、0xFA或0xFB,并按照第6步所述設(shè)置低位頁面地址。
8. 將0x01寫入寄存器0x90。此寫操作將禁用EEPROM塊擦除功能。
注意:EEPROM 0xF8地址范圍(0xF8A0至0xF8FF)被保留,若試圖訪問此范圍,將產(chǎn)生不應(yīng)答(NACK)。
逐字節(jié)寫入EEPROM空間
字節(jié)寫入
1. 要逐字節(jié)寫入EEPROM空間,請執(zhí)行下列步驟:? 發(fā)送從機(jī)地址。? 接收應(yīng)答消息。? 發(fā)送EEPROM高位地址(例如0xF8)。? 接收應(yīng)答消息。? 發(fā)送EEPROM低位地址(例如0x00)。? 接收應(yīng)答消息。? 發(fā)送數(shù)據(jù)。? 從機(jī)應(yīng)答。? 發(fā)送停止消息。
2. 對于全部0xF8 EEPROM空間,重復(fù)第1步中的例行程序。不過,每寫入一個(gè)字節(jié)的數(shù)據(jù)后,必須遞增低位地址。
3. 當(dāng)0xF8地址范圍內(nèi)的全部EEPROM(0xFA00至0xFBFF)均已寫入時(shí),將高位地址更改為0xF9、0xFA或0xFB,然后重復(fù)第1步和第2步。
4. 在0xFA00至0xFBFF范圍內(nèi)進(jìn)行編程時(shí),應(yīng)將0x00寫入SECTRL寄存器0x93,使時(shí)序控制引擎進(jìn)入正常工作模式。
5. 對ADM1166/ADM1168/ADM1169上0xF800到0xF89F或0xF900到0xF9FF地址范圍的EEPROM進(jìn)行編程時(shí),應(yīng)將0x00寫入BBCTRL寄存器0x9C,以使能黑盒。
ADM1166/ADM1168/ADM1169考慮因素
黑盒利用0xF980至0xF9FF地址范圍存儲黑盒故障記錄。當(dāng)使能一個(gè)或多個(gè)黑盒觸發(fā)器寫入EEPROM時(shí),0xF800至0xF9FF地址范圍的EEPROM就會激活一個(gè)訪問鎖。因此,讀取、寫入或嘗試擦除0xF800到0xF89F或0xF900到0xF9FF地址范圍的EEPROM之前,必須禁用黑盒功能以確保能夠訪問。要禁用黑盒功能,應(yīng)向BBCTRL寄存器0x9C寫入0x01。不再需要訪問EEPROM時(shí),應(yīng)向BBCTRL寄存器0x9C寫入0x00以重新使能黑盒功能。
如果擦除存儲器區(qū)域0xF980至0xF9FF以清除任何現(xiàn)有黑盒故障記錄,則還需要復(fù)位黑盒寫入的下一個(gè)可用位置,即向BBSEARCH寄存器0xD9寫入0x01。
-
控制器
+關(guān)注
關(guān)注
112文章
16103瀏覽量
177069 -
寄存器
+關(guān)注
關(guān)注
31文章
5294瀏覽量
119814 -
EEPROM
+關(guān)注
關(guān)注
9文章
1008瀏覽量
81332
原文標(biāo)題:超級時(shí)序控制器的EEPROM擦除和編程
文章出處:【微信號:motorcontrol365,微信公眾號:電機(jī)控制設(shè)計(jì)加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論