Atmega16

一種微控制器

ATmega16是基於增強的AVR RISC結構的低功耗8位CMOS微控制器。由於其先進的指令集以及單時鐘周期指令執行時間,ATmega16的數據吞吐率高達1MIPS/MHz,從而可以減緩系統在功耗和處理速度之間的矛盾。

介紹


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)
ATmega引腳圖
ATmega引腳圖
埠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 結構的方框圖
ATmega16內部框圖
ATmega16內部框圖
為了獲得最高的性能以及并行性, 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,PWMRTC,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的年用量也一直在上漲。