ATOM(ARU-connected Timer Output Module)是一种与ARU单元相连接的定时器输出模块,可以通过ARU(无需CPU)与GTM中MCS、DPLL或PSM子模块连接,产生复杂的PWM波。
ATOM框图GTM共有8个ATOM,每个ATOM有8个通道,全局控制单元AGC控制着8个通道。
与TOM的主要差异:
1. ATOM通过ACI与ARU连接,能与其他模块连接产生复杂的PWM波;
2. 每个TOM有16个通道,TGC0控制通道0-7,TGC1控制通道8-15,TGC功能与AGC相似;
3. ATOM模块所需的工作时钟从CMU模块中生成的8个配置时钟CMU_CLK0-7中选择,如果使用时间戳,选择TBU模块生成的TBU0-2中的一个。
全局控制单元AGC(ATOM Global Control)有三个机制:通道禁止与使能;输出使能;强制更新。由三个触发源驱动:
1. CPU(bit HOST_TRIG of register ATOM[i]_AGC_GLB_CTRL);
2. TBU时间戳(TBU_TS0…2);
3. 内部触发信号(自身通道触发的TRIG_CCU0或前一个通道的触发信号TRIG_[x-1])或者外部TIM触发信号TIM_EXT_CAPTURE(x)(在GTM寄存器EXTTRIGOUT配置)。
AGC框图通道的输出由寄存器ATOM[i]_AGC_OUTEN_CTRL 和ATOM[i]_AGC_OUTEN_STAT控制,ATOM[i]_AGC_OUTEN_STAT直接控制OUTEN信号,ATOM[i]_AGC_OUTEN_CTRL 是ATOM[i]_AGC_OUTEN_STAT影子寄存器,当三个触发源其中一个条件满足时,影子寄存器覆盖ATOM[i]_AGC_OUTEN_STAT的值,当设置寄存器ATOM[i]_AGC_OUTEN_STAT禁止使能通道时,实际的通道输出ATOM_CH[x]_OUT由信号等级bit(SL)决定(即输出常高或常低)。
寄存器ATOM[i]_AGC_FUPD_CTRL定义如果触发信号CTRL_TRIG被触发,接收FORCE_UPDATE事件。在SOMP模式下,强制更新请求被存储并同步执行到所选的CMU_CLK。在所有其他模式中,强制更新请求立即执行。寄存器位UPEN_CTRL[x]定义了可以通过相应的影子寄存器SR0、SR1和CLK_SRC_SR来更新工作寄存器CM0、CM1和CLK_SRC。如果启用了更新,寄存器CM0、CM1和CLK_SRC将在计数器寄存器CN0复位时更新。
1. 立即输出模式SOMI(Signal Output Mode Immediate):ATOM通道根据通过ACBI位字段接收到的ARU字的两个信号电平输出位,在接收到ARU字后立即生成输出信号。由于ARU目的信道是按轮询顺序服务的,因此在这种模式下输出信号会随着ARU往返时间的抖动而抖动。
2. 比较输出模式SOMC(Signal Output Mode Compare),ATOM通道代表位于ATOM操作寄存器中的时间戳生成一个输出信号。将这些时间戳与TBU生成的时间戳进行比较。ATOM能够通过CPU或通过ARU接收新的时间戳。新的时间戳直接加载到通道操作寄存器中。当通道操作寄存器发生比较匹配时,影子寄存器用作两个时间基值的捕获寄存器。
3. PWM输出模式SOMP(Signal Output Mode PWM),ATOM通道能够通过将其操作寄存器与子模块内部计数器进行比较,生成简单和复杂的PWM输出信号。
4. 串行输出模式SOMS(Signal Output Mode Serial),ATOM通道代表移位寄存器生成串行输出位流。移位的位数和移位方向是可配置的。移位频率由CMU_CLKx时钟信号之一决定。
5. 缓冲比较输出模式SOMB(Signal Output Buffered Compare),ATOM通道代表位于ATOM操作寄存器中的时间戳生成输出信号。将这些时间戳与TBU生成的时间戳进行比较。ATOM能够通过CPU或通过ARU接收新的比较值。通过ARU接收到的新比较值首先存储在影子寄存器中,只有当之前的比较匹配发生时,操作寄存器才会用影子寄存器的内容更新。
每个单独的ATOM通道由一个包含计数器寄存器CN0和周期寄存器CM0的计数器比较单元CCU0,一个包含占空比寄存器CM1的计数器比较单元CCU1和包含输出寄存器SOUR的信号输出生成单元SOU,和包含影子寄存器SR0,SR1的ARU通讯接口ACI组成。当CN0的计数器值等于比较值CM0时重置计数器寄存器CN0时,将产生TRIG CCU0信号传输到 SOU模块中,其中CM0的值通常被设置为PWM的周期。该寄存器比较事件也可以作为一个内部触发信号RST CCU0,用来触发下一个ATOM通道,此功能常用来产生中心对称的PWM。当CN0等于或者大于CM1时,则会产生信号TRIG_CCU1,传输置SOU单元,SOU单元负责采集CCU0和CCU1的触发信号,产生PWM波。
与TOM的主要差异:
1. CM0、CM1、CN0、SR0、SR1都是24位(TOM16位),提高了计算精度;
2. 增加了ACI。
PWM输出模式可以用来产生复杂的PWM波形,在工程应用中用的较多。占空比能够同步或者异步更新。
通过影子寄存器给CM0,CM1赋值方式下,无论什么情况下,波形输出的占空比在下一个周期开始更新。
直接给CM1赋值:当CN0小于CM1时,赋值无论CM1多少,都会在本周期更新输出的占空比;当CN0大于CM1时,占空比要在下个周期开始更新。
备注:在工程应用中,为了保证输出的波形达到预期,一般使用同步更新方式,即使用影子寄存器赋值。当需要防止上下桥直通,防止窄脉冲这种情况时,可以利用异步更新方式。
向上计数方式的PWM输出波形如上图,SL定义了通道极性,当CN0等于CM0(实际CM0-1)或者当前个通道触发信号TRIG_[x-1]产生或者外部TIM捕捉触发信号TIM_EXT_CAPTURE(x)产生,CN0复位。前面说过,当CN0复位配置为来自前个通道,可用于产生中心对称波形。
当CN0复位配置为来自自身CCU0单元(即CN0>=CM0-1):
当CN0复位配置为来自前个通道触发信号]或者外部TIM捕捉触发信号:
向上向下计数方式的PWM输出波形如上图,SL定义了通道极性,当CN0等于CM0(实际CM0-1)或者当前个通道触发信号TRIG_[x-1]产生或者外部TIM捕捉触发信号TIM_EXT_CAPTURE(x)产生,CN0方向改变。
当CN0复位配置为来自自身CCU0单元(即CN0>=CM0-1):
当CN0复位配置为来自前个通道触发信号]或者外部TIM捕捉触发信号:
备注:TC2XX系列芯片没有向上向下计数模式。