32kHz同步:定时器启动/停止技术解析

需积分: 42 87 下载量 53 浏览量 更新于2024-08-10 收藏 8.99MB PDF 举报
"定时器启动/停止同步在CC253X芯片中的实现" 在CC253X微控制器,特别是应用于2.4GHz IEEE 802.15.4和ZigBee®系统的解决方案中,定时器的启动和停止同步是一个关键的时序控制机制。本节主要关注18.4定时器启动/停止同步,具体涉及32kHz时钟与32 MHz系统时钟的交互。 18.4.1 概述 定时器的启动和停止同步是通过32kHz时钟的上升沿触发的。这个机制依赖于32kHz时钟和32 MHz系统时钟的同步运行。只有当两个时钟都稳定工作时,才能进行同步操作,否则可能导致不准确的定时。 18.4.2 定时器同步停止 在定时器运行中(RUN模式),同步停止通过设置T2CTRL.SYNC为1并写入0到T2CTRL.RUN来执行。尽管RUN位被设置为0,定时器会继续运行,直到32kHz时钟的一个上升沿被检测到,这时定时器停止,保存当前的睡眠定时器值,并将T2CTRL.STATE从1变为0。 18.4.3 定时器同步启动 当定时器处于IDLE模式,且T2CTRL.SYNC为1时,写入1到T2CTRL.RUN启动同步启动。定时器将保持IDLE状态,直至检测到32kHz时钟的上升沿。随后,它计算新的16位定时器值和24位溢出值,基于当前的睡眠定时器值和16位定时器值。新的计数值装载到定时器后,定时器进入RUN模式,T2CTRL.STATE变为1。同步启动的过程从32kHz时钟上升沿采样开始,会经历86个时钟周期。为了确保准确的同步,系统时钟应设定为32 MHz。若选择16 MHz,需对计算值进行补偿。 时钟频率不同步可能会导致计算的计数器值与理想值之间存在±1的误差。为了避免在没有同步停止的情况下直接进行同步启动导致的不可预知值加载,应首先执行同步停止,然后再启用同步模式进行后续的停止和启动。 在实际应用中,如ZigBee通信,精确的定时器控制对于网络同步和数据传输至关重要。CC253X芯片通过其强大的8051 CPU、丰富的外设以及可编程的电源管理和时钟系统,为这样的无线应用提供了高效的解决方案。理解并掌握定时器的同步启动和停止是充分利用该芯片功能的关键。