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

          新聞中心

          EEPW首頁 > 嵌入式系統 > 設計應用 > AVR硬件設計(內含最小系統電路圖)

          AVR硬件設計(內含最小系統電路圖)

          作者:時間:2018-10-29來源:網絡收藏

            

          本文引用地址:http://www.ex-cimer.com/article/201810/393512.htm

            采用了在ATmega16引腳XTAL1和XTAL2上外接由石英晶體和電容組成的諧振回路,并配合片內的OSC(Oscillator)振蕩電路構成的振蕩源作為系統時鐘源的。更簡單的電路是直接使用片內的4M的RC振蕩源,這樣就可以將C1、C2、R2和4M晶體省掉,引腳XTAL1和XTAL2懸空,當然此時系統時鐘頻率精準度不如采用外部晶體的方式,而且也易受到溫度變化的影響。

            的復位源和復位方式:

            復位是單片機芯片本身的硬件初始化操作,例如,單片機在上電開機時都需要復位,以便CPU以及其它內部功能部件都處于一個確定的初始狀態,并從這個初始狀態開始工作。

            單片機的復位操作,其主要功能是把程序計數器PC初始化為$0000(指非BOOT LOAD方式啟動),使單片機從$0000單元開始執行程序。同時決大部分的寄存器(通用寄存器和I/O寄存器)也被復位操作清零。

            ATmega16單片機共有5個復位源,它們是:

            1、上電復位。當系統電源電壓低于上電復位門限Vpot時,MCU復位。

            2、外部復位。當外部引腳RESET為低電平,且低電平持續時間大于1.5us時,MCU復位。

            3、掉電檢測(BOD)復位。BOD使能時,且電源電壓低于掉電檢測復位門限(4.0v或2.7v)時,MCU復位。

            4、看門狗復位。WDT使能時,并且WDT超時溢出時,MCU復位。

            5、JTAG 復位。當使用JTAG接口時,可由JTAG口控制MCU復位。

            AVR復位啟動后,由于程序計數器PC置為$0000,因此CPU取出的第一條指令就是在Flash空間的$0000處,即復位后系統程序從地址$0000處開始執行(指非BOOT LOAD方式啟動)。通常在$0000地址中放置的指令為一條相對轉移指令RJMP或JMP指令,跳到主程序的開始。這樣,系統復位啟動后,首先執行$0000處的跳轉指令,然后轉到執行主程序的指令。

            AVR內部的MCU控制和狀態寄存器MCUCSR還將引起復位的復位源進行了記錄,用戶程序啟動后,可以讀取MCUCSR中的標記,查看復位是由于何種情況造成的,是正常復位還是異常復位,從而根據實際情況執行不同的程序,實現不同的處理。

            對AVR的編程下載:串行編程方式(ISP)。

            mega16的熔絲位:

            ATmega16單片機在售出時,片內的Flash 存儲器和EEPROM 存儲器陣列是處在擦除的狀態(即內容 = $FF),且可被編程。同時其器件配置熔絲位的缺省值為使用內部1M的RC振蕩源作為系統時鐘!

            1.存儲器加密鎖定位

            ATmage16有2個加密鎖定位LB1和LB2,用于設定對片內存儲器的加密方式,用戶可在編程方式下,對LB1、LB2不編程(1),或編程(0),從而獲得對片內存儲器不同的加密保護方式,見表2.3。

            需要進一步說明是:

            在AVR的器件手冊中,使用已編程(Programmed)和未編程(Unprogrammed)定義加密位和熔絲位的狀態?!癠nprogrammed”表示熔絲狀態為“1”(禁止),“Programmed”表示熔絲狀態為“0”(允許),即

            1:未編程

            0:編程

            AVR的加密位和熔絲位可多次編程,不是OPT熔絲。

            AVR芯片加密鎖定后(LB2/LB1 = 1/0,0/0),在外部不能通過任何方式讀取芯片內部Flash和EEPROM中的數據,但熔絲位的狀態仍然可以讀取,不能修改配置。

            需要重新下載程序時,或芯片被加密鎖定后,或發現熔絲位配置不對,都必須先在編程狀態使用芯片擦除命令,清除芯片內部存儲器中的數據,同時解除加密鎖定。然后重新下載運行代碼和數據,修改和配置相關的熔絲位,最后再次配置芯片的加密鎖定位。

            編程狀態的芯片擦除命令是將Flash和EEPROM中的數據清除,并同時將兩位鎖定位狀態配置成無鎖定狀態(LB2/LB1 = 1/1)。但芯片擦除命令并不改變其它熔絲位的狀態。

            下載編程的正確的操作程序是:在芯片無鎖定狀態下,下載運行代碼和數據,配置相關的熔絲位,最后配置芯片的加密鎖定位。

            2.系統時鐘類型的配置

            ATmega16可以使用多種類型的系統時鐘源,最常用的為2種:使用內部的RC振蕩源(1M/2M/4M/8M)和外接晶體(晶體可在0-16MHz之間選擇)配合內部振蕩放大器構成的振蕩源。具體系統時鐘類型的配置由CKOPT和CKSEL[3-0]共5個熔絲設定,表2.4、表2.5給出了具體的配置值。用戶在使用中,首先要根據實際使用情況進行正確的設置,而且千萬注意不要對這些熔絲位誤操作!

            在表2.5中,當CKOPT = 0時,振蕩器的輸出振幅較大,容易起振,適合在干擾大的場合以及使用的晶體超過8M時的情況下使用。而CKOPT = 1時,振蕩器的輸出振幅較小,這樣可以減小對電源的消耗,對外的電磁幅射也較小。

            尤其需要說明的是,一旦RESET腳的電平被外部拉低,當滿足某些特殊條件后,芯片將進入編程狀態。例如,如果芯片帶有SPI接口,支持SPI串行編程,則通過以下方式將使芯片進入SPI編程狀態:

            外部將SPI口的SCK引腳拉低,然后外部在RESET引腳上施加一個至少為2個系統周期以上低電平脈沖;

            延時等待20ms后,由外部通過AVR的SPI口向芯片下發允許SPI編程的指令;

            如果外圍連接在上電情況時表現為強上拉或強下拉(最極端情況為接高電平或GND),那么為了保證AVR的SPI功能的正常工作,應該如圖2-20中所示,串入3個隔離電阻,阻值在2K左右。

            AVR熔絲位的配置:

            對于剛開始學習使用AVR的讀者,建議改變的熔絲位有:

            系統時鐘采用內部4M的RC振蕩源。其優點是速度適中,且應用于RS-232通信時,分頻產生的9600bps速率與標準值的誤差最小(0.2%)。

            禁止片內的JTAG口功能。不使用JTAG在線仿真,將4個引腳PC2-PC5釋放,作為普通的I/O使用。

            啟用低電壓檢測復位功能。檢測電平設置為4.0V。



          關鍵詞: AVR 最小系統

          評論


          相關推薦

          技術專區

          關閉
          看屁屁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); })();