介紹
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、
熔絲位和鎖定位的編程
外設特點
l 一個具有預分頻器、比較功能和捕捉功能的16位定時器/計數器
l 具有獨立振盪器的實時計數器RTC
l 四通道PWM
l 8路10位ADC,8個單端通道,2個具有可程式增益(1x, 10x, 或200x)的差分通道
l 面向位元組的兩線接口
l 兩個可程式的串列USART
l 片內模擬比較器
u 特殊的處理器特點
l 上電復位以及可程式的掉電檢測
l 片內經過標定的RC振盪器
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 電源正
連線埠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
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有一個靈活的中斷模組。
控制暫存器位於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的年用量也一直在上漲。