AVR單片機解密后的熔絲配置
AVR單片機內(nèi)部有多組與器件配置和運行環(huán)境相關(guān)的的熔絲位,這些熔絲位非常重要,用戶可以通過設(shè)定和配置熔絲位使AVR單片機局部不同的特性,以更加適合實際應(yīng)用。但是由于需要對熔絲位進行配置,給初學(xué)者帶來一些不太好理解的地方,對于單片機解密以后,在燒錄程序的時候,也要對熔絲位配置,如果配置不對了,可能不工作或功能發(fā)生變化。所有在燒錄解密后的文件的時候一定要對熔絲位進行配置,由于支持AVR的工具非常多,而不同的工具的軟件的界面不同,所以在做AVR單片機解密前最好告訴解密公司自己使用的是什么工具,讓芯片解密公司按照自己的工具的界面做配置圖,這樣就方便了解密以后去燒寫程序,不過自己也可以用解密公司提供的樣片去讀熔絲位配置,有的工具直接讀芯片就可以,有的是讀配置等等,然后將讀出的配置保存。
如果是剛出廠的單片機,默認的是使用內(nèi)部1MHZ的RC振蕩作為系統(tǒng)時鐘,而且JTAG口處于允許方式。對于AVR熔絲位要起碼要明確以下幾點。
AVR熔絲可以多次編程,不是一次性的OTP熔絲。
熔絲位的配置可以通過并行方式、ISP方式和JTAG串行方式實現(xiàn)。
AVR芯片加密鎖定后(LB2/LB1=1/0,0/0)不能通過任何方式讀取芯片內(nèi)部FLASH和EEPROM中的數(shù)據(jù),但熔絲位的狀態(tài)任然可以讀取,只是不能修改配置。
芯片擦除命令是將FLASH和EEPROM中的數(shù)據(jù)清除,并同時將兩位鎖定位狀態(tài)配置成無鎖定狀態(tài)(LB2/LB1=1/1),但芯片擦除命令并不改變其他熔絲位的狀態(tài)。
下載編程的正確步驟是:在芯片無鎖定狀態(tài)下對芯片下載運行代碼和數(shù)據(jù),配置相關(guān)熔絲位,最后配置芯片的加密位置。
芯片被加密鎖定后,如果發(fā)現(xiàn)熔絲位及配置不對,則必須使用芯片擦除命令,清除芯片中的數(shù)據(jù),解密加密鎖定,然后重新下載運行代碼和數(shù)據(jù),修改配置相關(guān)的熔絲位,最后再次配置芯片的加密鎖定位。
需要非常明確的指出一點的是SPIEN位,很多客戶曾經(jīng)電話咨詢過,說是我們提供的單片機用ISP連接不上,而自己買來的可以,熔絲為的SPIEN就是配置ISP的,如果SPIEN為1,ISP是允許狀態(tài),如果是0則為禁止狀態(tài),如果是禁止狀態(tài)當然是無法ISP連接口芯片的。
另外比較重要的是BOOTRST位,這一位的設(shè)置關(guān)系到芯片上電后程序從0X0000開始執(zhí)行還是從 BOOT區(qū)開始執(zhí)行。而系統(tǒng)時鐘源的選擇也非常重要,解密后的程序客戶燒寫的時候經(jīng)常不好用,打部分是由于時鐘源沒有設(shè)置對的原因,所以系統(tǒng)時鐘一定按照原來的設(shè)置。
擴展閱讀:AVR熔絲位設(shè)置教程
編輯:admin 最后修改時間:2018-05-19