1. FPRERR 标記的操作條件
< 設置條件>
剛執行的對周邊寄存器的寫入命令沒有給PFCMD寫入特定值(PFCMD = A5H)時,對PFCMD進行寫入操作。
在<1>之後,如果第一條存儲指令操作的是外部存儲器而不是FLPMC。
在<2>之後,如果第一條存儲指令操作的是外部存儲器而不是FLPMC。
在<2>之後,如果第一條存儲指令所寫的值不同于FLPMC 值的反碼。
在<3>之後,如果第一條存儲指令操作的是外部存儲器而不是FLPMC。
在<3>之後,如果第一條存儲指令所寫的值不同于FLPMC 值(在<2> 中所寫)。
備注 在菱形括号内的數字對應于(2) Flash 保護命令字節(PFCMD)。
< 複位條件>
如果FPRERR 标志寫0
複位信号輸入
2. VCERR标志的操作條件
< 設定條件>
擦除校驗錯誤
内部寫入校驗錯誤
若VCERR 被設爲1,則說明Flash 沒有被正确的擦除/寫入。在指定的程序裏要再次對Flash 進行擦除/寫入。
備注 當發生擦除/寫入保護錯誤時,VCERR标記也會被置1。
< 複位條件>
VCERR标記被置爲0
外部複位信号輸入
3. WEPRERR 标記操作條件
< 設置條件>
使用保護字節指定一個區域防止該區域因FLASH 地址指針H(FLAPH)和執行相關命令而引起的數據擦除/寫入。
如果“1”被寫入到一個沒有被擦除的位(一個爲“0”的位)。
< 複位條件>
WEPRERR 标記被置0
外部複位信号輸入
(4)FLASH 編程命令寄存器(FLCMD)
在自編程模式下,FLCMD 被用來确定FLASH 的擦、寫、校驗操作。
該寄存器可通過1 位或8 位的操作指令來設置。
複位後寄存器值置爲00H。
www.55dianzi.com
注 如果執行不同于以上的命令時,命令會被立即終止,并且Flash 狀态寄存器(PFS)的第1 或2 位(WEPRERR 或VCERR)會被置1。
(5)Flash 地址指針H 和L(FLAPH 和FLAPL)
Flash 地址指針H 和L(FLAPH 和FLAPL)用于在自編程模式下指定FLASH 的擦除、寫入、驗證的開始地址。
FLAPH 和FLAPL 由計數器組成,當編程命令不執行時,它們遞增直到與FLAPHC 和FLAPLC 的值相等。因此,當程序命令執行時,PLAPHC 和FLAPLC 的值需要重新設置。
Flash 地址指針H 和L(FLAPH 和FLAPL)可通過1 位或8 位操作指令來設置。
複位後寄存器值不确定。
(6) Flash 地址指針H 比較寄存器和FLASH 地址指針L 比較寄存器(FLAPHC和FLAPLC)在自編程模式下校驗FLASH 存儲器時,FLASH 地址指針比較寄存器H 和L(FLAPHC 和FLAPLC)用于指定内部序列操作的地址範圍。
将FLAPH 的值賦給FLAPHC。将FLASH 存儲器校驗範圍的最末端地址賦給FLAPLC。
FLAPHC 和FLAPLC 使用1 位或8 位存儲器操作指令來設定。
複位後FLW寄存器值置爲00H。
注意事項 1. 在自編程命令執行以前,确保FLASH 地址指針H(FLAPH)的第4 ~ 7 位和FLASH 地址指針H 比較寄存器(FLAPHC)清零。如果當執行自編程命令時這些
位的值爲1。
2. 當進行bLOCk 擦除、校驗、空白檢測時,将block 的序号(與FLAPH 的值相同)賦值給FLAPHC。
3. 當block 擦除完成時FLAPLC 要清零,當block 空白檢測完成後FLAPLC要設爲FFH。
(7)Flash 寫緩沖寄存器(FLW)
數據在寫入FLASH 之前,先存儲在FLW 緩存内。
該寄存器值可用1 位或8 位存儲操作指令設置。
複位後FLW寄存器值置爲00H。
(8)保護字節
保護字節用于指定禁止寫入或擦除區域。該指定的保護區域隻在自編程模式下有效。因爲受保護區域在自編程模式下是不可用的,所以保護區域内的數據是受保護的。
本文关键字:FLASH 嵌入式系统-技术,单片机-工控设备 - 嵌入式系统-技术
上一篇:数字多媒体的技术挑战剖析