历史上的今天

今天是:2026年03月14日(星期六)

2023年03月14日 | STM32F0单片机 PWM + ADC 控制有刷电机

发布者:LogicLeaper 来源: zhihu关键字:STM32F0  单片机  PWM  ADC 手机看文章 扫描二维码
随时随地手机看文章

1.有刷电机驱动电路

有刷电机是电机里面最简单,也是历史最悠久的一种,到现在仍然广泛应用于各个领域。他的控制很简单,在电机的两个电极加正向电压,则正向旋转,如果加反向电压,则旋转方向也反过来。电机的转速可以通过控制加在电极上的电压来调节。

在电机控制电路中最常用的器件就是 MOS 管了。可以分为两个大的类型:P 沟道 MOS 和 N 沟道 MOS。MOS 管可以简单的理解为一个自来水阀门,Gate 是控制端,调节 Drain 和 Source 端之间流过的电流大小。


下面是两种 MOS 的典型用法。P 沟道的 MOS 一般 S 接电源正极,然后 Vgs 需要一个负电压来打开电流通道,而 N 沟道的 S 极一般接电源的负极,Vgs 需要一个正电压来打开电流通道。

资料来源于 IOR 公司数据手册

我们先从一个最简单的驱动电路开始。单片机控制 MOS 管栅极为高时,电流从电源经过电机和 MOS 管到地。当栅极为低时,MOS 管断开,此时电机线圈内的电流继续通过续流二极管回流电机的正极。我们通过调节栅极控制端的PWM占空比,就可以控制电机的转速。

2.TIM模块

TIM 模块最重要的三个寄存器是:

Counter Register (TIMx_CNT) 计数寄存器

Auto-Reload Register (TIMx_ARR) 重置寄存器

Capture/compare mode register 1 (TIMx_CCMRx) 输入捕获/输出比较寄存器


Counter 在时钟的驱动下计数

Auto-Reload 设定计数的最大限制值

Capture/Compare 锁存一个事件发生时的计数值到Capture/计数达到 Compare 值后触发一个事件

在 PWM 模式下,Auto-Reload 寄存器设定PWM的周期,Compare 设定占空比。

有一点需要注意的是一个 TIM 模块只有一个计数器和一个重置寄存器,而有多个输入捕获/输出比较寄存器。所以一个 TIM 模块的多个通道可以设置不同的占空比,但周期都是相同的。

所以我们在选用 MCU 的时候,如果需要产生多种周期的 PWM,不仅要看它的定时器模块一共有多少通道数,还要看是否有足够的独立 TIM 模块。

3.代码

我们在下面这个工程的基础上修改来实现用一个可调电阻控制PWM占空比,来控制电机的转速。

STM32Cube_FW_F0_V1.11.0ProjectsSTM32F030R8-NucleoExamplesTIMTIM_PWMOutputMDK-ARMProject.uvprojx

这个工程默认使用TIM3模块输出4路PWM,我们可以只保留其中一路。

然后把ADC采样的代码添加进来:

Step 1:

stm32f0xx_hal_conf.h

#define HAL_ADC_MODULE_ENABLED


Step 2:

main.h

添加ADC相关宏定义


Step 3:

stm32f0xx_hal_msp.c

添加ADC使用的引脚的初始化代码

Step 4:

把ADC的驱动文件添加进工程,在主程序初始化ADC。

Step 5:

读取 ADC 的值,写入 TIM 的 CCR 寄存器,观察 PWM 占空比的变化。根据电机的特性,还可能需要改变 PWM 的周期。

如果需要参考代码,可以在 Github 搜索 TopSemic 找到。

参考资料:

PM0215 STM32F0xxx Cortex-M0 programming manual

UM1785 Description of STM32F0 HAL and low-layer drivers

STM32F030 Datasheet

STM32F030 Reference Manual


关键字:STM32F0  单片机  PWM  ADC 引用地址:STM32F0单片机 PWM + ADC 控制有刷电机

上一篇:当前STM32几种最流行的开发环境对比
下一篇:STM32F0单片机快速入门十: 用 SPI HAL 库读写W25Q128

推荐阅读

3月13日晚间,长电科技发布公告称,公司与国家大基金在当天签署《股份认购协议》的《补充协议》,长电科技将非公开发行的募集资金总金额为不超过40.50亿元(含40.50亿元),其中,国家大基金认购本次非公开发行股票的总金额为不超过 29 亿元(含 29 亿元)。 根据《补充协议》,长电科技本次募集资金将投向于年产20亿块通信用高密度集成电路及模块封...
台基股份发布对外投资设立北京台基半导体有限公司的公告,同意公司拟出资10,000万元人民币在北京亦庄经济开发区投资设立全资子公司北京台基半导体有限公司。公告披露,2018年11月,台基股份与北京亦庄国际投资发展有限公司(以下简称“亦庄国投”)、深圳海德复兴资本管理有限公司(以下简称“海德资本”)签订《战略合作协议》(以下简称“合作协议”)。合作协...
使用TIM0的频率计算公式f=FOSC/4/PS/TMR0 (TMR0是TIM0的数据寄存器)void main(){ OSCCON = 0x78;//主频率为16M 即FOSC = 16M __delay_ms(50); ANSC6 = 1; TRISC6 = 0; RC6 = 1;//RC6接了一盏LED OPTION_REG = 0xc0;/*TMR0CS = 0(内部指令周期时钟 (F OSC /4)) PSA=0 (预分频器分配给...
去年三月份,比亚迪“刀片电池”的发布让如日中天的三元锂电池遭受暴击,也让不少担心电动车自燃的摇摆消费者坚定了购买信心。时隔一年,搭载磷酸铁锂“刀片电池”的比亚迪汉EV在终端市场持续走红,甚至跟豪华品牌同台竞技;刚刚发布的秦PLUS DM-i也收获颇丰,在终端市场反响强烈。比亚迪“刀片电池”的影响有多大?目前小鹏P7将搭载磷酸铁锂电池的消息传...

史海拾趣

问答坊 | AI 解惑

倒计时程序有问题

《无线电》2004年第9期(带光盘)有一个99分钟89C2051倒计时程序,2个数码管显示,我按其作了一个,并将其光盘上的程序拷入,实际运行结果出现这样一个问题:     就是十位和个位到0后并没有停止(停止时显示‘--’2个负号),而是继续显示‘ ...…

查看全部问答∨

ARM与嵌入式linux入门的建议

本帖最后由 paulhyde 于 2014-9-15 08:56 编辑 ARM与嵌入式linux入门的建议  …

查看全部问答∨

射频电路板设计技巧

成功的RF设计必须仔细注意整个设计过程中每个步骤及每个细节,这意味着必须在设计开始阶段就要进行彻底的、仔细的规划,并对每个设计步骤的进展进行全面持续的评估。而这种细致的设计技巧正是国内大多数电子企业文化所欠缺的。     近几 ...…

查看全部问答∨

如何控制LED静电死灯?

replyreload += \',\' + 380148;Timson,如果您要查看本帖隐藏内容请回复…

查看全部问答∨

供S5PC100开发板 ARMcortex A8 core

供S5PC100开发板 ARMcortex A8 core iPhone 3GS 采用Samsung S5PC100主控拥有720p高清视频engineering, 在iPhone中Apple特意降低了处理器运行频率为600MHz,以减少功耗。 显然S5PC100的拥有很强大的处理功能,包括3D engineering S5PC100集多 ...…

查看全部问答∨

嵌入式软件开发工程师

汉王科技股份有限公司 嵌入式软件开发工程师-OCR软件部 电子邮箱:          yinsg@hanwang.com.cn 发布日期:         2007-03-21         工作地 ...…

查看全部问答∨

iar442不能设置断点是怎么回事啊?

                                 rt…

查看全部问答∨

有什么好办法解决STM32RTC不起振么

                                 最近焊了一批板子,那个RTC的晶振死活不起振,十个里面只有一个能起来,其他的怎么弄都起不来。原来在别的板子上好 ...…

查看全部问答∨

PR788应用于LED路灯设计

简介:德州仪器电源管理产品经理Pietro Scalia为您简述一款LED路灯板。通过分析PR788参考设计电路图使你更清楚的了解到这个设计是如何实现更节能的目的的   $(\'swf_cT7\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'4 ...…

查看全部问答∨

三极管电路分析

请大虾们帮忙分析下,怎么理解?…

查看全部问答∨
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved