PWM例程

工程中经常会用到PWM,例如控制电机转速等等,这一节我们讲一下PWM例程。

0. PWM生成原理

这里仅做简单的示意,CNT他可以是直角三角形也可以是等腰三角形的,即可以up或者down或者up+down计数。具体的原理可以在网上搜一下学习。

1. 示例一: PWM_base例程

1.1 CubeMX初始化设置

cubemx的设置如下,这里设置了TIM2 PWM CH3输出, 对应了引脚PA2, 然后解释一下CubeMX的设置参数:

  1. 分频和计数, 上一讲说过了;
  2. mode1和mode2, 分别是不同的比较模式

  3. pulse为载波值,即上图PWM原理中的红色的比较线的值,可以动态的调整它来调节占空比.

  4. CH Polarity指的是通道输出的极性,它决定了PWM波形的有效电平。例如,当CH Polarity设置为High(高电平)时,PWM信号在计数器达到比较值之前会输出高电平。

1.2. 代码测试

设置完后生成代码,然后打开TIM,参考仓库中示例的程序,然后烧录后测试,我们拿到逻辑分析仪进行分析。

pulse设置为300时, 波形如下图

sConfigOC.Pulse = 300;

pulse设置为300时, 波形如下图

sConfigOC.Pulse = 800;

2. 示例二: PWM互补输出带死区例程

这里多用于数字电源中的MOS管桥臂的GS端的信号给定,上下管需要互补且带死区防止直通,可以拿到仓库的例程自行摸索,因为深入的东西需要自行摸索了,这里我只带一下大致的。

3. 课后作业

  1. 熟悉完成仓库给的PWM例程.
  2. 用PWM动态调节载波,实现呼吸灯.
  3. 自行学习更多的更复杂的PWM操作.
Copyright © 油炸鸡开源硬件 | 渝ICP备2024035140号-2 | all right reserved,powered by Gitbook更新时间: 2025-06-07 11:32:49

results matching ""

    No results matching ""