带32位MCU和高精度ADC的SoC产品(四)-STM32高精度ADC

01前 言

在开发指南(三)中,我们简单介绍了LCD显示的基本用法,本章我们介绍一下PWM功能的相关内容,更多细节内容参考SD93F115应用手册第21章节。

02PWM结构框图

PWM又称脉宽调制器,通过配置相应寄存器可以输出一个周期和占空比可调的脉冲信号,其结构框图如图1。

带32位MCU和高精度ADC的SoC产品(四)-STM32高精度ADC

图1. PWM结构框图

从图中我们可以看到,整体结构包含时钟源选择、使能位控制、分频选择和输出模式控制等,而周期和占空比由不同的寄存器分别设置,因此要确定输出方波的周期时,要先确定PWM的时钟源和分频选择,再写入周期寄存器,最后根据周期寄存器的结果计算相应的占空比码值。

03PWM输出

接下来我们通过对PWM1模块(SD93F115有2路PWM资源)的初始化函数简单了解下快速计算PWM1周期寄存器值和占空比寄存器值(见图2),第一步还是先开启外设时钟源,然后我们先将PWM1时钟源设定为IHRC = 24MHz,时钟进行2分频,假定输出一个频率约为2kHz的方波,周期即为0.0005S,那么周期寄存器值=(IHRC / 2)* 0.0005 = 6000,转为十六进制数即为0x1770,然后选择输出模式为PWM输出,最后假定占空比要设为25%,则占空比寄存器值为周期寄存器值*25%,即为0x05dc,还可以选择占空比输出的电平状态,我们默认保持高电平,最后将PWM1使能打开,如此便能控制PWM1输出一个频率为2kHz,占空比为25%的方波了。

带32位MCU和高精度ADC的SoC产品(四)-STM32高精度ADC

图2. PWM初始化函数

PWM1初始化完成后,我们再做个简单的功能验证(见图3),在保持输出频率2kHz的情况下,不断将占空比设置从0%逐一递增至100%,并将占空比码值显示在LCD屏上。

带32位MCU和高精度ADC的SoC产品(四)-STM32高精度ADC

图3.PWM测试函数

在明确输出频率是2kHz的情况下,我们就能算出每1%的占空比对应60个码值了,所以我们直接调用库函数快速设置占空比,并将占空比码值显示在LCD屏上,最终我们可以用示波器观察PWM1引脚的输出和LCD屏上显示的码值变化。

04开发问题简析

开发阶段使用PWM功能要重点关注时钟源与分频的设置,计算清楚周期和占空比的码值。

05总 结

本文简单介绍了PWM功能的使用以及周期和占空比码值的计算方法,具体的配置要根据实际方案的需求进行合理的选择。

审核编辑:汤梓红

免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:带32位MCU和高精度ADC的SoC产品(四)-STM32高精度ADC https://www.yhzz.com.cn/a/7422.html

上一篇 2023-04-18 00:38:55
下一篇 2023-04-18 00:48:26

相关推荐

联系云恒

在线留言: 我要留言
客服热线:400-600-0310
工作时间:周一至周六,08:30-17:30,节假日休息。