许多系统需要固定或可编程的数字时钟波形。在PCB面积受限的应用中,微控制器通常产生这些信号。本文介绍了使用ADuC702x模拟微控制器生成时钟的三种方法。
时钟生成的经典解决方案是切换微控制器的通用输出之一。如果计时器可用,则可以将其配置为在每次溢出时补充中断服务例程中的通用输出。这种类型的完全可编程数字波形生成允许可编程占空比,但中断延迟限制了其速度和精度。基于ARM7的ADuC702x具有可变的中断延迟。这种变化会在生成的信号上产生抖动。这种方法的另一个缺点是,必须以高优先级处理计时器中断,以保持正确的计时。理想情况下,数字波形生成不应涉及内核。
一种不涉及内核的解决方案使用集成PWM(脉宽调制器)。这种方法还允许可变占空比。时钟分辨率取决于PWM开关频率寄存器的大小和内核时钟频率。该解决方案的主要优点是没有CPU负载,并且可以产生从几赫兹到几十兆赫兹的宽范围频率。ADuC702x系列集成PWM模块,如图1所示。
图1.ADuC7026 原理框图
该解决方案的缺点是PWM生成时钟的精度取决于内部时钟的精度,并且它使用完整的三相PWM模块,而该模块最初并非用于此目的。使用外部3 kHz晶体而不是精度为±32%的片内振荡器可以提高精度,但这会增加成本、尺寸和功率预算。
较小的解决方案包括使用门和触发器。ADuC702x系列包括一个可编程逻辑阵列(PLA),可用于实现胶合逻辑。该PLA由16个可编程门和触发器组成,完全可以通过软件进行配置。一个非常简单的时钟可以只使用一个NOT门和一个触发器进行编程,如图2所示。
图2.使用PLA的可编程时钟
触发器可通过内核时钟、内部 32kHz 振荡器、定时器1 或通用输入进行计时。时钟频率可以非常灵活,但占空比无法编程。该解决方案的最大优点是它只占用了非常小的芯片块。ADuC702x上集成了非专用门,具有极大的灵活性。
下表总结了这三种方法的特点。虽然每种方法都有优点,但只有应用程序才能确定哪一种是最合适的解决方案。
表1:ADuC702x系列三种方法的比较
最低速度 | 最大速度 | 优势 | 弊 | |
通用信息总局 | 使用 T1:1/2^32 |
中断延迟: 5 到 50 个 时钟周期 |
可变占空比 |
抖动 中央处理器负载 使用计时器 |
脉宽调制 | 核心时钟/ (2 × PWMDAT0.max) = 344 Hz |
核心时钟/ (2 × PWMDAT0最小) = 22 MHz |
无 CPU 负载 可变占空比 |
使用三相PWM模块 |
PLA | 使用 T1:1/2^33 | 核心时钟 / 2 |
无 CPU 负载 仅使用 1 个聚乳酸元件 |
并非每个 GPIO 都可以用作 PLA 输出 可能使用计时器 固定占空比 |
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !