AVR熔絲位配置詳解
AVR Studio 中 STK500 處理熔絲位有巨大的優(yōu)勢(shì):它是以功能組合讓用戶(hù)配置。 這種方式與小馬(PnoyProg2000,SL-ISP)相比,具有以下的優(yōu)勢(shì)(優(yōu)勢(shì)是如此明顯,可以用“巨大優(yōu)勢(shì)”來(lái)形容):
本文引用地址:http://m.butianyuan.cn/article/201611/316282.htm- 有效避免因不熟悉熔絲位讓芯片鎖死 (這是初學(xué)者的惡夢(mèng)), 筆者曾經(jīng)鎖死過(guò)三片Atmega16。
- 不需要靠記憶與查文檔,就能配置熔絲位(這也是初學(xué)者的惡夢(mèng))
- 動(dòng)手之前:請(qǐng)你一定弄清楚了,你這樣改會(huì)有什么后果,除非你有很多錢(qián)不在乎多鎖死幾個(gè)芯片。備份你的熔絲位狀態(tài),在點(diǎn)擊Program之前再次檢查熔絲位設(shè)置正確與否,不要誤點(diǎn)了某項(xiàng)而沒(méi)有注意到。
由于ISP下載需要芯片本身提供時(shí)鐘信號(hào)。一定注意,如果沒(méi)有接外部晶振,一定不能編程熔絲位使用外部晶振。一旦那樣做,就不能再進(jìn)入編程了,也就是芯片被鎖死。
建議新手不要隨意設(shè)置芯片的熔絲位,等對(duì)熔絲位比較了解了再進(jìn)行操作。
當(dāng)芯片鎖死已成事實(shí),只要能夠?yàn)樾酒峁┫鄬?duì)應(yīng)的時(shí)鐘源即可。如選擇了Ext. RC Osc而又沒(méi)有外部 RC(阻容) 振蕩器時(shí),可參考手冊(cè)的接一個(gè)很簡(jiǎn)單的RC振蕩電路!再將熔絲位配置改回正確的配置就可搞定!
通過(guò)下圖的方法打開(kāi)連接:
使用操作界面如下: (注意:下圖中,打勾的表示選中,代表0。沒(méi)有打勾的表示1)。
上圖的資料有很多相關(guān)項(xiàng),你需要認(rèn)識(shí)以下的代碼,以理解意思。英文翻譯說(shuō)明如下:
英文 | 中文 |
On-Chip Debug Enabled | 片內(nèi) 調(diào)試 使能 |
JTAG Interface Enabled | JTAG 接口 使能 |
Serial program downloading (SPI) enabled | 串行編程下載(SPI) 使能 (ISP下載時(shí)該位不能修改) |
Preserve EEPROM memory through the Chip Erase cycle; | 芯片擦除時(shí)EEPROM的內(nèi)容保留 |
Boot Flash section size=xxxx words | 引導(dǎo)(Boot)區(qū)大小為xxx個(gè)詞 |
Boot start address=$yyyy; | 引導(dǎo)(Boot)區(qū)開(kāi)始地址為 $yyyy |
Boot Reset vectorEnabled | 引導(dǎo)(Boot)、復(fù)位 向量 使能 |
Brown-out detectionlevel at VCC=xxxx V; | 掉電檢測(cè)的電平為 VCC=xxxx 伏 |
Brown-out detectionenabled; | 掉電檢測(cè)使能 |
Start-up time: xxx CK + yy ms | 啟動(dòng)時(shí)間 xxx 個(gè)時(shí)鐘周期 + yy 毫秒 |
Ext. Clock; | 外部時(shí)鐘 |
Int. RC Osc. | 內(nèi)部 RC(阻容) 振蕩器 |
Ext. RC Osc. | 外部 RC(阻容) 振蕩器 |
Ext. Low-Freq. Crystal; | 外部 低頻 晶體 |
Ext. Crystal/Resonator Low Freq | 外部晶體/陶瓷振蕩器 低頻 |
Ext. Crystal/ResonatorMedium Freq | 外部晶體/陶瓷振蕩器 中頻 |
Ext. Crystal/Resonator High Freq | 外部晶體/陶瓷振蕩器 高頻 |
注:以上中文是對(duì)照 ATmega16的中、英文版本數(shù)據(jù)手冊(cè)而翻譯。盡量按照了官方的中文術(shù)語(yǔ)。
應(yīng)用舉例:
比如我們想使用片內(nèi)的RC振蕩(即不需要接晶振),可以選擇選擇下面三者之一:
- Int. RC Osc. 8 MHz; Start-up time: 6 CK + 0 ms;
- [CKSEL=0100 SUT=00] Int. RC Osc. 8 MHz; Start-up time: 6 CK + 4 ms;
- [CKSEL=0100 SUT=01] Int. RC Osc. 8 MHz; Start-up time: 6 CK + 64 ms; [CKSEL=0100 SUT=10]
如圖:內(nèi)部1M晶振,默認(rèn)情況典型設(shè)置。(兩個(gè)圖分別為上下兩部分,沒(méi)有顯示的部分均為不選中狀態(tài)。)
下圖顯示的是選擇內(nèi)部晶振,1 Mhz RC
比如我們想使用外部7.3728M晶振,可以選擇選擇下面三者之一:
- Ext. Crystal/ResonatorHigh Freq.;
- Start-up time: 258 CK + 4 ms;
- [CKSEL=1110 SUT=00] 或后面與Ext. Crystal/ResonatorHigh Freq.;.... 有關(guān)的選擇。
如下兩圖:7.3728M晶振典型融絲位(及本站的開(kāi)發(fā)板使用時(shí)候的典型設(shè)置)
如果你在使用過(guò)程中遇到什么問(wèn)題,歡迎討論,http://bbs.avrvi.com。
后記:說(shuō)說(shuō)Mega128的熔絲位
ATmega128是avr系列中一款高性能的芯片,設(shè)計(jì)的時(shí)候兼容M103模式,但是這個(gè)M103模式經(jīng)常害人。基于此,說(shuō)說(shuō)ATmega128的熔絲位,順便說(shuō)說(shuō)其他的功能。
默認(rèn)情況下M103模式是選中的,應(yīng)該將其去掉;晶振是內(nèi)部1M晶振,如果你使用外部晶振,應(yīng)該進(jìn)行修改。M128可以開(kāi)啟硬件的看門(mén)狗,選中此項(xiàng),看門(mén)狗不需要程序初始化,只需要程序里面喂狗就可以了。
默認(rèn)熔絲第一部分
M103兼容模式,使能JTAG,使能SPI,Bootloader區(qū)大小4096,未使能BOOT。
默認(rèn)熔絲第二部分
DOD為2.7V,內(nèi)部1M晶振。
下面是本站使用M128開(kāi)發(fā)板的典型設(shè)置,M103模式取消,使用M128模式,使用外部7.3728M晶振。
典型熔絲第一部分(只說(shuō)修改部分)
去掉了M103,從而使用M128模式。
典型熔絲第二部分
選擇最后一項(xiàng),即使用外部高頻晶振。
再次提醒大家,往芯片里燒寫(xiě)程序前,一定要檢查是否正確設(shè)置熔絲位(時(shí)鐘源)。
評(píng)論