• 资料介绍
  • 在线预览
  • 相关推荐
申请入驻 产业图谱

LAT1432 变频控制中的TIMER寄存器更新话题

03/06 14:21
543
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

LAT1432 变频控制中的TIMER寄存器更新话题

582.81 KB

1、引言

采用 LLC 功率拓扑的变换器需要采用 PFM(Pulse Frequency Modulation)控制方式完成环路控制,由于开关频率变化范围宽,在高频段无法完成单开关周期控制,所以一般的做法是将环路算法的运行频率和开关频率解耦,即环路算法运行频率不与开关频率关联,而是以一个定频的方式运行并按照环路计算结果进行开关频率的更新。由于环路算法运行频率与开关频率不同步,经常会出现当向定时器的多个寄存器进行写入操作中发生了更新事件,出现部分寄存器更新延迟,从而导致 PWM 波形异常,严重时上下桥臂功率管直通损坏。

2、寄存器更新问题的产生

寄存器更新延时的产生原理如下图所示,环路算法定时运行,图形上脉冲表示环路算法此时正在进行寄存器写入操作,如果在所有寄存器写入操作还未完成的时候发生了更新事件(比如定时器周期事件),在使能了预加载功能的情况下,此时会造成更新事件前写入的寄存器值立即生效,而更新事件后写入的寄存器值需要延迟到下次更新事件才生效,这种情况下可能导致定时器所产生的 PWM 输出波形异常。

3、解决方法

为了解决以上描述中的寄存器更新问题,在高精度定时器中有个专门的寄存器位 MUDIS 和TxUDIS(x=A/B/C/D/E/F)来控制更新操作的使能与屏蔽,且所有位都在同一个寄存器中,在软件中可以通过一个操作同时完成所有内部定时器更新操作的使能/屏蔽。

另外,在无法屏蔽的更新操作的情况下,则需要选择合适的时间点进行写寄存器操作,以防止写操作未完成就发生了更新事件。比如在写寄存器操作前读取定时器计数器的值并与当前的周期值进行比较(周期事件触发寄存器更新操作),只有当时间间隔确保能够完成所有写寄存器操作的情况下,才进行写操作,否则放弃在本计数周期内更新。

也可以选择再使能一个高优先级中断,比如周期中断,在算法中断服务程序中完成寄存器值的计算后,再开启周期中断,待下一个周期中断来到时,在周期中断中进行寄存器写操作,完成后再将周期中断关闭,基本流程如下:

算法中断服务程序—>计算寄存器值—>使能周期中断

周期中断服务程序—>寄存器写操作—>关闭周期中断

按照以上的思路,一个实际的更新示例如下,C1 和 C2 为 LLC 半桥变换器驱动波形,C4 的脉冲表示进入了环路算法中断,在完成环路运算后使能定时器周期中断,C3 的脉冲表示进入定时器周期中断进行寄存器写操作,完成后屏蔽定时器周期中断。每次频率修改,PWM 输出正常,没有出现异常。

4、小结

本文介绍了在 PFM 控制模式下定时器寄存器更新存在的问题和产生的原因,在高精度定时器中可以使用更新操作的使能与屏蔽来避免该问题,同时给出了在不屏蔽更新操作的情况下如何通过选择合理时间点和使用中断方式进行定时器寄存器写入操作的方案,让所有寄存器能够同时完成更新,保证 PWM 输出波形的正常。

在线预览

相关推荐