| | | | | 控制漏洞,既然保护检测时间为5ms,就不能检测到电压超过50V立即关闭pwm输出。
5ms内可能有很多事情发生,超乎你的估计,建议控制在一个PWM周期内,也就是要逐波限流的意思,最大占空比(Ton)限制的意思。
此外,用stm32做LED驱动虽然奢华,但却可能为控制和保护引入低级错误,什么中断、复位、看门狗都可能程序跑飞,用这些功能做开关电源要慎之又慎。
|
|
|
| | | | | | | 感谢版主指点,在5ms检测电压一次情况下,负载端接示波器发现无负载时,驱动板会5秒进行升压一次,每次升压到68伏就会保护,程序中设置的是超过60V保护不再输出,间隔5秒后再次尝试输出,如此循环。
尝试了版主说的在每个pwm周期进行电压检测,现象是程序死机,因为pid调节是放在定时中断里(10us进一次,pid运算耗2us),
我将电压判断也放在此中断会造成耗费时间过多造成程序紊乱。 另外我怀疑是否是电容质量存在问题,
因为我用示波器观察过无论是有负载时还是无负载尝试输出时的负载电压都没有超过68伏的情况.
|
|
|
| | | | | | | | | 做开关电源,要养成习惯,不用中断。如果10us内出现几个中断,又没有确保中断前把PWM锁到低电平,一个脉冲就够你受了。 |
|
|
|
| | | | | | | | | | | | | 这只是编程问题,很容易实现,也是做嵌入式转行来做开关电源的人最容易犯的错误。
|
|
|
| | | | | | | | | | | | | | | 版主意思是不通过中断也可以实现环路pid控制吗?另外我这里中断控制的优先级设为了最高,不会受到其他中断的影响的。
|
|
|
| | | | | | | | | | | | | | | | | 优先级最高,只是进入中断,问题在于能不能及时退出中断。
|
|
|
|
| | | | | | | | | | | | | | | | | | | | | 在某个时刻发生中断,肯定按优先级别进入中断,优先级别是对中断前的优先。
发生中断后,在中断处理过程中,也可能发生中断,这个新的中断处理需要时间,也许瞬间完成,也许进入死循环(估计奔驰车发飙事件就是如此)。
|
|
|