[单片机芯片] 【CH32F207VCT6】开发例程+ 06 实测控制伺服电机

[复制链接]
418|0
 楼主| 聪聪哥哥 发表于 2025-9-30 16:02 | 显示全部楼层 |阅读模式
本帖最后由 聪聪哥哥 于 2025-7-30 21:30 编辑

一:PWM知识分享
PWM(Pulse Width Modulation 脉宽调制)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。它是一种对模拟信号电平进行数字编码的方法。是指在一定时间内波形的高电平(即 1 状态)所占用的时间比例。通过高分辨率计数器的使用,方波占空比被调制用来对一个模拟信号的电平进行编码。PWM 信号任然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有,要么完全无。比如我们的电压输出是 5V的,那么经过改变 PWM 的占空比,可以达到在一定时间内输出 3.3V 或者 1.3V 的效果。
PWM是脉冲宽度调制,具有两个非常重要的参数:频率和占空比。
频率:PWM的频率是整个周期的倒数。
占空比:占空比是指一个周期内高电平所占的比例。

之前使用CH32定时器的PWM脉宽技术测试过小夜灯。今天和大家分享一下使用定时器精准控制电机的测试过程。
二:CH32 高级定时器知识分享:高级定时器的结构大致可以分为三部分,即输入时钟部分,核心计数器部分和比较捕获通道部分。
高级定时器的时钟可以来自于 PB 总线时钟(CK INT),可以来自外部时钟输入引脚(TIMx_ETR),亦可以来自于其他具有时钟输出功能的定时器(ITRx),还可以来自于比较捕获通道的输入端(TIMxCHx)。这些输入的时钟信号经过各种设定的滤波分频等操作后成为 CK PSC 时钟,输出给核心计数器部分。另外,这些复杂的时钟来源还可以作为 TRG0 输出给其他的定时器、ADC 和 DAC 等外设。
高级定时器的核心是一个 16 位计数器(CNT)。CK PSC 经过预分频器(PSC)分频后,成为 CK CNT并输出给 CNT,CNT 支持增计数模式、减计数模式和增减计数模式,并有一个自动重装值寄存器(ATRLR)在每个计数周期结束后为 CNT 重装载初始值。另外还有个辅助计数器在一旁计数 ATRLR 为 CNT 重装载初值的次数,当次数达到重复计数值寄存器(RPTCR)里设置的次数时,可以产生特定事件。
高级定时器拥有四组比较捕获通道,每组比较捕获通道都可以从专属的引脚上输入脉冲,也可以向引脚输出波形,即比较捕获通道支持输入和输出模式。比较捕获寄存器每个通道的输入都支持滤波、分频和边沿检测等操作,并支持通道间的互触发,还能为核心计数器 CNT 提供时钟。每个比较捕获通道都拥有一组比较捕获寄存器(CHxCVR),支持与主计数器(CNT)进行比较而输出脉冲。
三:CH32 的PWM输出模式 
PWM 输出模式是定时器的基本功能之一。PWM 输出模式最常见的是使用重装值确定 PWM 频率,使用捕获比较寄存器确定占空比的方法。将 0CxM 域中置 110b 或 111b 使用 PWM 模式1 或模式 2,置0CxPE 位使能预装载寄存器,最后置 ARPE 位使能预装载寄存器的自动重装载。由于在发生一个更新事件时,预装载寄存器的值才能被送到影子寄存器,所以在核心计数器开始计数之前,需要置 UG 位来初始化所有寄存器。在 PWM 模式下,核心计数器和比较捕获寄存器一直在进行比较,根据 CMS 位,定时器能够输出边沿对齐或中央对齐的 PWM 信号。




四:PWM编写过程:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

108

主题

307

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部