ATAM893-D微控制器:特性、架构与应用全解析
一、引言
在电子工程师的设计世界里,微控制器是核心组件之一。ATAM893-D作为Atmel家族4位单芯片微控制器的一员,具有独特的特性和广泛的应用场景。本文将深入剖析ATAM893-D的各项特性、架构以及相关应用,为电子工程师在设计中提供全面的参考。
文件下载:ATAM893T-TKQ.pdf
二、ATAM893-D特性概述
2.1 温度与存储特性
- 宽温度范围:能够在高达125°C的高温环境下稳定工作,适用于多种恶劣工业环境。
- 大容量存储:拥有4-Kbyte EEPROM程序存储器和2 × 512-bit EEPROM数据存储器,以及256 × 4-bit RAM数据存储器,为程序运行和数据存储提供了充足的空间。
2.2 输入输出与中断特性
2.3 时钟与电源特性
三、ATAM893-D与ATARx90/x92的差异
3.1 程序内存
ATAM893-D的程序内存采用EEPROM实现,用户程序内存大小为4096字节,以258 × 16字节块的形式编程,且具有可选择的LOCK位功能,能防止程序内存被非法读取。
3.2 配置内存
EEPROM中有32字节的额外区域用于存储硬件配置信息,用户可选择与ROM版本相同的选项,如端口配置、电容选择、看门狗硬锁启用等。
3.3 数据内存
内部数据EEPROM组织为两个32 × 16位的页面,与ROM部分兼容时,仅需使用一个页面。访问EEPROM通过MCL(串行接口)进行,且在通信处理上与ROM部分略有不同,对通信错误的容忍度更高。
3.4 复位功能
在每次复位(上电或掉电)时,配置寄存器会复位并重新加载配置内存中的数据。与ROM版本相比,ATAM893-D在复位时I/O端口切换到输入模式,但MTP在下载完成前会移除上拉或下拉电阻。
3.5 RC振荡器频率
与ROM部分相比,ATAM893-D的内部RC振荡器典型频率约高5%,不过由于总体公差范围较宽(±50%),对应用影响不大。
3.6 高驱动输出
ROM部分可提供高电流输出选择,而ATAM893-D仅默认将Timer 2输出(BP42)和Timer 3输出(BP60)配置为低侧驱动器的高电流输出,且该配置不可更改。
四、MARC4架构解析
4.1 总体描述
MARC4微控制器由先进的基于堆栈的4位CPU核心和片上外设组成。采用哈佛架构,程序内存(ROM)和数据内存(RAM)物理分离,通过三条独立总线(指令总线、内存总线和I/O总线)实现并行通信,有效提高程序执行速度。同时,集成了强大的中断控制器,支持八个优先级的中断级别,能快速高效地处理硬件事件。
4.2 核心组件
4.2.1 程序内存
程序内存(EEPROM)可通过客户应用程序进行编程,由12位宽的程序计数器寻址,最大程序库大小为4 Kbytes,最低用户程序内存地址段为512字节的零页,包含中断服务程序和特殊子程序的预定义起始地址。
4.2.2 RAM
ATAM893-D的RAM为256 × 4位宽的静态随机存取存储器,用于表达式堆栈、返回堆栈以及变量和数组的数据存储。通过四个8位宽的RAM地址寄存器(SP、RP、X和Y)进行寻址。
- 表达式堆栈:由表达式堆栈指针(SP)寻址,用于算术、I/O和内存引用操作的操作数存储和结果返回,也用于子程序间的参数传递和临时数据存储。
- 返回堆栈:由返回堆栈指针(RP)寻址,用于存储子程序和中断程序的返回地址以及循环索引计数,也可作为临时存储区域。
4.2.3 寄存器
- 程序计数器(PC):12位寄存器,存储从ROM中获取下一条指令的地址,在指令执行过程中根据不同情况进行更新。
- RAM地址寄存器:SP、RP、X和Y四个8位宽的寄存器,用于访问256个RAM半字节。
- 栈顶寄存器(TOS):作为MARC4的累加器,用于算术、逻辑、内存引用和I/O操作。
- 条件代码寄存器(CCR):4位宽,包含分支、进位和中断使能标志,反映CPU的当前状态,可通过特定指令直接操作。
- ALU:4位ALU对表达式堆栈的前两个元素进行算术、逻辑、移位和旋转操作,并将结果返回TOS,同时影响CCR中的进位/借位和分支标志。
4.2.4 指令集
MARC4指令集针对高级编程语言qFORTH进行了优化,许多指令是qFORTH单词,使编译器能够生成快速紧凑的程序代码。CPU具有指令流水线,可在执行当前指令的同时预取程序内存中的下一条指令。
4.2.5 中断结构
MARC4可处理八个不同优先级的中断,可由内部和外部中断源或CPU自身的软件中断产生。每个中断级别都有固定的优先级和对应的服务程序向量,程序员可通过重置CCR中的中断使能标志(I)来推迟中断处理。
4.2.6 中断处理
MARC4包含一个中断控制器,通过两个8位宽的“中断待处理”和“中断激活”寄存器处理八个中断级别。在非I/O指令周期内采样所有中断请求,并在中断激活寄存器中无更高优先级中断时,通知CPU中断当前程序执行。中断服务程序通过RTI指令完成,重置相应的中断待处理/激活寄存器位,并从返回堆栈中获取返回地址到程序计数器。
4.2.7 中断延迟
MARC4的中断延迟极短,根据核心状态不同,介于3到5个机器周期之间。
4.3 主复位
主复位可使CPU进入明确状态,不可屏蔽且独立于当前程序状态。可由初始电源上电、电源短暂崩溃、掉电检测电路、看门狗超时或外部输入时钟监控阶段触发。主复位会复位中断使能标志、中断待处理寄存器和中断激活寄存器,在复位阶段,I/O总线控制信号设置为复位模式,初始化所有片上外设,所有双向端口设置为输入模式。
4.4 电压监控
电压监控器由带有内部电压参考的比较器组成,用于监控电源电压或VMI引脚的外部电压。比较器针对电源电压有三个内部可编程阈值(2.2 V、2.6 V和3.0 V),对于VMI引脚的外部电压,阈值设置为1.3 V。VMS位指示监控电压是否低于或高于阈值,可通过设置或重置VMS位生成中断,检测电压的上升或下降斜率。
4.5 时钟生成
4.5.1 时钟模块
ATAM893-D包含一个时钟模块,具有四种不同的内部振荡器类型:两个RC振荡器、一个4-MHz晶体振荡器和一个32-kHz晶体振荡器。通过OSC1和OSC2引脚可连接晶体,OSC1还可作为外部时钟输入或连接外部微调电阻。可通过软件编程时钟管理寄存器(CM)和系统配置寄存器(SC)选择振荡器类型或外部输入时钟来生成系统时钟(SYSCL)。
4.5.2 振荡器电路和外部时钟输入阶段
- RC振荡器1:完全集成,无需外部组件,适用于对定时不敏感的应用,中心频率公差优于±50%,上电复位后默认选择。
- 外部输入时钟:OSC1或OSC2可由外部时钟源驱动,外部时钟阶段包含监控电路,若外部输入时钟缺失超过1 ms且CCS = 0,监控电路将生成硬件复位。
- 带外部微调电阻的RC振荡器2:高分辨率可微调振荡器,通过在OSC1和VDD之间连接外部电阻,可将振荡器频率稳定在±15% / -20%的公差范围内。
- 4-MHz振荡器:需要连接晶体或陶瓷谐振器到OSC1和OSC2引脚,除实际晶体、谐振器、C3和C4外,所有必要的振荡器电路都集成在芯片上。
- 32-kHz振荡器:适用于需要长期计时或低分辨率定时的应用,可生成SUBCL和SYSCL,在掉电模式下不能停止。
4.5.3 时钟管理
时钟管理寄存器控制系统时钟分频器和同步阶段,写入该寄存器会触发同步周期。通过CM寄存器的NSTOP位可控制在睡眠模式下是否停止外设时钟,CCS位可选择系统时钟的生成源。
4.6 掉电模式
睡眠模式用于降低系统平均功耗,通过SLEEP指令进入,该指令设置条件代码寄存器中的中断使能位(I),停止核心运行。在睡眠模式下,外设模块保持活跃并能生成中断,通过任何中断或复位可退出睡眠模式。总功耗与微控制器的活动时间成正比,可通过公式[I{total }left(V{D D}, f{syscl }right)=I{Sleep }+left(I{D D} × frac{t{active }}{t_{total }}right)]估算平均系统电流消耗。
五、外设模块
5.1 外设寻址
通过I/O总线访问外设模块,IN或OUT指令可直接寻址多达16个I/O模块。采用双寄存器寻址方案,可直接寻址主寄存器,访问辅助寄存器需通过辅助切换模块。对于更复杂的外设模块,采用扩展寻址方式,通过子端口地址间接寻址多达16个子端口寄存器。
5.2 双向端口
除端口1和端口6外,其他端口(2、4和5)为4位宽,端口1和端口6数据宽度为2位(位0和位3)。所有端口可用于数据输入或输出,配备施密特触发器输入和多种掩码选项,如开漏、开源、全互补输出、上拉和下拉晶体管。
5.2.1 双向端口1
数据方向寄存器不可独立软件编程,在I/O指令发生时自动切换端口方向。OUT指令将端口切换到输出模式,IN指令将其切换到输入模式。
5.2.2 双向端口2
包含按位可编程的控制寄存器(P2CR),可将每个端口位单独编程为输入或输出,还可在输出模式下读取引脚状态。该端口具有增强的驱动能力和额外的低电阻上拉/下拉晶体管掩码选项。
5.2.3 双向端口5
同样包含按位可编程的控制寄存器(P5CR),端口引脚可作为外部中断输入,中断(INT1和INT6)可屏蔽或独立配置为触发任何边缘。
5.2.4 双向端口4
是按位可配置的I/O端口,为Timer 2、SSI和电压监控输入(VMI)提供外部引脚。除作为普通端口外,还可将数据和端口方向控制传递给其他内部模块。
5.2.5 双向端口6
按位可配置的I/O端口,为Timer 3提供外部引脚,可将数据和端口方向控制传递给Timer 3,T3I线的I/O引脚具有生成Timer 3中断的额外模式。
5.3 通用定时器/计数器/通信模块(UTCM)
由三个定时器(Timer 1、Timer 2、Timer 3)和一个同步串行接口(SSI)组成。
5.3.1 Timer 1
作为间隔定时器,可生成周期性中断,为Timer 2、Timer 3、串行接口和看门狗功能提供预分频器。由可编程的14级分频器组成,输出信号可作为预分频器时钟、SUBCL或Timer 1中断源。在掉电模式SLEEP下,输出T1OUT停止,但Timer 1仍可活动并生成中断。
5.3.2 Timer 2
8/12位定时器,可用于中断、方波、脉冲和占空比生成、波特率生成、曼彻斯特和双相调制以及载波频率生成和调制。由4位和8位向上计数器级组成,具有比较寄存器,输入可由系统时钟、外部输入时钟(T2I)、Timer 1输出时钟、Timer 3输出时钟或串行接口的移位时钟提供。
5.3.3 Timer 3
8位定时器/计数器,具有两个比较寄存器和一个捕获寄存器,可作为事件计数器、定时器和信号发生器,输出可编程为串行接口的调制器和解调器。具有触发和单动作模式,适用于调制、解调、信号生成、信号测量和相位控制。
5.3.4 同步串行接口(SSI)
具有2-和3线NRZ模式,可用于与外部设备的串行通信,也可用于生成和捕获片上串行数据流。可与Timer 2或Timer 3结合使用,实现多种数据调制和解调功能。
5.3.5 组合模式
UTCM中的定时器和串行接口可通过多种组合模式协同工作,如Timer 2和SSI的组合可实现突发调制、双相调制、曼彻斯特调制等;Timer 3和SSI的组合可实现FSK调制、脉冲宽度调制、曼彻斯特解调等;Timer 2和Timer 3的组合可用于频率测量或带时间门的事件计数等。
六、数据EEPROM
内部数据EEPROM提供两个512位的页面,每个页面组织为32 × 16位字。编程电压和写周期时序在芯片上生成。与ROM部分兼容时,仅使用默认页面,通过MCL(串行接口)访问EEPROM。
6.1 串行接口
EEPROM使用类似MCL的两线串行接口与微控制器进行数据读写访问,作为从设备,由控制器作为主设备发起数据传输并提供时钟。
6.2 EEPROM操作
6.2.1 串行协议
数据传输遵循特定协议,数据状态在SCL为低时在SDA线上改变,SCL为高时SDA线的变化被解释为START或STOP条件。每个数据传输必须以START条件开始,以STOP条件结束,接收设备在接收每个字节后生成确认(A)。
6.2.2 操作模式
通过控制字节定义EEPROM的操作模式,控制字节包含行地址、模式控制位和读/写位,用于控制数据传输方向。支持单字节和双字节写操作以及单字节到多字节读操作,还支持自动递增和自动递减读操作。
七、电气特性
7.1 绝对最大额定值
包括电源电压(-0.3至+ 6.5 V)、输入电压(VSS -0.3 ≤ VIN ≤ VDD +0.3 V)、输出短路持续时间(无限)、工作温度范围(-40至+125 °C)、存储温度范围(-40至+130 °C)和焊接温度(≤ 260 °C,持续时间≤ 10 s)。
7.2 热阻
SSO20封装的热阻为140 K/W。
7.3 DC工作特性
包括电源电压、工作电流、掉电电流、睡眠电流、引脚电容等参数,在不同电源电压和温度条件下有相应的取值范围。
7.4 AC特性
包括系统时钟周期、定时器输入时钟和时序、中断请求输入时序、外部系统时钟、复位时序、振荡器频率和稳定性等参数。
7.5 晶体特性
介绍了4-MHz和32-kHz晶体振荡器的频率、启动时间、稳定性以及相关的晶体参数。
八、仿真与订购信息
8.1 仿真
MARC4控制器包含特殊的仿真模式,在该模式下,内部CPU核心不活动,I/O总线可通过端口0和端口1进行外部访问,便于测试和评估客户程序和硬件,分析时序、硬件或软件问题。
8.2 订购信息
提供了不同型号的订购信息,包括程序内存、数据EEPROM、封装和交付方式等。
九、总结
ATAM893-D微控制器凭借其丰富的特性、独特的架构和多样的外设模块,为电子工程师在设计中提供了强大的支持。在高温环境、低功耗应用、复杂的外设控制等方面都有出色的表现。电子工程师在使用ATAM893-D时,可根据具体需求合理配置其各项功能,充分发挥其优势,实现高效、稳定的设计。你在实际设计中是否使用过类似的微控制器呢?遇到过哪些挑战和问题?欢迎在评论区分享你的经验和见解。
发布评论请先 登录
ATAM893-D微控制器:特性、架构与应用全解析
评论