ZHDA102 March   2026 MSPM0G3519

 

  1.   1
  2.   摘要
  3.   商标
  4. 1 简介
  5. 2 空闲低电平状态:PWM 输出通道低电平状态配置
  6. 3 非对称 PWM:具有相移控制功能的双路同步 PWM 生成
    1. 3.1 使用相位加载功能
      1. 3.1.1 主要计时器(主计时器)的配置
      2. 3.1.2 辅助计时器的配置
      3. 3.1.3 交叉触发功能的实现
    2. 3.2 使用辅助捕获/比较通道
  7. 4 位操作 (Bit-Banging) 仿真:基于软件的通信协议实现
    1. 4.1 使用 TIMA 仿真 UART Rx
    2. 4.2 使用 TIMA 仿真 UART Tx
  8. 5 基于反馈的 PWM 生成
    1. 5.1 基于反馈的 PWM 信号复制
    2. 5.2 使用输入基准生成延迟的 PWM 信号
  9. 6 延迟计时器启动:具有可配置延迟的同步计时器实例启动
  10. 7 基于硬件事件停止正在运行的计时器
  11. 8 动态 PWM 更新:占空比和时间周期调整
    1. 8.1 影子加载和影子比较功能
    2. 8.2 使用 DMA 生成任意信号
  12. 9 总结
  13. 10参考资料

空闲低电平状态:PWM 输出通道低电平状态配置

TIMA 提供了一种机制,让所有捕获/比较 (CC) 通道都具有互补通道。该互补通道可以生成与主 CC 通道输出反相的信号。对于电机应用,两条输出通道最初必须均为低电平。

当 CTRCTL.EN 位为零时,CC 通道输出取决于 OCTL.CCPIV。如果 CC 和互补通道都要保持低电平,则解决方案是使互补通道的 IOMUX 保持禁用状态,并在以下情况下启用:

  • 在边沿对齐模式下,保持互补 CC 通道的 IOMUX 处于禁用状态,直到启用 CTRCTL.EN

  • 在中央对齐模式下,保持互补 CC 通道的 IOMUX 处于禁用状态,直到 CTRCTL.EN 被启用并且 CC 通道满足第一个 CC 事件

/* Configure Complementart Channel's IOMUX in PULL_DOWN state initially */
SYSCONFIG_WEAK void SYSCFG_DL_GPIO_init(void)
{
    DL_GPIO_initPeripheralOutputFunction(GPIO_PWM_0_C0_IOMUX,GPIO_PWM_0_C0_IOMUX_FUNC);
    DL_GPIO_enableOutput(GPIO_PWM_0_C0_PORT, GPIO_PWM_0_C0_PIN);
    DL_GPIO_setDigitalInternalResistor(GPIO_PWM_0_C0_CMPL_IOMUX,DL_GPIO_RESISTOR_PULL_DOWN);
}

/* Enable Counter with CTRCL.EN bit and configure the IOMUX back to PWM mode */
int main(void)
{
    SYSCFG_DL_init();
    DL_TimerA_startCounter(PWM_0_INST);
    DL_GPIO_initPeripheralOutputFunction(GPIO_PWM_0_C0_CMPL_IOMUX,GPIO_PWM_0_C0_CMPL_IOMUX_FUNC);
    while (1) {
        __WFI();
    }
}
 CC 输出设置为空闲低电平时的 PWM 波形图 2-1 CC 输出设置为空闲低电平时的 PWM 波形

此外,TIMA 还支持一项功能,其中基于软件的配置可用于覆盖输出。CCACT 中的 SWFRCACT_CMPL(互补通道上的软件强制)字段可用于将 CC 输出覆盖为低电平。根据应用,可以使用外部事件或在中断服务例程中清除 SWFRCACT_CMPL 字段。

注:

SWFRCACT_CMPL 在设置 CTRCTL.EN 后生效。