PWM输出突然停止
用TIM1生成互补PWM控制电机,运行半小时后某通道无输出。冷却后恢复,怀疑是过温保护,但芯片温度实测仅45℃,寄存器配置会被意外修改吗? 也行不是“温度”,而是外设“状态锁定”或“故障触发” 看起来不像是温度问题,你有没有实时查看TIM1的状态寄存器,看看是不是进了中断或者被强制关闭了? 电机控制是不是还用了死区时间或者刹车机制?这些设置也有可能在运行中触发关闭输出。 会不会是DMA或者中断写坏了寄存器?可以试试加个校验机制看看配置有没有被篡改。 建议你在异常发生时,用SWD连上芯片,把寄存器dump下来分析一下,有时能看出端倪。 有没有检查电源波动?有时候VDD电压不稳,会影响PWM模块的逻辑判断。 看描述感觉像是保护机制触发了,建议确认下是否开启了Break功能或内部比较器触发。 建议加个定时log,定时打印一下关键寄存器,比如CCER、CR1等,看是啥时候变了。 如果你在用互补PWM,还得确认是否两个通道配对正常,有没有主从配置异常。 有些外设,比如电机驱动芯片自身带保护功能,也可能误触导致PWM被拉低。 实在不行你可以加个外部LED指示,失效那一瞬间能不能看到关断是程序行为还是电路行为。 上示波器检查一下PWM输出引脚状态。 检查PWM输出引脚若引脚悬空或驱动能力不足,尝试外接上拉/下拉电阻测试。 检查PWM驱动的负载是否存在短路、过流或过热保护触发。 STOP/STANDBY模式会关闭定时器时钟,需低功耗,改用睡眠模式并保持定时器运行。 电源稳定与否? TIMx_CR1寄存器的CEN位被清零? 中断或DMA冲突? 添加看门狗,在PWM停止时触发复位。
页:
[1]