PWM配置详解

涉及模块 PWM PORT MCU MCL

PWM的英文全称是"Pulse Width Modulation",中文翻译为"脉冲宽度调制"。PWM的波形是一种周期固定的、宽度可调的方波。我们可以通过调节PWM波的占空比实现灯泡亮度、电机速度等控制。

首先在PWM模块下建立两个PWM通道(后续解释为什么是两个通道)

双击进入通道的配置,在这里我们可以设置默认周期和占空比,可以看到PWM的硬件通道和时钟参考点报错,且当前无法选择配置,先配置硬件通道

在PwmEmios选项卡下新增一个配置项

bioss里面pwm biospwm设置_嵌入式硬件

双击进入,选择Emios硬件,这里我们选择Emios_0

bioss里面pwm biospwm设置_ios_02

然后在Emios Channels下新增两个channnel

bioss里面pwm biospwm设置_配置项_03

双击进入channel,配置项比较多,可以看一下用户手册,主要可以看一下模式配置,其他根据所需模式进行调节即可,这里主要讲一下counter bus,这里的counter bus有internal 和bus A 到bus F,PWM在产生周期方波的时候需要一个类似于timer一样的参考,internal就是PWM通道自带的timer,选择其他bus就是外部的timer,选择外部bus的一个好处是,可以给各PWM通道产生一个统一的timer,也就是说我们可以通过这个机制去产生同步PWM组,这在电机控制中是非常有用的

bioss里面pwm biospwm设置_单片机_04

要实现同步PWM,需要我们配置好外部的bus,这部分需要在MCL中进行配置,打开MCL,在genenral界面下勾选此API

bioss里面pwm biospwm设置_bioss里面pwm_05

然后在Emios common下新建一个配置项,双击进入,这里我们选择Emios_0

bioss里面pwm biospwm设置_ios_06

然后电机Emios master bus,新建一个bus,在emios_0中能用于bus的channel分别为0,8,16,22,23,这里我们选择0,bus和各counter之间的关系如下图

bioss里面pwm biospwm设置_单片机_07

回到pwmemios channel的配置项,我们分别选择emios的CH1和CH2

模式先择如下:

bioss里面pwm biospwm设置_bioss里面pwm_08

Counter选择如下

bioss里面pwm biospwm设置_ios_09

接下来我们去配置PWM的时钟参考点,我们选择了Emios作为生成PWM的硬件,时钟参考点要根据Emios来选择,可以看到312有两个Emios硬件,且时钟源都来自于CORE CLK

bioss里面pwm biospwm设置_嵌入式硬件_10

打开MCU的时钟配置,新增一个名为CORE CLK的参考点

bioss里面pwm biospwm设置_嵌入式硬件_11

然后在MCU的模式配置下,对Emios_0进行使能

bioss里面pwm biospwm设置_配置项_12

然后回到pwm channel,选择我们配置好的Emios通道和时钟参考点

bioss里面pwm biospwm设置_嵌入式硬件_13

最后在PORT模块下配置两个通道,方向为OUT,配置到EMIOS_0_CH1和EMIOS_0_CH2即可