這一類的器件一般將振蕩器校準字存儲在測試存儲器的地址0x2008處,盡管這些值是存在測試存儲器的位置,而且與FLASH的編程時序沒有關系,但是,仍然會出現丟失和損壞的現象。根據經驗,我們列出了下面的可能的原因的清單,以及采取什么樣的步驟來防止以后再發生類似的事情。
① 糟糕的連接: 彈簧頂針、編程插座以及編程連接器的連接不可靠。糟糕的連接或者電源中斷會導致編程指令被錯誤執行或者被跳過。錯誤地讀取指針或者編程順序可能會導致將編程矢量指向測試存儲器。
----檢視和清理編程連接。這一類型的錯誤往往發生于生產進行了一段時間之后。
② 糟糕的編程器電源:如果在編程的過程中編程器的電源出現中斷的話,編程器在器件被擦除后會丟失校準字數據。
----修理編程器的電源。
③ 電纜信號完整性: 如果編程波形變形的話,這些命令就會被錯誤執行或者跳過,這將會導致校準字被損壞。
----縮短或者重新走線編程電纜。這種問題往往伴隨著比較高的校驗錯誤率。
④ 編程中斷:如果在片擦除的過程中出現編程器中斷的話,校準字就會丟失。這可能是由電源導致,也可能以為連接或者操作失誤。
----驗證完整的編程時序。
⑤ 過時的固件:對于保存正確的校準字數據,過時的編程器版本所使用的方法的可靠性會更差一些。
----更新固件。
⑥ 并行編程:有些客戶會使用不支持多器件編程的編程器來對多個器件同時編程,另外,即使使用了多個單獨的編程器或者是多器件編程器.......不能對多個器件共享使用同一個編程連接器。
----驗證編程工序。
⑦ 編程硬件:編程硬件有可能沒有使用正確的器件編程規范。
----驗證編程器是否功能正常,使用從可靠供應商處獲得的編程器來驗證根本原因
⑧ Vdd上的大電容:有些應用可能需要在Vdd上加大電容,由于這些電容的存在,在加上比較短的Vdd關閉時間,這可能導致器件在編程階段之間,器件有可能沒有能夠正常復位。
----在編程時在Vdd上加放電電路,或者增加Vdd關閉時間,以保證完全放電?;蛘吒纱鄿p小Vdd上的電容。
① 在線調試時,芯片管腳太少(20pin以下)的需要仿真頭
② ICD3的VPP帶負載能力比較弱,復位電路建議用10K以上電阻,并保證VPP走線盡可能短。
③ 有反饋ICD3的USB連接性不大可靠,我們建議ICD3的客戶都采用最新的MPLAB IDE,USB連接性將大大改善,以便可靠連接ICD3。
程序編譯以后,配置位的DEBUG位為0(configure窗口沒有顯示該選項),但可以看到該值。
解決辦法:在程序里將該位置1,如18F45K20, 24FJ128MCXXX, 24FJ128GA010等型號。希望遇到同樣問題的可以借鑒,特別是較新的型號。
如果您收到讀或寫錯誤:
○ 您是否點擊了Abort (中止)?這會產生讀/寫錯誤。
○ 再次嘗試讀/寫操作??赡苁莻€一次性錯誤。
○ 確保目標器件上電且處于器件的正確電壓值。請參見器件數據手冊以了解需要的器件電壓值。
○ 確保調試器與目標器件的連接正確(連接了PGC 和PGD)。
○ 對于寫故障,請確保在Settings 對話框的Program Memory 選項卡上選擇了
○ “Erase all before Program”。
○ 請確保使用的電纜的長度正確
○ 正確設置配置位,檢查是否振蕩器不工作,看門狗打開,程序代碼保護等。
○ 目標板未上電。檢查電源電纜連接。
○ 在Release(發布)模式下編譯項目。需在項目工具欄的Build Configuration下拉列表中選擇Debug,然后重新編譯項目
○ 正確設置配置位,檢查是否振蕩器不工作,看門狗打開,程序代碼保護等。
○ 目標板未上電。檢查電源電纜連接。
○ 在Release(發布)模式下編譯項目。需在項目工具欄的Build Configuration下拉列表中選擇Debug,然后重新編譯項目。
燒寫的程序里沒有包含Config信息,需要在MPLAB IDE里對configbits進行設置,具體步驟:
1、打開MPLAB IDE;
2、通過file->import,打開要燒寫的HEX文件;
3、對configbits進行設置;
4、通過file->export,導出HEX文件。
此時的HEX文件才是包含了config 信息的HEX文件,這樣再用PICKIT2燒寫的話應該就不會提示那個錯誤了。
ICD3Err0045: You must connect to a target device to use MPLAB ICD 3.
○ 檢查目標標是否供電,或IDE里設置ICD3供電。由于ICD3是通過USB供電,所以ICD3供電到目標板的電流不大,建議使用時目標板自己外接電源;
○ 檢查ICD3到目標板的連線順序,很多客戶連接時正好順序全反;
○ 檢查燒寫端口的5根線的是否有接錯或者接觸不良。
MPLAB ICD 3 在線調試器和目標器件彼此不同步。
1) 選擇Reset,然后再次嘗試此操作。
2) 請確保使用的電纜的長度正確。
MPLAB ICD 3 在線調試器和MPLAB IDE 彼此不同步。
1) 拔出調試器然后插入。
2) 重新連接調試器。
3) 再次嘗試此操作。此錯誤也許是個一次性問題。
4) 安裝的MPLAB IDE 版本可能與MPLAB ICD 3 在線調試器上裝載的固件版本不符。
電腦安全等級過高,可以通過:控制面板--系統和安全--操作中心--修改用戶帳戶控制設置,將安全等級的滑條調到最低。