ZHDA102 March   2026 MSPM0G3519

 

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