PWM配置详解
涉及模块 PWM PORT MCU MCL
PWM的英文全称是"Pulse Width Modulation",中文翻译为"脉冲宽度调制"。PWM的波形是一种周期固定的、宽度可调的方波。我们可以通过调节PWM波的占空比实现灯泡亮度、电机速度等控制。
首先在PWM模块下建立两个PWM通道(后续解释为什么是两个通道)
双击进入通道的配置,在这里我们可以设置默认周期和占空比,可以看到PWM的硬件通道和时钟参考点报错,且当前无法选择配置,先配置硬件通道
在PwmEmios选项卡下新增一个配置项
双击进入,选择Emios硬件,这里我们选择Emios_0
然后在Emios Channels下新增两个channnel
双击进入channel,配置项比较多,可以看一下用户手册,主要可以看一下模式配置,其他根据所需模式进行调节即可,这里主要讲一下counter bus,这里的counter bus有internal 和bus A 到bus F,PWM在产生周期方波的时候需要一个类似于timer一样的参考,internal就是PWM通道自带的timer,选择其他bus就是外部的timer,选择外部bus的一个好处是,可以给各PWM通道产生一个统一的timer,也就是说我们可以通过这个机制去产生同步PWM组,这在电机控制中是非常有用的
要实现同步PWM,需要我们配置好外部的bus,这部分需要在MCL中进行配置,打开MCL,在genenral界面下勾选此API
然后在Emios common下新建一个配置项,双击进入,这里我们选择Emios_0
然后电机Emios master bus,新建一个bus,在emios_0中能用于bus的channel分别为0,8,16,22,23,这里我们选择0,bus和各counter之间的关系如下图
回到pwmemios channel的配置项,我们分别选择emios的CH1和CH2
模式先择如下:
Counter选择如下
接下来我们去配置PWM的时钟参考点,我们选择了Emios作为生成PWM的硬件,时钟参考点要根据Emios来选择,可以看到312有两个Emios硬件,且时钟源都来自于CORE CLK
打开MCU的时钟配置,新增一个名为CORE CLK的参考点
然后在MCU的模式配置下,对Emios_0进行使能
然后回到pwm channel,选择我们配置好的Emios通道和时钟参考点
最后在PORT模块下配置两个通道,方向为OUT,配置到EMIOS_0_CH1和EMIOS_0_CH2即可