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