機電之家資源網(wǎng)
單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
AVR單片機基礎知識
AVR單片機基礎知識
 更新時間:2009-11-25 16:22:05  點擊數(shù):0
【字體: 字體顏色
AVR單片機特點

每種MCU都有自身的優(yōu)點與缺點,與其它8-bit MCU相比,AVR 8-bit MCU最大的特點是:
● 哈佛結構,具備1MIPS / MHz的高速運行處理能力;
● 超功能精簡指令集(RISC),具有32個通用工作寄存器,克服了如8051 MCU采用單一ACC進行處理造成的瓶頸現(xiàn)象;
● 快速的存取寄存器組、單周期指令系統(tǒng),大大優(yōu)化了目標代碼的大小、執(zhí)行效率,部分型號FLASH非常大,特別適用于使用高級語言進行開發(fā);
● 作輸出時與PIC的HI/LOW相同,可輸出40mA(單一輸出),作輸入時可設置為三態(tài)高阻抗輸入或帶上拉電阻輸入,具備10mA-20mA灌電流的能力;
● 片內集成多種頻率的RC振蕩器、上電自動復位、看門狗、啟動延時等功能,外圍電路更加簡單,系統(tǒng)更加穩(wěn)定可靠;
● 大部分AVR片上資源豐富:帶E2PROM,PWM,RTC,SPI,UART,TWI,ISP,AD,Analog Comparator,WDT等;
● 大部分AVR除了有ISP功能外,還有IAP功能,方便升級或銷毀應用程序。
● 性價比高。

開發(fā)AVR單片機,需要哪些編譯器、調試器?


AVR的仿真方式
一般來說,AVR有三種仿真方式:
(1)JTAG仿真方式,適用于具備JTAG仿真接口的AVR。如:Atmega16/32,Atmega64/128等。

JTAG是IEEE的標準規(guī)范, 通過這個標準,可對具有JTAG接口的芯片的硬件電路進行邊界掃描和故障檢測。部分AVR型號帶JTAG仿真調試接口,可使用JTAG仿真方式。

(2)debugWIRE仿真方式,適用于具備debugWIRE仿真接口的AVR。如:Attiny13/24/2313,Atmega48/88/168等。

debugWIRE 是用以降低成本和調試引腳的開銷,ATMEL在AVR器件上使用的新的調試接口:debugWIRE,與JTAG相比其主要區(qū)別在于僅使用一根信號線(RESET),即可完成調試信息的交互,達到控制程序流向,執(zhí)行指令以及編程熔絲位的功能。它的總的連接圖如下:

這里的 RESET 信號被用于傳遞調試信息。
(3)采用仿真頭替代AVR MCU仿真方式,適用于不帶仿真接口的AVR。如Attiny26,Atmega8,Atmega8515等。

AVR的燒寫方式

一般來說,AVR的編程方式有:
(1)串行編程(即ISP編程)

ISP是In System Program的縮寫,意思是在系統(tǒng)編程。目前的AVR芯片基本上都具備ISP接口,可通過ISP接口進行編程。它一共使用了兩條電源線:VCC、GND,三條信號線:SCK、MOSI、MISO,以及復位線:RESET。由于僅僅使用了幾條數(shù)據(jù)線,所以我們亦常將其稱為串行編程。值得注意的是,雖然下載器端使用的信號線名為SCK、MOSI、MISO,但AVR MCU的信號端不一定是名為SCK、MOSI、MISO。

AVR的串行編程方式有很多種,如:
(1)STK200/STK300:并口下載器多采用該燒寫方式,最早期的一種燒寫方式,支持型號少,燒寫速度低,不支持AVR Studio。
(2)STK500:ATMEL最推薦的編程方式,由于采用ATMEL官方的STK500固件,使得它可燒寫全系列AVR(若對固件進行升級亦可支持未來的AVR型號),燒寫速度非?欤С諥VR Studio。
(3)AVRISP(準STK500):由于采用ATMEL官方的STK500固件,使得它可燒寫大部分AVR(若對固件進行升級亦可支持未來的AVR型號),燒寫速度非?,支持AVR Studio。
(4)AVRISPmkII:由于采用ATMEL官方的AVRISPmkII固件,使得它可燒寫大部分AVR(若對固件進行升級亦可支持未來的AVR型號),燒寫速度非?,支持AVR Studio。
(5)當然還有其它的ISP方式,但已經(jīng)那些均不是最為常見的串行編程方式,在此不在作一一介紹。

(2)高壓/并行編程
AVR的高壓編程/并行編程,實際上是更早出現(xiàn)的編程方法,它功能強大,但需要:

1)連接較多的引腳(故稱“并行編程”)
2)使用12V電壓(故稱“高壓編程”)

聯(lián)合起來一般叫高壓/并行編程。實際上,有些編程是高壓/串行編程,如Attiny13。(Attiny13端口非常少)高壓/并行編程(理論上)能修復任何熔絲位,例如:
1)Attiny13/24/2313、Atmega8/48/88/168等AVR的RESET端口與IO端口是共用的,由于這類AVR的引腳一般較少,(如Attiny13僅有6個IO口),經(jīng)常出現(xiàn)IO不夠用的情況,需要將RESET端口設置為IO端口使用,然而,一旦將RESET設置為IO,便無法再進行ISP編程了,更無法使用ISP恢復RESET功能,因為ISP編程需要RESET功能。然而,這種情況下,使用高壓/并行編程,可以恢復RESET功能,(注意:RESET端口與   IO端口是共用的AVR,具備debugWIRE功能,“dW”熔絲位必須為啟動狀態(tài))因為高壓/并行編程不需要RESET功能。
2)當設置錯了熔絲位導致芯片鎖死,這種情況下,使用高壓/并行編程,可恢復熔絲位。

(3)JTAG編程

JTAG燒寫方式僅適用于帶JTAG

接口的AVR,另外,JTAG對比ISP燒寫方式主要有個缺點:必須占用JTAG對應的IO端口。例如,ATMEGA16必須占用PC2-PC5這幾個端口。然而,有時候,缺點也是優(yōu)點,因為對于IO夠用的AVR來說,在產(chǎn)品開發(fā)過程,可以用JTAG接口來仿真調試,產(chǎn)品量產(chǎn)后,產(chǎn)品板預留的JTAG接口還可以用來燒寫程序。


(4)IAP編程

AVR MCU的ISP功能和debugWIRE功能是互斥的,也就是說,使能了AVR MCU的 debugWIRE 功能后ISP功能就無法使用,使能了ISP功能后debugWIRE功能就無法使用。
那么,怎樣確定AVR的RESET引腳 為ISP功能使用還是debugWIRE功能使用呢?
在具備debugWIRE 的AVR 器件中,有一個可編程的熔絲位DWEN,如果該熔絲被編程(且lockbits未被編程),則debugWIRE 功能被啟用,AVR的RESET 引腳將被作為debugWIRE 功能使用,可與調試器進行debugWIRE仿真通信(此時,ISP 功能被禁用)。AVR芯片出廠時,DWEN熔絲位是未編程的,也即是說ISP 功能是使能的,debugWIRE 被禁用。使用ISP 功能時,通過調試器對debugWIRE熔絲進行編程使能,可啟用debugWIRE功能;使用debugWIRE功能時,對通過調試器對 debugWIRE熔絲禁止,可使能ISP 功能。

編程語言建議使用C而不是匯編開發(fā)AVR

首先說說C的優(yōu)點。
1、直觀,可讀性強:這點很重要。對于一個產(chǎn)品,周期是很長的,即使出第一臺產(chǎn)品之后,還有很長的維護時間。這中間維護人員可能經(jīng)常變動,如果可讀性強,將給維護工作省下很大的成本。即使是在開發(fā),可讀性強的程序也便于查錯。
2、模塊化可以做的很好:這點也是很重要的。模塊化做得好,當然程序得重用性就高。對于公司來說,這一點是關系到公司長遠發(fā)展的。程序可以重用,說明下一次開發(fā)的投入就可以減少,時間也可以加快,多好的事呀。
還有很多有點,當然也就是高級語言相對于匯編語言的優(yōu)點,這里就不一一列舉了。
再來看看匯編的優(yōu)點:應該來說,匯編語言操作硬件直觀,對于硬件非常熟悉的人來說,直接操作很方便。另外可能就是很多人說的效率要高了。
針對以上兩點我來說說,首先“匯編語言操作硬件直觀”,這是在代碼編寫階段,對于整個產(chǎn)品周期來說,應該是要避免使用匯編語言的,這個在C語言的優(yōu)點中已經(jīng)說明。對于第二點,效率問題,目前C語言的編譯器優(yōu)化也做的很好,對于一個匯編不是很熟練的來說,C編出來的程序應該不會效率比匯編低。當然這樣就對開發(fā)人員的要求降低了很多,人員的限制也就沒有那么嚴格。另外是否真的是效率問題呢。我覺得應該是一個整體效率和局部效率的均衡問題。需要提高的是整體的效率。一個好的軟件架構,遠遠比一個好的函數(shù)效率要高的多。因此主要的精力應該放在軟件的架構上。另外現(xiàn)在CPU的速度不停的往上提,CPU越來越快,這點應該也可以彌補程序的效率吧。
當然,我的意思不是不學習匯編。匯編對于熟悉硬件有很大的好處,應此匯編語言在學習初期一定是要學習的。在基本的硬件熟悉之后,就可以轉向C了。
  • 上一篇: AVR單片機基本硬件設計
  • 下一篇: 沒有了
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網(wǎng)友評論:(只顯示最新5條。)
    關于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1