<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

AVR熔絲配置

作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò ) 收藏
AVR熔絲位的配置是比較細致的工作,用戶(hù)往往忽視其重要性,或感到不易掌握。這里為大家轉載一篇針對AVR單片機的熔絲位配置的文章,特別是ATmega128熔絲位配置,而且會(huì )給出對AVR熔絲位的配置操作時(shí)的一些要點(diǎn)和需要注意的相關(guān)事項。同時(shí)需要提醒:不同AVR的熔絲也不同,使用前必須仔細查看芯片手冊。
ATmega128中重要熔絲位的配置
(1)熔絲位M103C。M103C的配置將設定ATmega128是以ATmega103兼容方式工作運行還是以ATmega128本身的方式工作運行。ATmega128在出廠(chǎng)時(shí)M103C默認狀態(tài)為“0”,即默認以ATmega103兼容方式工作。當用戶(hù)系統設計使芯片以ATmega128方式工作時(shí),應首先將M103C的狀態(tài)配置為“1”。
(2)CLKSEL0..3。CLKSEL0、CLKSEL1、CLKSEL2、CLKSEL3用于選擇系統的時(shí)鐘源。有五種不同類(lèi)型的時(shí)鐘源可供選擇(每種類(lèi)型還有細的劃分)。芯片出廠(chǎng)時(shí)的默認情況為CLKSEL3..0和SUT1..0分別是“0001”和“10”。即使用內部1MHz RC振蕩器,使用最長(cháng)的啟動(dòng)延時(shí)。這保證了無(wú)論外部振蕩電路是否工作,都可以進(jìn)行最初的ISP下載。對于CLKSEL3..0熔絲位的改寫(xiě)需要十分慎重,因為一旦改寫(xiě)錯誤,會(huì )造成芯片無(wú)法啟動(dòng)。
(3)JTAGEN。如果不使用JTAG接口,應將JTAGEN的狀態(tài)設置為“1”,即禁止JTAG,JTAG引腳用于I/O口。
(4)SPIEN。SPI方式下載數據和程序允許,默認狀態(tài)為允許“0”。一般保留其狀態(tài)。
(5)WDTON??撮T(mén)狗的定時(shí)器始終開(kāi)啟。WDTON默認為“1”,即禁止看門(mén)狗的定時(shí)器始終開(kāi)啟。如果該位設置為“0”后,看門(mén)狗的定時(shí)器就會(huì )始終打開(kāi),不能被內部程序控制了,這是為了防止當程序跑飛時(shí),未知代碼通過(guò)寫(xiě)寄存器將看門(mén)狗定時(shí)器關(guān)斷而設計的(盡管關(guān)斷看門(mén)狗定時(shí)器需要特殊的方式,但它保證了更高的可靠行)。
(6)EESAVE。執行擦除命令時(shí)是否保留E2PROM中的內容,默認狀態(tài)為“1”,表示E2PROM中的內容同Flash中的內容一同擦除。如果該位設置為“0”,對程序進(jìn)行下載前的擦除命令只會(huì )對FLASH代碼區有效,而對E2PROM區無(wú)效。這對于希望在系統更新程序時(shí),需要保留E2PROM中數據的情況下是十分有用的。
(7)BOOTRST。決定芯片上電起動(dòng)時(shí),第一條執行指令的地址。默認狀態(tài)為“1”,表示起動(dòng)時(shí)從0x0000開(kāi)始執行。如果BOOTRST設置為“0”,則起動(dòng)時(shí)從BOOTLOADER區的起始地址處開(kāi)始執行程序。BOOTLOADER區的大小由BOOTSZ1和BOOTSZ0決定,因此其首地址也隨之變化。
(8)BOOTSZ1和BOOTSZ0:這兩位確定了BOOTLOADER區的大小以及其起始的首地址。默認的狀態(tài)為“00”,表示BOOTLOADER區為4096字,起始首地址為0xF000。
(9)推薦用戶(hù)使用ISP方式配置熔絲位。配置工具選用BASCOM-AVR(網(wǎng)上下載試用版,它對ISP下載無(wú)限制),和STK200/STK300兼容的下載電纜。

AVR單片機熔絲位配置
(1)在A(yíng)VR的器件手冊中,對熔絲位使用已編程(Programmed)和未編程
Unprogrammed)定義熔絲位的狀態(tài),“Unprogrammed”表示熔絲狀態(tài)為“1”(禁止);“Programmed”表示熔絲狀態(tài)為“0”(允許)。因此,配置熔絲位的過(guò)程實(shí)際上是“配置熔絲位成為未編程狀態(tài)“1”或成為已編程狀態(tài)“0”。
(2)在使用通過(guò)選擇打鉤“√”方式確定熔絲位狀態(tài)值的編程工具軟件時(shí),請首先仔細閱讀軟件的使用說(shuō)明,弄清楚“√”表示設置熔絲位狀態(tài)為“0”還是為“1”。
(3)使用CVAVR中的編程下載程序時(shí)應特別注意,由于CVAVR編程下載界面初始打開(kāi)時(shí),大部分熔絲位的初始狀態(tài)定義為“1”,因此不要使用其編程菜單選項中的“all”選項。此時(shí)的“all”選項會(huì )以熔絲位的初始狀態(tài)定義來(lái)配置芯片的熔絲位,而實(shí)際上其往往并不是用戶(hù)所需要的配置結果。如果要使用“all”選項,應先使用“read->fuse bits”讀取芯片中熔絲位實(shí)際狀態(tài)后,再使用“all”選項。
(4)新的AVR芯片在使用前,應首先查看它熔絲位的配置情況,再根據實(shí)際需要,進(jìn)行熔絲位的配置,并將各個(gè)熔絲位的狀態(tài)記錄備案。
(5)AVR芯片加密以后僅僅是不能讀取芯片內部Flash和E2PROM中的數據,熔絲位的狀態(tài)仍然可以讀取但不能修改配置。芯片擦除命令是將Flash和E2PROM中的數據清除,并同時(shí)將兩位鎖定位狀態(tài)配置成“11”,處于無(wú)鎖定狀態(tài)。但芯片擦除命令并不改變其它熔絲位的狀態(tài)。
(6)正確的操作程序是:在芯片無(wú)鎖定狀態(tài)下,下載運行代碼和數據,配置相關(guān)的熔絲位,最后配置芯片的鎖定位。芯片被鎖定后,如果發(fā)現熔絲位配置不對,必須使用芯片擦除命令,清除芯片中的數據,并解除鎖定。然后重新下載運行代碼和數據,修改配置相關(guān)的熔絲位,最后再次配置芯片的鎖定位。
(7)使用ISP串行方式下載編程時(shí),應配置SPIEN熔絲位為“0”。芯片出廠(chǎng)時(shí)SPIEN位的狀態(tài)默認為“0”,表示允許ISP串行方式下載數據。只有該位處于編程狀態(tài)“0”,才可以通過(guò)AVR的SPI口進(jìn)行ISP下載,如果該位被配置為未編程“1”后,ISP串行方式下載數據立即被禁止,此時(shí)只能通過(guò)并行方式或JTAG編程方式才能將SPIEN的狀態(tài)重新設置為“0”,開(kāi)放ISP。通常情況下,應保持SPIEN的狀態(tài)為“0”,允許ISP編程不會(huì )影響其引腳的I/O功能,只要在硬件電路設計時(shí),注意ISP接口與其并接的器件進(jìn)行必要的隔離,如使用串接電阻或斷路跳線(xiàn)等。
(8)當你的系統中,不使用JTAG接口下載編程或實(shí)時(shí)在線(xiàn)仿真調試,且JTAG接口的引腳需要作為I/O口使用時(shí),必須設置熔絲位JTAGEN的狀態(tài)為“1”。芯片出廠(chǎng)時(shí)JTAGEN的狀態(tài)默認為“0”,表示允許JTAG接口,JTAG的外部引腳不能作為I/O口使用。當JTAGEN的狀態(tài)設置為“1”后,JTAG接口立即被禁止,此時(shí)只能通過(guò)并行方式或ISP編程方式才能將JTAG重新設置為“0”,開(kāi)放JTAG。
(9)一般情況下不要設置熔絲位把RESET引腳定義成I/O使用(如設置ATmega8熔絲位RSTDISBL的狀態(tài)為“0”),這樣會(huì )造成ISP的下載編程無(wú)法進(jìn)行,因為在進(jìn)入ISP方式編程時(shí)前,需要將RESET引腳拉低,使芯片先進(jìn)入復位狀態(tài)。
(10)使用內部有RC振蕩器的AVR芯片時(shí),要特別注意熔絲位CKSEL的配置。一般情況下,芯片出廠(chǎng)時(shí)CKSEL位的狀態(tài)默認為使用內部1MHz的RC振蕩器作為系統的時(shí)鐘源。如果你使用了外部振蕩器作為系統的時(shí)鐘源時(shí),不要忘記首先正確配置CKSEL熔絲位,否則你整個(gè)系統的定時(shí)都會(huì )出現問(wèn)題。而當在你的設計中沒(méi)有使用外部振蕩器(或某鐘特定的振蕩源)作為系統的時(shí)鐘源時(shí),千萬(wàn)不要誤操作或錯誤的把CKSEL熔絲位配置成使用外部振蕩器(或其它不同類(lèi)型的振蕩源)。一旦這種情況產(chǎn)生,使用ISP編程方式則無(wú)法對芯片操作了(因為ISP方式需要芯片的系統時(shí)鐘工作并產(chǎn)生定時(shí)控制信號),芯片看上去“壞了”。此時(shí)只有使用取下芯片使用并行編程方式,或使用JTAG方式(如果JTAG為允許時(shí)且目標板上留有JTAG接口)來(lái)解救了。另一種解救的方式是:嘗試在芯片的晶體引腳上臨時(shí)人為的疊加上不同類(lèi)型的振蕩時(shí)鐘信號,一旦ISP可以對芯片操作,立即將CKSEL配置成使用內部1MHz的RC振蕩器作為系統的時(shí)鐘源,然后再根據實(shí)際情況重新正確配置CKSEL。
(11)使用支持IAP的AVR芯片時(shí),如果你不使用BOOTLOADER功能,注意不要把熔絲位BOOTRST設置為“0”狀態(tài),它會(huì )使芯片在上電時(shí)不是從Flash的0x0000處開(kāi)始執行程序。芯片出廠(chǎng)時(shí)BOOTRST位的狀態(tài)默認為“1”。


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

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>