电子说
在电子设计领域,选择一款合适的微控制器对于项目的成功至关重要。Atmel AVR XMEGA D系列微控制器以其低功耗、高性能和丰富的外设功能,成为众多嵌入式应用的理想选择。本文将深入解析Atmel AVR XMEGA D微控制器的各个方面,为电子工程师提供全面的技术参考。
文件下载:ATXMEGA64D4-MN.pdf
这份手册详细介绍了Atmel AVR XMEGA D微控制器家族的所有模块。手册涵盖了从CPU到各种外设的详细信息,但需要注意的是,并非所有设备都具备手册中描述的所有外设和模块。对于特定设备的详细信息,如特性数据、内存大小、可用模块和外设及其绝对内存地址,需参考设备数据手册。
手册的主要章节描述了各种模块和外设。每个章节包含简短的功能列表和模块概述,后续部分则详细描述其特性和功能。寄存器描述部分列出所有寄存器,并详细说明每个寄存器、位和标志的功能,包括如何设置和启用模块的各种特性。寄存器总结部分列出每种模块类型的内部寄存器映射,中断向量总结部分列出每种模块类型的中断向量和偏移地址。
可从http://www.atmel.com/avr下载全面的开发工具、应用笔记和数据手册。
建议新用户阅读AVR1000 - Getting Started Writing C Code for Atmel XMEGA。同时,AVR XMEGA D设备数据手册包含特定设备信息,XMEGA应用笔记和AVR软件框架提供示例代码和模块及外设的应用实例。
AVR XMEGA D微控制器基于AVR增强RISC架构,是低功耗、高性能且外设丰富的CMOS 8/16位微控制器。它在单时钟周期内执行强大指令,每兆赫兹吞吐量接近100万条指令(MIPS),使系统设计人员能够在功耗和处理速度之间进行优化。
| 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子系列在内存大小、引脚数量等方面存在差异,工程师可以根据具体项目需求进行选择。
AVR XMEGA设备均使用8/16位AVR CPU,其主要功能是执行代码和进行所有计算,能够访问内存、执行计算、控制外设并执行闪存中的程序。中断处理在单独的章节中描述。
为了最大化性能和并行性,AVR CPU采用哈佛架构,程序和数据使用独立的内存和总线。程序内存中的指令通过单级流水线执行,在执行一条指令的同时,从程序内存预取下一条指令,从而实现每个时钟周期执行一条指令。
ALU支持寄存器之间或常量与寄存器之间的算术和逻辑运算,也可执行单寄存器操作。它与32个通用寄存器直接连接,在单时钟周期内执行通用寄存器之间或寄存器与立即数之间的算术运算,并将结果存储在寄存器文件中。运算分为算术、逻辑和位函数三大类,支持8位和16位算术运算,指令集可高效实现32位算术运算。硬件乘法器支持有符号和无符号乘法以及分数格式。
复位后,CPU从闪存程序内存的最低地址“0”开始执行指令。程序计数器(PC)指向要获取的下一条指令。程序流程通过条件和无条件跳转及调用指令实现,可直接寻址整个地址空间。大多数AVR指令使用16位字格式,少数使用32位格式。中断和子程序调用时,返回地址PC存储在堆栈中,堆栈分配在通用数据SRAM中,堆栈大小仅受SRAM总大小和使用情况限制。
AVR CPU由CPU时钟(clk CPU)驱动,无内部时钟分频。哈佛架构和快速访问寄存器文件概念实现了并行指令获取和执行,基本流水线概念可实现每兆赫兹高达1MIPS的性能,且功耗效率高。
状态寄存器(SREG)包含最近执行的算术或逻辑指令的结果信息,可用于改变程序流程以执行条件操作。状态寄存器在所有ALU操作后更新,许多情况下无需使用专用比较指令,可使代码更快速、紧凑。进入中断例程时,状态寄存器不会自动存储,返回时也不会自动恢复,需软件处理。状态寄存器可在I/O内存空间访问。
堆栈用于存储中断和子程序调用后的返回地址,也可存储临时数据。堆栈指针(SP)寄存器始终指向堆栈顶部,由两个8位寄存器实现,可在I/O内存空间访问。使用PUSH和POP指令进行数据的压入和弹出操作,堆栈从高内存地址向低内存地址增长。不同程序内存大小的设备,返回地址的字节数不同,相应地,堆栈指针的增减量也不同。为防止软件更新堆栈指针时出现损坏,向SPL写入时会自动禁用最多四条指令的中断,或直到下一次I/O内存写入。
寄存器文件由32个8位通用工作寄存器组成,访问时间为单时钟周期。支持多种输入/输出方案,其中6个寄存器可作为3个16位地址寄存器指针用于数据空间寻址,其中一个还可作为闪存程序内存中查找表的地址指针。
为访问64KB以上的程序或数据内存,需将一个寄存器与X、Y或Z寄存器连接,形成24位地址或地址指针。这些寄存器仅在具有外部总线接口和/或超过64KB程序或数据内存空间的设备上可用。
由于AVR数据总线为8位宽,访问16位寄存器需要原子操作,通过两次读写操作按字节访问。写操作时,先写低字节再写高字节;读操作时,先读低字节再读高字节。为防止中断破坏16位读写操作的时序,读写16位寄存器时可禁用中断。临时寄存器也可由用户软件直接读写。对于24位和32位寄存器,读写访问方式与16位寄存器类似,只是分别需要两个和三个临时寄存器。
系统关键I/O寄存器设置受保护,防止意外修改。SPM指令和读取熔丝及签名行时的LPM指令也受保护,由配置更改保护(CCP)寄存器全局处理。更改受保护的I/O寄存器或执行受保护的指令,需CPU向CCP寄存器写入签名。有两种操作模式,分别针对受保护的I/O寄存器和受保护的SPM/LPM指令。
对于某些系统关键特性,可通过编程熔丝禁用对相关I/O控制寄存器的所有更改。一旦设置,用户软件无法更改这些寄存器,熔丝只能使用外部编程器重新编程。
手册详细描述了CCP、RAMPD、RAMPX、RAMPY等寄存器的功能、位定义、读写权限和初始值等信息。
Atmel AVR XMEGA D微控制器以其丰富的功能和灵活的架构,为电子工程师提供了强大的设计工具。在实际应用中,工程师需要根据具体项目需求,合理选择子系列和配置外设,充分发挥其性能优势。你在使用Atmel AVR XMEGA D微控制器时遇到过哪些问题呢?欢迎在评论区分享你的经验和见解。
全部0条评论
快来发表一下你的评论吧 !