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

單片機(jī):EEPROM 多字節(jié)讀寫(xiě)操作時(shí)序

AN-0973: 超級(jí)時(shí)序控制器的EEPROM擦除和編程

評(píng)論