介紹
ATmega16 AVR 核心具有豐富的指令集和32 個通用工作暫存器。所有的暫存器都直接與運算邏單元(ALU) 相連線,使得一條指令可以在一個時鐘周期內同時訪問兩個獨立的暫存器。這種結構大大提高了代碼效率,並且具有比普通的CISC 微控制器最高至10 倍的數據吞吐率。
ATmega16 有如下特點:16K位元組的系統內可程式Flash(具有同時讀寫的能力,即RWW),512 位元組EEPROM,1K 位元組SRAM,32 個通用I/O 口線,32 個通用工作暫存器,用於邊界掃描的JTAG 接口,支持片內調試與編程,三個具有比較模式的靈活的定時器/ 計數器(T/C),片內/外中斷,可程式串列USART,有起始條件檢測器的通用串列接口,8路10位具有可選差分輸入級可程式增益(TQFP 封裝) 的ADC ,具有片內振盪器的可程式看門狗定時器,一個SPI 串列連線埠,以及六個可以通過軟體進行選擇的省電模式。
工作於空閒模式時CPU 停止工作,而USART、兩線接口、A/D 轉換器、SRAM、T/C、SPI 連線埠以及中斷系統繼續工作;掉電模式時晶體振盪器停止振盪,所有功能除了中斷和硬體復位之外都停止工作;在省電模式下,異步定時器繼續運行,允許用戶保持一個時間基準,而其餘功能模組處於休眠狀態; ADC 噪聲抑制模式時終止CPU 和除了異步定時器與ADC 以外所有I/O 模組的工作,以降低ADC 轉換時的開關噪聲; Standby 模式下只有晶體或諧振振盪器運行,其餘功能模組處於休眠狀態,使得器件只消耗極少的電流,同時具有快速啟動能力;擴展Standby 模式下則允許振盪器和異步定時器繼續工作。
本晶片是以Atmel 高密度非易失性存儲器技術生產的。片內ISP Flash 允許程式存儲器通過ISP 串列接口,或者通用編程器進行編程,也可以通過運行於AVR 核心之中的引導程式進行編程。引導程式可以使用任意接口將應用程式下載到套用Flash存儲區(ApplicationFlash Memory)。在更新套用Flash存儲區時引導Flash區(Boot Flash Memory)的程式繼續運行,實現了RWW 操作。 通過將8 位RISC CPU 與系統內可程式的Flash 集成在一個晶片內, ATmega16 成為一個功能強大的單片機,為許多嵌入式控制套用提供了靈活而低成本的解決方案。
ATmega16 具有一整套的編程與系統開發工具,包括:C 語言 編譯器、宏彙編、 程式調試器/ 軟體仿真器、仿真器及評估板。
產品特性
u 高性能、低功耗的8位AVR微處理器
l 先進的RISC 結構
l 131條指令
l 大多數指令執行時間為單個時鐘周期
l 32個8位通用工作暫存器
l 全靜態工作
l 工作於16MHz時性能高達16MIPS
l 只需兩個時鐘周期的硬體乘法器
l 非易失性程式和數據存儲器
l 16K 位元組的系統內可程式Flash,擦寫壽命: 10,000次
l 具有獨立鎖定位的可選Boot代碼區,通過片上Boot程式實現系統內編程,真正的同時讀寫操作
l 512 位元組的EEPROM,擦寫壽命: 100,000次
l 1K位元組的片內SRAM
l 可以對鎖定位進行編程以實現用戶程式的加密
l JTAG 接口( 與IEEE 1149.1 標準兼容)
l 符合JTAG 標準的邊界掃描功能
l 支持擴展的片內調試功能
l 通過JTAG 接口實現對Flash、EEPROM、熔絲位和鎖定位的編程
外設特點
u 兩個具有獨立預分頻器和比較器功能的8位定時器/計數器
l 一個具有預分頻器、比較功能和捕捉功能的16位定時器/計數器
l 具有獨立振盪器的實時計數器RTC
l 四通道PWM
l 8路10位ADC,8個單端通道,2個具有可程式增益(1x, 10x, 或200x)的差分通道
l 面向位元組的兩線接口
l 兩個可程式的串列USART
l 可工作於主機/ 從機模式的SPI 串列接口
l 具有獨立片內振盪器的可程式看門狗定時器
l 片內模擬比較器
u 特殊的處理器特點
l 上電復位以及可程式的掉電檢測
l 片內經過標定的RC振盪器
l 片內/片外中斷源
l 6種睡眠模式: 空閒模式、ADC 噪聲抑制模式、省電模式、掉電模式、Standby 模式以及擴展的Standby模式 u I/O和封裝
l 32個可程式的I/O口
l 40引腳PDIP封裝, 44引腳TQFP封裝, 與44引腳MLF封裝
u 工作電壓
:
l ATmega16L:2.7 - 5.5V
l ATmega16:4.5 - 5.5V
u 速度等級
l 8MHz ATmega16L
l 0-16MHz ATmega16
u ATmega16L在1MHz, 3V, 25°C時的功耗
l 正常模式: 1.1 mA
l 空閒模式: 0.35 mA
l 掉電模式: < 1 μA
引腳功能
引腳名稱引腳功能說明
VCC 電源正
GND 電源地
連線埠A(PA7..PA0)
連線埠A 做為A/D 轉換器的模擬輸入端。連線埠A 為8 位雙向I/O 口,具有可程式的內部上拉電阻。其輸出緩衝器具有對稱的驅動特性,可以輸出和吸收大電流。作為輸入使用時,若內部上拉電阻使能,連線埠被外部電路拉低時將輸出電流。在復位過程中,即使系統時鐘還未起振,連線埠A 處於高阻狀態。
連線埠B(PB7..PB0)
連線埠B 為8 位雙向I/O 口,具有可程式的內部上拉電阻。其輸出緩衝器具有對稱的驅動特性,可以輸出和吸收大電流。作為輸入使用時,若內部上拉電阻使能,連線埠被外部電路拉低時將輸出電流。在復位過程中,即使系統時鐘還未起振,連線埠B 處於高阻狀態。
連線埠B 也可以用做其他不同的特殊功能.
連線埠C(PC7..PC0)
連線埠C 為8 位雙向I/O 口,具有可程式的內部上拉電阻。其輸出緩衝器具有對稱的驅動特性,可以輸出和吸收大電流。作為輸入使用時,若內部上拉電阻使能,連線埠被外部電路拉低時將輸出電流。在復位過程中,即使系統時鐘還未起振,連線埠C 處於高阻狀態。如果JTAG接口使能,即使復位出現引腳 PC5(TDI)、 PC3(TMS)與 PC2(TCK)的上拉電阻被激活。連線埠C 也可以用做其他不同的特殊功能.
連線埠D(PD7..PD0)
連線埠D 為8 位雙向I/O 口,具有可程式的內部上拉電阻。其輸出緩衝器具有對稱的驅動特性,可以輸出和吸收大電流。作為輸入使用時,若內部上拉電阻使能,則連線埠被外部電路拉低時將輸出電流。在復位過程中,即使系統時鐘還未起振,連線埠D 處於高阻狀態。連線埠D 也可以用做其他不同的特殊功能.
RESET 復位輸入引腳。持續時間超過最小門限時間的低電平將引起系統復位。門限時間見P36Table 15。持續時間小於門限間的脈衝不能保證可靠復位。
XTAL1
反向振盪放大器與片內時鐘操作電路的輸入端。
XTAL2
反向振盪放大器的輸出端。
AVCC
AVCC是連線埠A與A/D轉換器的電源。不使用ADC時,該引腳應直接與VCC連線。使用ADC時應通過一個低通濾波器與VCC 連線。
AREF
A/D 的模擬基準輸入引腳。
ATmega16 核心介紹
右邊為AVR 結構的方框圖
為了獲得最高的性能以及並行性, AVR 採用了Harvard 結構,具有獨立的數據和程式匯流排。程式存儲器里的指令通過一級流水線運行。CPU 在執行一條指令的同時讀取下一條指令( 在本文稱為預取)。這個概念實現了指令的單時鐘周期運行。程式存儲器是可以線上編程的FLASH。
快速訪問暫存器檔案包括32 個8 位通用工作暫存器,訪問時間為一個時鐘周期。從而實現了單時鐘周期的ALU 操作。在典型的ALU 操作中,兩個位於暫存器檔案中的運算元同時被訪問,然後執行運算,結果再被送回到暫存器檔案。整個過程僅需一個時鐘周期。
暫存器檔案里有6 個暫存器可以用作3 個16 位的間接定址暫存器指針以定址數據空間,實現高效的地址運算。其中一個指針還可以作為程式存儲器查詢表的地址指針。這些附加的功能暫存器即為16 位的X、Y、Z 暫存器。
ALU支持暫存器之間以及暫存器和常數之間的算術和邏輯運算。ALU也可以執行單暫存器操作。運算完成之後狀態暫存器的內容得到更新以反映操作結果。
程式流程通過有/ 無條件的跳轉指令和調用指令來控制,從而直接定址整個地址空間。大多數指令長度為16 位,亦即每個程式存儲器地址都包含一條16 位或32 位的指令。
程式存儲器空間分為兩個區:引導程式區(Boot 區) 和應用程式區。這兩個區都有專門的鎖定位以實現讀和讀/ 防寫。用於寫應用程式區的SPM 指令必須位於引導程式區。
在中斷和調用子程式時返回地址的程式計數器(PC) 保存於堆疊之中。堆疊位於通用數據SRAM,因此其深度僅受限於SRAM 的大小。在復位例程里用戶首先要初始化堆疊指針SP。這個指針位於I/O 空間,可以進行讀寫訪問。數據SRAM 可以通過5 種不同的定址模式進行訪問。
AVR 存儲器空間為線性的平面結構。
AVR有一個靈活的中斷模組。控制暫存器位於I/O空間。狀態暫存器里有全局中斷使能位。每箇中斷在中斷向量表里都有獨立的中斷向量。各箇中斷的優先權與其在中斷向量表的位置有關,中斷向量地址越低,優先權越高。 I/O 存儲器空間包含64 個可以直接定址的地址,作為CPU 外設的控制暫存器、SPI,以及其他I/O 功能。映射到數據空間即為暫存器檔案之後的地址0x20 - 0x5F。
AVR單片機的型號標識解析
1. 型號緊跟的字母,表示電壓工作範圍。帶“L”:2.7-5.5V;若預設,不帶“L”:4.5-5.5V。
例:ATmega48-20AU,不帶“L”表示工作電壓為4.5-5.5V。
2. 後綴的數字部分,表示支持的最高系統時鐘。 例:ATmega48-20AU,“20”表示可支持最高為20MHZ的系統時鐘。
3. 後綴第一(第二)個字母,表示封裝。“P”:DIP封裝,“A”:TQFP封裝,“M”:MLF封裝。 例:ATmega48-20AU,“A”表示TQFP封裝。
4. 後綴最後一個字母,表示套用級別。“C”:商業級,“I”:工業級(有鉛)、“U”工業級(無鉛)。 例:ATmega48-20AU,“U”表示無鉛工業級。ATmega48-20AI,“I”表示有鉛工業級。 AVR 8-Bit MCU的最大特點
與其它8-Bit MCU相比,AVR 8-Bit MCU最大的特點是:
· 哈佛結構,具備1MIPS / MHz的高速運行處理能力;
· 超功能精簡指令集(RISC),具有32個通用工作暫存器,克服了如8051 MCU採用單一ACC進行處理造成的瓶頸現象;
· 快速的存取暫存器組、單周期指令系統,大大最佳化了目標代碼的大小、執行效率,部分型號FLASH非常大,特別適用於使用高級語言進行開發;
· 作輸出時與PIC的HI/LOW相同,可輸出40mA(單一輸出),作輸入時可設定為三態高阻抗輸入或帶上拉電阻輸入,具備10mA-20mA灌電流的能力;
· 片內集成多種頻率的RC振盪器、上電自動復位、看門狗、啟動延時等功能,外圍電路更加簡單,系統更加穩定可靠;
· 大部分AVR片上資源豐富:帶E2PROM,PWM,RTC,SPI,UART,TWI,ISP,AD,Analog Comparator,WDT等;
· 大部分AVR除了有ISP功能外,還有IAP功能,方便升級或銷毀應用程式。
AVR單片機的套用區域
目前,AVR已被廣泛用於:
· 空調控制板
· 印表機控制板
· 智慧型電錶
· 智慧型手電筒
· LED控制屏
· 醫療設備
· GPS
從市場角度看AVR單片機
· 性價比:AVR大部分型號的性價比較高,性價比表現突出的型號有:atmega48、atmega8、atmega16、atmega169P
· 供貨方面:通用型號的AVR供貨較為穩定,非常規型號的AVR樣品及供貨仍存在問題。
· 市場占有率:目前,AVR的市場占有率還是不如PIC與51,但,AVR的優點使得AVR的市場占有一直在擴展,AVR的年用量也一直在上漲。