Atmel AVR XMEGA D微控制器深度解析
在電子設(shè)計領(lǐng)域,選擇一款合適的微控制器對于項(xiàng)目的成功至關(guān)重要。Atmel AVR XMEGA D系列微控制器以其低功耗、高性能和豐富的外設(shè)功能,成為眾多嵌入式應(yīng)用的理想選擇。本文將深入解析Atmel AVR XMEGA D微控制器的各個方面,為電子工程師提供全面的技術(shù)參考。
文件下載:ATXMEGA64D4-MN.pdf
一、手冊概述
這份手冊詳細(xì)介紹了Atmel AVR XMEGA D微控制器家族的所有模塊。手冊涵蓋了從CPU到各種外設(shè)的詳細(xì)信息,但需要注意的是,并非所有設(shè)備都具備手冊中描述的所有外設(shè)和模塊。對于特定設(shè)備的詳細(xì)信息,如特性數(shù)據(jù)、內(nèi)存大小、可用模塊和外設(shè)及其絕對內(nèi)存地址,需參考設(shè)備數(shù)據(jù)手冊。
1.1 手冊閱讀指南
手冊的主要章節(jié)描述了各種模塊和外設(shè)。每個章節(jié)包含簡短的功能列表和模塊概述,后續(xù)部分則詳細(xì)描述其特性和功能。寄存器描述部分列出所有寄存器,并詳細(xì)說明每個寄存器、位和標(biāo)志的功能,包括如何設(shè)置和啟用模塊的各種特性。寄存器總結(jié)部分列出每種模塊類型的內(nèi)部寄存器映射,中斷向量總結(jié)部分列出每種模塊類型的中斷向量和偏移地址。
1.2 資源獲取
可從http://www.atmel.com/avr下載全面的開發(fā)工具、應(yīng)用筆記和數(shù)據(jù)手冊。
1.3 推薦閱讀
建議新用戶閱讀AVR1000 - Getting Started Writing C Code for Atmel XMEGA。同時,AVR XMEGA D設(shè)備數(shù)據(jù)手冊包含特定設(shè)備信息,XMEGA應(yīng)用筆記和AVR軟件框架提供示例代碼和模塊及外設(shè)的應(yīng)用實(shí)例。
二、AVR XMEGA D微控制器概述
AVR XMEGA D微控制器基于AVR增強(qiáng)RISC架構(gòu),是低功耗、高性能且外設(shè)豐富的CMOS 8/16位微控制器。它在單時鐘周期內(nèi)執(zhí)行強(qiáng)大指令,每兆赫茲吞吐量接近100萬條指令(MIPS),使系統(tǒng)設(shè)計人員能夠在功耗和處理速度之間進(jìn)行優(yōu)化。
2.1 主要特性
- 內(nèi)存方面:具備系統(tǒng)內(nèi)可編程閃存,支持讀 - 寫功能;擁有內(nèi)部EEPROM和SRAM。
- 外設(shè)方面:有四通道事件系統(tǒng)和可編程多級中斷控制器;多達(dá)50條通用I/O線;16位實(shí)時計數(shù)器(RTC);多達(dá)五個靈活的16位定時器/計數(shù)器,具備捕獲、比較和PWM模式;多達(dá)三個USART;兩個I2C和SMBUS兼容的兩線串行接口(TWI);多達(dá)兩個串行外設(shè)接口(SPI);CRC模塊;一個16通道、12位ADC,可編程增益;兩個帶窗口模式的模擬比較器(AC);可編程看門狗定時器,帶有獨(dú)立內(nèi)部振蕩器;精確的內(nèi)部振蕩器,具備PLL和預(yù)分頻器;可編程欠壓檢測。
- 接口方面:提供快速的兩引腳程序和調(diào)試接口(PDI)。
- 電源模式方面:有五種軟件可選的節(jié)能模式,包括空閑模式、掉電模式、省電模式、待機(jī)模式和擴(kuò)展待機(jī)模式。為進(jìn)一步降低功耗,可在活動模式和空閑睡眠模式下選擇性停止每個外設(shè)的時鐘。
2.2 不同子系列特性對比
| Feature | Details /sub-family | D3 | D4 |
|---|---|---|---|
| Total Pins, I/O | 64 | 44 | |
| Programmable I/O pins | 50 | 34 | |
| Program memory (KB) | 32 - 384 | 16 - 128 | |
| Boot memory (KB) | 4 - 8 | 4 - 8 | |
| SRAM (KB) | 4 - 16 | 2 - 8 | |
| EEPROM (KB) | 2 - 4 | 1 - 2 | |
| General purpose registers | 4 | 4 | |
| Package (TQFP) | 64A | 44A | |
| Package (VQFN) | 64M | 44M1 | |
| Package (BGA) | 49C2 | - | |
| QTouch? Sense channels | 56 | 56 | |
| DMA Controller Channels | Channels | 4 | 4 |
| Event System (QDEC) | 1 | 1 | |
| Crystal Oscillator (0.4 - 16MHz XOSC) | Yes | Yes | |
| Crystal Oscillator (32.768 kHz TOSC) | Yes | Yes | |
| Internal Oscillator (2MHz calibrated) | Yes | Yes | |
| Internal Oscillator (32MHz calibrated) | Yes | Yes | |
| Internal Oscillator (128MHz PLL) | Yes | Yes | |
| Internal Oscillator (32.768kHz calibrated) | Yes | Yes | |
| Internal Oscillator (32kHz ULP) | Yes | Yes | |
| Timer / Counter (TC0 - 16-bit, 4 CC) | 4 | 3 | |
| Timer / Counter (TC1 - 16-bit, 2 CC) | 1 | 1 | |
| Timer / Counter (TC2 - 2x 8-bit) | 4 | 2 | |
| Timer / Counter (Hi - Res) | 1 | 1 | |
| Timer / Counter (AWeX) | 1 | 1 | |
| Timer / Counter (RTC) | 1 | 1 | |
| USB full - speed device | - | - | |
| Serial Communication (USART) | 3 | 3 | |
| Serial Communication (SPI) | 2 | 2 | |
| Serial Communication (TWI) | 2 | 2 | |
| Crypto /CRC (AES - 128) | - | - | |
| Crypto /CRC (CRC - 16) | Yes | Yes | |
| Crypto /CRC (CRC - 32) | Yes | Yes | |
| Extermal Memory (EBI) | - | - | |
| Analog to Digital Converter (ADC) | 1 | 1 | |
| ADC Resolution (bits) | 12 | 12 | |
| ADC Sampling speed (kbps) | 300 | 300 | |
| ADC Input channels per ADC | 16 | 12 | |
| ADC Conversion channels | 1 | 1 | |
| Digital to Analog Converter (DAC) | - | - | |
| Analog Comparator (AC) | 2 | 2 | |
| Program and Debug Interface (PDI) | Yes | Yes | |
| Program and Debug Interface (JTAG) | - | - | |
| Program and Debug Interface (Boundary scan) | - | - |
從表格中可以看出,D3和D4子系列在內(nèi)存大小、引腳數(shù)量等方面存在差異,工程師可以根據(jù)具體項(xiàng)目需求進(jìn)行選擇。
三、Atmel AVR CPU
3.1 特性
- 高性能架構(gòu):8/16位Atmel AVR RISC CPU,擁有141條指令和硬件乘法器。
- 寄存器優(yōu)勢:32個8位寄存器直接連接到算術(shù)邏輯單元(ALU),堆棧位于RAM中,堆棧指針可在I/O內(nèi)存空間訪問。
- 內(nèi)存尋址:可直接尋址高達(dá)16MB的程序內(nèi)存和16MB的數(shù)據(jù)內(nèi)存,支持對16/24位I/O寄存器的真實(shí)16/24位訪問。
- 運(yùn)算支持:高效支持8位、16位和32位算術(shù)運(yùn)算,具備系統(tǒng)關(guān)鍵特性的配置更改保護(hù)。
3.2 概述
AVR XMEGA設(shè)備均使用8/16位AVR CPU,其主要功能是執(zhí)行代碼和進(jìn)行所有計算,能夠訪問內(nèi)存、執(zhí)行計算、控制外設(shè)并執(zhí)行閃存中的程序。中斷處理在單獨(dú)的章節(jié)中描述。
3.3 架構(gòu)概述
為了最大化性能和并行性,AVR CPU采用哈佛架構(gòu),程序和數(shù)據(jù)使用獨(dú)立的內(nèi)存和總線。程序內(nèi)存中的指令通過單級流水線執(zhí)行,在執(zhí)行一條指令的同時,從程序內(nèi)存預(yù)取下一條指令,從而實(shí)現(xiàn)每個時鐘周期執(zhí)行一條指令。
3.4 ALU - 算術(shù)邏輯單元
ALU支持寄存器之間或常量與寄存器之間的算術(shù)和邏輯運(yùn)算,也可執(zhí)行單寄存器操作。它與32個通用寄存器直接連接,在單時鐘周期內(nèi)執(zhí)行通用寄存器之間或寄存器與立即數(shù)之間的算術(shù)運(yùn)算,并將結(jié)果存儲在寄存器文件中。運(yùn)算分為算術(shù)、邏輯和位函數(shù)三大類,支持8位和16位算術(shù)運(yùn)算,指令集可高效實(shí)現(xiàn)32位算術(shù)運(yùn)算。硬件乘法器支持有符號和無符號乘法以及分?jǐn)?shù)格式。
3.5 程序流程
復(fù)位后,CPU從閃存程序內(nèi)存的最低地址“0”開始執(zhí)行指令。程序計數(shù)器(PC)指向要獲取的下一條指令。程序流程通過條件和無條件跳轉(zhuǎn)及調(diào)用指令實(shí)現(xiàn),可直接尋址整個地址空間。大多數(shù)AVR指令使用16位字格式,少數(shù)使用32位格式。中斷和子程序調(diào)用時,返回地址PC存儲在堆棧中,堆棧分配在通用數(shù)據(jù)SRAM中,堆棧大小僅受SRAM總大小和使用情況限制。
3.6 指令執(zhí)行時序
AVR CPU由CPU時鐘(clk CPU)驅(qū)動,無內(nèi)部時鐘分頻。哈佛架構(gòu)和快速訪問寄存器文件概念實(shí)現(xiàn)了并行指令獲取和執(zhí)行,基本流水線概念可實(shí)現(xiàn)每兆赫茲高達(dá)1MIPS的性能,且功耗效率高。
3.7 狀態(tài)寄存器
狀態(tài)寄存器(SREG)包含最近執(zhí)行的算術(shù)或邏輯指令的結(jié)果信息,可用于改變程序流程以執(zhí)行條件操作。狀態(tài)寄存器在所有ALU操作后更新,許多情況下無需使用專用比較指令,可使代碼更快速、緊湊。進(jìn)入中斷例程時,狀態(tài)寄存器不會自動存儲,返回時也不會自動恢復(fù),需軟件處理。狀態(tài)寄存器可在I/O內(nèi)存空間訪問。
3.8 堆棧和堆棧指針
堆棧用于存儲中斷和子程序調(diào)用后的返回地址,也可存儲臨時數(shù)據(jù)。堆棧指針(SP)寄存器始終指向堆棧頂部,由兩個8位寄存器實(shí)現(xiàn),可在I/O內(nèi)存空間訪問。使用PUSH和POP指令進(jìn)行數(shù)據(jù)的壓入和彈出操作,堆棧從高內(nèi)存地址向低內(nèi)存地址增長。不同程序內(nèi)存大小的設(shè)備,返回地址的字節(jié)數(shù)不同,相應(yīng)地,堆棧指針的增減量也不同。為防止軟件更新堆棧指針時出現(xiàn)損壞,向SPL寫入時會自動禁用最多四條指令的中斷,或直到下一次I/O內(nèi)存寫入。
3.9 寄存器文件
寄存器文件由32個8位通用工作寄存器組成,訪問時間為單時鐘周期。支持多種輸入/輸出方案,其中6個寄存器可作為3個16位地址寄存器指針用于數(shù)據(jù)空間尋址,其中一個還可作為閃存程序內(nèi)存中查找表的地址指針。
3.10 RAMP和擴(kuò)展間接寄存器
為訪問64KB以上的程序或數(shù)據(jù)內(nèi)存,需將一個寄存器與X、Y或Z寄存器連接,形成24位地址或地址指針。這些寄存器僅在具有外部總線接口和/或超過64KB程序或數(shù)據(jù)內(nèi)存空間的設(shè)備上可用。
3.11 訪問16位寄存器
由于AVR數(shù)據(jù)總線為8位寬,訪問16位寄存器需要原子操作,通過兩次讀寫操作按字節(jié)訪問。寫操作時,先寫低字節(jié)再寫高字節(jié);讀操作時,先讀低字節(jié)再讀高字節(jié)。為防止中斷破壞16位讀寫操作的時序,讀寫16位寄存器時可禁用中斷。臨時寄存器也可由用戶軟件直接讀寫。對于24位和32位寄存器,讀寫訪問方式與16位寄存器類似,只是分別需要兩個和三個臨時寄存器。
3.12 配置更改保護(hù)
系統(tǒng)關(guān)鍵I/O寄存器設(shè)置受保護(hù),防止意外修改。SPM指令和讀取熔絲及簽名行時的LPM指令也受保護(hù),由配置更改保護(hù)(CCP)寄存器全局處理。更改受保護(hù)的I/O寄存器或執(zhí)行受保護(hù)的指令,需CPU向CCP寄存器寫入簽名。有兩種操作模式,分別針對受保護(hù)的I/O寄存器和受保護(hù)的SPM/LPM指令。
3.13 熔絲鎖
對于某些系統(tǒng)關(guān)鍵特性,可通過編程熔絲禁用對相關(guān)I/O控制寄存器的所有更改。一旦設(shè)置,用戶軟件無法更改這些寄存器,熔絲只能使用外部編程器重新編程。
3.14 寄存器描述
手冊詳細(xì)描述了CCP、RAMPD、RAMPX、RAMPY等寄存器的功能、位定義、讀寫權(quán)限和初始值等信息。
Atmel AVR XMEGA D微控制器以其豐富的功能和靈活的架構(gòu),為電子工程師提供了強(qiáng)大的設(shè)計工具。在實(shí)際應(yīng)用中,工程師需要根據(jù)具體項(xiàng)目需求,合理選擇子系列和配置外設(shè),充分發(fā)揮其性能優(yōu)勢。你在使用Atmel AVR XMEGA D微控制器時遇到過哪些問題呢?歡迎在評論區(qū)分享你的經(jīng)驗(yàn)和見解。
-
微控制器
+關(guān)注
關(guān)注
49文章
8662瀏覽量
165284
發(fā)布評論請先 登錄
Atmel AVR XMEGA D微控制器深度解析
評論