你好!欢迎来到深圳市颖特新科技有限公司!
语言
当前位置:首页 >> MM32/灵动微电子 >> 灵动微-电动马达方案中需要使用到六步PWM输出功能

灵动微-电动马达方案中需要使用到六步PWM输出功能

关键字:灵动微电子 电动马达方案 PWM输出功能 作者: 来源: 发布时间:2022-06-08  浏览:10
针对电动马达方案中需要使用到六步PWM输出功能,本篇文章将向大家介绍如何使用MM32L0系列MCU实现六步PWM输出功能。


MM32高级控制定时器TIM1有互补输出的功能,我们便可以利用定时器 TIM1 来产生 3 对 6 路的互补 PWM 输出。MM32高级控制定时器TIM1产生六步PWM输出,用于驱动三相电机,对应着直流无刷电机的六步换相。


六步 PWM 产生:当在一个通道上应用了互补输出时, OCxM、CCxE 和 CCxNE位的预载位有效,这些预装载位被传送到影子寄存器,因此可以预先设置好下一步的配置,并在同一时间更改所有通道的配置。COM 事件可以通过硬件(在 TRGI的上升沿) 设置或者软件修改TIM1_EGR 寄存器的 COM 位来产生。


当 COM 事件发生时会设置一个标志位(TIM1_SR 寄存器中的 COMIF 位),这时如果已设置了TIM1_DIER 寄存器的 COMIE 位,则产生一个中断;如果已设置了 TIMx_DIER寄存器的COMDE位,则产生一个DMA请求。


下图显示当发生 COM 事件时,三种不同配置下OCx和OCxN 输出。


                           COM事件


在本次实验中主要教大家如何配置PWM的输出状态以及输出有效电平设置,在主函数的循环中更新PWM状态输出,将不使用中断方式,用户在实际电机配置程序中可以直接采用该配置方式移植到TIM1_BRK_UP_TRG_COM_IRQHandler函数中。


程序配置:


程序配置


1>   开启定时器TIM1的时钟


2>   初始化 TIM1,设置 TIM1 的 ARR 和 PSC,向上计数模式


3>   设置BDTR,使能刹车输入信号,高电平有效


4>   设置 TIM1_CH1/CH1N,TIM1_CH2/CH2N,TIM1_CH3/CH3N的 PWM 模式,PWM 模式2,使能 TIM1 的 CHx 输出


5>   使能TIM1_CR1的自动重装载预装载允许位


6>   使能定时器TIM1
定时器


main函数配置流程:


1>   systick延时函数初始化


2>   GPIO口配置,PA8/PB13,PA9/PB14,PA10/PB15,分别为TIM1的三组互补通道输出:CH1/CH1N,CH2/CH2N,CH3/CH3N,复用推挽输出,最大输出速度50MHz, 除此之外,还有一个引脚可以配置也可以不配置,那就是TIM1_BKIN对应的引脚PB12,TIM1_BKIN的功能是检测故障,如果当PB12检测到高电平(取决于刹车有效电平的设置)时,就表示检测到故障,然后它会自动关闭定时器。


3>   定时器TIM1初始化及输出配置


4>   PWM输出模式配置,在我配置的程序中大家可以看到对TIM1_CCMR1\TIM1_CCMR2\TIM1_CCER三个寄存器进行操作即可实现需要的功能


实验结果:


实验结果


从逻辑分析仪抓的波形可以看到在6个通道中,如果一个通道处在PWM输出模式,另外的5个通道处在关闭状态,依次轮询该过程。


需要弄清楚我对上述三个寄存器做了什么操作需要参考UM_MM32L0xx文档的第13.4.7章节、13.4.8章节、13.4.9章节三个章节寄存器


寄存器


如上图所示:位3是输出比较1预装载使能位,TIMx_CCR1的预装载值在更新事件到来时加载到当前寄存器,该位需要置1,位6:4是PWM输出比较模式配置,如果CCMR1的输出比较1配置0x48表示强制为无效电平,0x58表示强制为有效电平,0x68表示PWM模式1。


定时器的配置模式如上所示,但是输出到GPIO口的电平状态还需要查表34,根据表中的定义配置所需要的电平状态。


定时器


用户在配置电机所需要的PWM功能时,只需要根据对TIM1_CCMR1 \ TIM1_CCMR2 \ TIM1_CCER 三个寄存器进行操作,如果对寄存器的操作值不是很清楚,建议大家在调试模式下,直接通过修改该三个寄存器的值,然后查看对应的GPIO得状态变化,然后记录下来,在程序中将测试值写入到相对应的寄存器中,重新下载程序到MM32L0系列 MCU中观察对应的GPIO的电平状态。

编辑:ls  最后修改时间:2022-06-08

联系方式

0755-82591179

传真:0755-82591176

邮箱:vicky@yingtexin.net

地址:深圳市龙华区民治街道民治大道973万众润丰创业园A栋2楼A08

Copyright © 2014-2023 颖特新科技有限公司 All Rights Reserved.  粤ICP备14043402号-4