<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 正確配置AVR熔絲位的建議

          正確配置AVR熔絲位的建議

          作者: 時間:2016-11-19 來源:網(wǎng)絡(luò) 收藏
          AVR熔絲位的配置是比較細(xì)致的工作,用戶往往忽視其重要性,或感到不易掌握。下面給出對AVR熔絲位的配置操作時的一些要點和需要注意的相關(guān)事項。有關(guān)ATmega128熔絲位的具體定義和功能請查看本書相關(guān)章節(jié),在附錄中將給出一個完整的匯總表。
          (1)在AVR的器件手冊中,對熔絲位使用已編程(Programmed)和未編程(Unprogrammed)定義熔絲位的狀 態(tài),“Unprogrammed”表示熔絲狀態(tài)為“1”(禁止);“Programmed”表示熔絲狀態(tài)為“0”(允許)。因此,配置熔絲位的過程實際上 是“配置熔絲位成為未編程狀態(tài)“1”或成為已編程狀態(tài)“0””。
          (2)在使用通過選擇打鉤“√”方式確定熔絲位狀態(tài)值的編程工具軟件時,請首先仔細(xì)閱讀軟件的使用說明,弄清楚“√”表示設(shè)置熔絲位狀態(tài)為“0”還是為“1”。
          (3)使用CVAVR中的編程下載程序時應(yīng)特別注意,由于CVAVR編程下載界面初始打開時,大部分熔絲位的初始狀態(tài)定義為“1”,因此不要使用其編程菜 單選項中的“all”選項。此時的“all”選項會以熔絲位的初始狀態(tài)定義來配置芯片的熔絲位,而實際上其往往并不是用戶所需要的配置結(jié)果。如果要使用 “all”選項,應(yīng)先使用“read->fusebits”讀取芯片中熔絲位實際狀態(tài)后,再使用“all選項。
          (4)新的AVR芯片在使用前,應(yīng)首先查看它熔絲位的配置情況,再根據(jù)實際需要,進行熔絲位的配置,并將各個熔絲位的狀態(tài)記錄備案。
          (5)AVR芯片加密以后僅僅是不能讀取芯片內(nèi)部Flash和E2PROM中的數(shù)據(jù),熔絲位的狀態(tài)仍然可以讀取但不能修改配置。芯片擦除命令是將 Flash和E2PROM中的數(shù)據(jù)清除,并同時將兩位鎖定位狀態(tài)配置成“11”,處于無鎖定狀態(tài)。但芯片擦除命令并不改變其它熔絲位的狀態(tài)。
          (6)正確的操作程序是:在芯片無鎖定狀態(tài)下,下載運行代碼和數(shù)據(jù),配置相關(guān)的熔絲位,最后配置芯片的鎖定位。芯片被鎖定后,如果發(fā)現(xiàn)熔絲位配置不對,必 須使用芯片擦除命令,清除芯片中的數(shù)據(jù),并解除鎖定。然后重新下載運行代碼和數(shù)據(jù),修改配置相關(guān)的熔絲位,最后再次配置芯片的鎖定位。
          (7)使用ISP串行方式下載編程時,應(yīng)配置SPIEN熔絲位為“0”。芯片出廠時SPIEN位的狀態(tài)默認(rèn)為“0”,表示允許ISP串行方式下載數(shù)據(jù)。只 有該位處于編程狀態(tài)“0”,才可以通過AVR的SPI口進行ISP下載,如果該位被配置為未編程“1”后,ISP串行方式下載數(shù)據(jù)立即被禁止,此時只能通 過并行方式或JTAG編程方式才能將SPIEN的狀態(tài)重新設(shè)置為“0”,開放ISP。通常情況下,應(yīng)保持SPIEN的狀態(tài)為“0”,允許ISP編程不會影 響其引腳的I/O功能,只要在硬件電路設(shè)計時,注意ISP接口與其并接的器件進行必要的隔離,如使用串接電阻或斷路跳線等。
          (8)當(dāng)你的系統(tǒng)中,不使用JTAG接口下載編程或?qū)崟r在線仿真調(diào)試,且JTAG接口的引腳需要作為I/O口使用時,必須設(shè)置熔絲位JTAGEN的狀態(tài)為 “1”。芯片出廠時JTAGEN的狀態(tài)默認(rèn)為“0”,表示允許JTAG接口,JTAG的外部引腳不能作為I/O口使用。當(dāng)JTAGEN的狀態(tài)設(shè)置為“1” 后,JTAG接口立即被禁止,此時只能通過并行方式或ISP編程方式才能將JTAG重新設(shè)置為“0”,開放JTAG。
          (9)一般情況下不要設(shè)置熔絲位把RESET引腳定義成I/O使用(如設(shè)置ATmega8熔絲位RSTDISBL的狀態(tài)為“0”),這樣會造成ISP的下載編程無法進行,因為在進入ISP方式編程時前,需要將RESET引腳拉低,使芯片先進入復(fù)位狀態(tài)。
          (10)使用內(nèi)部有RC振蕩器的AVR芯片時,要特別注意熔絲位CKSEL的配置。一般情況下,芯片出廠時CKSEL位的狀態(tài)默認(rèn)為使用內(nèi)部1MHz的 RC振蕩器作為系統(tǒng)的時鐘源。如果你使用了外部振蕩器作為系統(tǒng)的時鐘源時,不要忘記首先正確配置CKSEL熔絲位,否則你整個系統(tǒng)的定時都會出現(xiàn)問題。而 當(dāng)在你的設(shè)計中沒有使用外部振蕩器(或某鐘特定的振蕩源)作為系統(tǒng)的時鐘源時,千萬不要誤操作或錯誤的把CKSEL熔絲位配置成使用外部振蕩器(或其它不 同類型的振蕩源)。一旦這種情況產(chǎn)生,使用ISP編程方式則無法對芯片操作了(因為ISP方式需要芯片的系統(tǒng)時鐘工作并產(chǎn)生定時控制信號),芯片看上去 “壞了”。此時只有使用取下芯片使用并行編程方式,或使用JTAG方式(如果JTAG為允許時且目標(biāo)板上留有JTAG接口)來解救了。另一種解救的方式 是:嘗試在芯片的晶體引腳上臨時人為的疊加上不同類型的振蕩時鐘信號,一旦ISP可以對芯片操作,立即將CKSEL配置成使用內(nèi)部1MHz的RC振蕩器作 為系統(tǒng)的時鐘源,然后再根據(jù)實際情況重新正確配置CKSEL。
          (11)使用支持IAP的AVR芯片時,如果你不使用BOOTLOADER功能,注意不要把熔絲位BOOTRST設(shè)置為“0”狀態(tài),它會使芯片在上電時不 是從Flash的0x0000處開始執(zhí)行程序。芯片出廠時BOOTRST位的狀態(tài)默認(rèn)為“1”。關(guān)于BOOTRST的配置以及BOOTLOADER程序的 設(shè)計與IAP的應(yīng)用請參考本章相關(guān)內(nèi)容。
          二、mega8熔絲位:1:未編程(不選中)0:編程(選中)
          *
          熔絲位說明 缺省設(shè)置
          *
          RSTDISBL:復(fù)位或I/O功能選擇 1 1:復(fù)位功能;0:I/O功能(PC6)
          WDTON:看門狗開關(guān) 1 1:看門狗打開(通過WDTCR允許);0:看門狗禁止
          SPIEN:SPI下載允許 0 1:SPI下載禁止;0:SPI下載允許(注:當(dāng)使用SPI
          編程時,該項不可用)
          EEAVE:燒錄時EEPROM數(shù)據(jù)保留 1 1:不保留;0:保留
          BODEN: BOD功能控制 1 1:BOD功能禁止;0:BOD功能允許
          BODLEVEL:BOD電平選擇1 1:2.7V電平;0:4.0V電平
          BOOTRST: 復(fù)位入口選擇 1 1:程序從0x0000地址開始執(zhí)行;0:程序從引導(dǎo)區(qū)
          確定的入口地址開始執(zhí)行


          關(guān)鍵詞: 正確配置AVR熔絲

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();