|
0 1 前言 客户选择STM32G0B1系列MCU作为主控,完成移相全桥+同步整流的控制,客户所使用的功率拓扑以及对PWM发生的要求如下:
0 2 解决方案 按照客户所给拓扑以及对PWM发生的要求,对于原边需要两对互补带死区插入的PWM,且两对之间要能实现移相功能,要实现该功能必须要有两个能产生互补PWM的定时器;副边需要两路独立的PWM,最好可以实现双沿可控。STM32G0B1系列MCU所具备的定时器资源如下表所示:
基于以上的资源,选择TIM1和TIM15作为互补PWM对的产生,且实现两对PWM之间的移相,假设以TIM1作为master定时器,TIM15作为slave定时器,由于TIM1和TIM15之间无法直接同步,如下表所示:
这里借助TIM3来实现级联,即TIM1→TIM3→TIM15,首先TIM3与TIM1同步,二者相位完全一致,由TIM1的UEV事件触发;然后再通过TIM3与TIM15进行同步,由TIM3的OC1事件触发,二者的相位差由比较事件OC1确定(即CCR1的值),最终实现TIM1与TIM15之间的相位的调节,实现方式简单示意如下,通过以下的方法可以生成符合客户要求的两对原边驱动PWM驱动A/B和C/D。
对于副边的同步整流驱动E/F,采取的PWM发生方案为:
按照以上的方法,E/F的导通点与C/D的导通点同时,E/F的关断点与B/A的关断点同时,E和F的相位差为180°。通过TIM3产出对应的PWM,本方案中使用TIM3_CH2,通过TIM4产生对应的PWM,本方案中使用TIM4_CH2。TIM4与TIM3之间需要移相180°,本方案中再引入TIM2,通过TIM1→TIM2→TIM4来实现TIM3和TIM4之间的180°移相。完成的定时器级联关系如下图所示:
定时器对应的具体设置如下: TIM1
TIM2
TIM3
TIM4
TIM15
基于以上描述的方案,定时器产生的同步和所产生的PWM示意图如下:
对比客户所给出的PWM时序和要求,唯一的不同点在于PWM_E和PWM_F的关断点,本方案的关断点相对于客户的要求,E/F提前关断,提前的时间为A和B的死区时间,但也满足客户的需求。另外上述的不同点可以通过调整TIM3和TIM4相对TIM1的移相值来消除,有兴趣的朋友可以尝试,此处不再赘述。 0 3 小结 本文介绍了如何基于STM32G0B1系列MCU,灵活地应用了片上定时器的级联同步功能完成PWM产生方案的设计,以满足客户移相全桥+同步整流PWM的需求。由于仅仅使用了普通的定时器,该方案可以很容易的移植到其他系列MCU,帮助客户使用更低成本的MCU完成其所希望的功能。 |
DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
【福利三:逢7发帖赢大礼】8、基于STM32G070板子的Ymodem串口协议IAP Bootloader开发
【福利三:逢7发帖赢大礼】7、基于STM32G070板子TF卡的FATFS移植
【福利三:逢7发帖赢大礼】6、基于STM32G070板子spiflash的FATFS移植
【福利三:逢7发帖赢大礼】5、基于STM32G070板子IRDA红外遥控接收解码
【福利三:逢7发帖赢大礼】4、基于STM32G070板子SPI flash 移植SFUD库
【福利三:逢7发帖赢大礼】基于STM32G070板子的uart shell移植设计
【福利三:逢7发帖赢大礼】3、基于STM32G070板子的YModem串口协议通信
【福利三:逢7发帖赢大礼】2、基于STM32G070板子的OLED移植U8G2库
实战经验 | ClassB功能安全认证代码与应用代码分区的实现要点
微信公众号
手机版