STM32-TIM输出比较(十二)

TIM输出比较

STM32定时器的输出比较功能啊,这个输出比较功能还是非常重要的。它主要是用来输出 PWM 波形的, PWM 波形又是驱动电机的必要条件。所以你如果想用 STM32 做一些有电机的项目,比如智能车、机器人等啊,那这个输出比较功能就要好好学学了啊

它的英文是 OC,全称是 Output Compare,直译就是输出比较的意思。在这个库函数中经常会出现这些英文缩写啊,所以要了解一下。要不然他写个 OC,另外还有 IC,全称是 Input Capture,意为输入捕获。还有 CC,全称是 Capture Compare,一般表示的是输入捕获和输出比较的单元。这就是这些英文缩写啊,了解一下。然后看一下下一条,输出比较电路可以通过比较 CNT 计数器与 CCR 捕获比较寄存器值的关系来对输出电平进行置一置零或翻转的操作,用于输出一定频率和占空比的 PWM 波形。这就是输出比较模块的最主要的功能,就是输出一定频率和占空比的 PWM 波形。

这个 CNT 和 CCR 是在哪里呢,我们可以看一下这个图,这一块就是输出比较的电路。 CNT 在这里哈,就是实际单元里面的计数器。 CCR 是这里,就是捕获比较寄存器。刚才我们说了, CC 就是捕获比较的意思, R 是 register 寄存器的意思,所以 CCR 就是捕获比较寄存器。这个捕获比较寄存器是输入捕获和输出比较共用的,当使用输入捕获时,它就是捕获寄存器,当使用输出比较时,它就是比较寄存器。那在输出比较这里,这块电路会比较 CNT 和 CCR 的值。 CNT 计数针, CCR 是我们给定的一个值。当 CNT 大于 CCR 小于 CCR 或者等于 CCR 时,这里输出就会对应的置一置零置一置零,这样就可以输出一个电平不断跳变的 PWM 波形了,这就是输出比较的基本功能。

然后回到这里继续来看,后面两条是每个高级定时器和通用定时器都拥有 4 个输出比较通道,并且高级定时器的前 3 个通道额外拥有时序生成和互补输出的功能。这两条内容也可以通过这个结构做图看出来哈。在这里看到基本定时器是最简单的,并没有输入捕获和输出比较的功能哈。所以我们本小节的功能不能在基本定时器上使用。

然后通用定时器和高级定时器这里都有四个输出比较的通道,可以同时输出四路 PWM 波形。这四个通道有各自的 CCR 寄存器,但是它们是共用一个 CNT 计数器的。

然后高级定时器这里,前三个输出比较通道还额外具有死区生成和互补输出的功能。这个是用于驱动三相无刷电机的哈,我们本课程暂时不作为重点内容,我们主要学习的是这个通用定时器的输出比较功能。

好,那么回到这里。现在我们对这个输出比较的用途就应该大概清楚了啊,就是用来输出 PWM 波形的。那什么是 PWM 波形呢?我们来看一下下一页 PPT, 在这里点

来获得所需要的模拟产量,常应用于电机控速等领域。也就是说,使用这个 PWM 波形是用来等效的实现一个模拟信号的输出。也就是我们最开始提的问题,数字输出端口控制 LED, 按理说 LED 只能有完全亮和完全灭两种状态啊,怎么能实现控制亮度大小呢?那通过这个 PWM 波形就可以实现。我们让 LED 不断点亮、熄灭、点亮、熄灭,当这个点亮熄灭的频率足够大时, LED 就不会闪烁了,而是呈现出一个中等亮度。当我们调控这个点亮和熄灭的时间比例时,就能让 LED 呈现出不同的亮度级别。

对于电机调速也是一样哈,我们以一个很快的频率给电机通电断电通电断电,那么电机的速度就能维持在一个中等速度。这就是 PWM 的基本思想,看起来也是一个挺简单的方法是吧? PWM 的秘诀就是天下武功唯快不破。只要我闪的足够快,你就发现不了我到底是闪着亮的,还是一个正常的平稳的亮度。

当然 PWM 的应用场景必须要是一个惯性系统哈。就是说 LED 在熄灭的时候,由于余晖和人眼识别暂留现象, LED 不会立马熄灭,而是有一定的惯性,过一小段时间才会熄灭。电机也是啊,当电机断电时,电机的转动不会立马停止。而是有一定的惯性过一会才行。这样具有惯性的系统才能使用 PWM。

那在这个图里也可以看出啊,这种高低电平跳变的数字信号,它是可以等效为中间这个虚线所表示的模拟量的。当这个上面电平时间长一点,下面电平时间短一点的时候,那等效的模拟量就偏向于上面。当下面电平时间长一点,上面电平时间短一点的时候,等效的模拟量就偏向于下面。

看一下通用定时器的这个结构。这个图对应的就是这个图里的这部分电路。左边是 CNT 和 CCR 比较的结果,右边就是输出比较电路,最后通过 TIM CH1 输出到 GPIO 引脚上。然后下面还有三个同样的单元,分别输出到 CH2、 CH3、 CH4 哈。

那我们回到这里,在这个图里左边就是 CNT 计数器和 CCR1 第一路的捕获比较寄存器啊,它俩进行比较,当 CNT 大于 CCR1 或者 CNT 等于 CCR1 时,就会给这个输出模式控制器传个信号哈。然后输出模式控制器就会改变它输出 OC1REF 的高低电平。 REF 信号实际上就是指这里信号的高低电平哈。这个 REF 是 Reference 的缩写,意思是参考信号。这个稍微记一下哈,之后还会见到。然后上面这里还有个 ETRF 输入,这是定时器的一个小功能哈,一般不用,不需要了解。接着这个 REF 信号可以前往主模式控制器,你可以把这个 REF 映射到主模式的 TRO 输出上去。不过 REF 的主要去向还是下面这一路啊,通过下面这一路到达这里,这是一个极性选择啊,给这个计数器写 0,信号就会往上走,就是信号电平不翻转,进来啥样出去还是啥样。写 1 的话,信号就会往下走。就是信号通过一个非门取反啊,那输出的信号就是输入信号高低电平反转的信号。这就是极性选择,就是选择是不是要把高低电平反转一下。那接着就是输出使能电路了,选择要不要输出。最后就是 OCE 引脚,这个引脚就是 CH1 通道的引脚哈,在引脚定义表里就可以知道具体是哪个 GPIOF 了。

那现在输出的通道我们就知道了,接下来我们还需要看一下这个输出模式控制器,它具体是怎么工作的,什么时候给 REF 高电平,什么时候给 REF 低电平。我们看一下下下面的这个表啊

这就是输出比较的 8 种模式,也就是这个输出模式控制器里面的执行逻辑。这个模式控制器的输入是 CNT 和 CCR 的大小关系,输出是 REF 的高低电平。里面可以选择多种模式来更加灵活的控制 REF 输出。这个模式可以通过寄存器来进行配置,你需要哪个模式就可以选哪个模式。

那具体都是怎么操作的呢?我们来看一下这个表。

第一个模式是冻结,描述是 CNT 等于 CCR 时, REF 保持为原状态。 CNT 等于 CCR 时维持原状态,那其实这个 CNT 和 CCR 就根本没有用是吧?所以你也可以把它理解成 CNT 和 CCR 无效, REF 保持为原状态,这都是一样的效果。那这个模式也比较简单哈,就不管 CNT 谁大谁小,直接按一下RE F 保持不变,维持上一个状态就行了。这有什么用呢?比如你正在输出 PWM 波,突然想暂停一会输出,就可以设置成这个模式。一旦切换为冻结模式后,输出就暂停了,并且高低电平也维持为暂停时刻的状态,保持不变。这就是冻结模式的作用。

然后接着看下面这三个模式,匹配时置有效电平,匹配时置无效电平,和匹配时电平翻转。这个有效电平和无效电平啊,一般是高级定时器里面的一个说法,适合关断刹车这些功能配合表述的,他说的比较严谨哈,所以叫有效电平,和无效电平。在这里为了理解方便,你可以直接认为置有效电平就是置高电平啊,置无效电平就是置低电平,这样就行了。那这三个模式都是当 CNT 与 CCR 值相等时执行操作。

第一个是 CNT 等于 CCR 时 REF 置有效电平,也就是高电平。

第二个是相等时置无效电平,也就是低电平。

第三个是相等时电平翻转。这些模式就可以用作波形输出了哈。比如相等时电平翻转的模式,这个可以方便的输出一个频率可调占空比始终为 50% 的 PWM 波形。比如你设置 CCR 为 0,那 CNT 每次更新清 0 时,就会产生一次 CNT 等于 CCR 的事件,这就会导致输出电平翻转一次。每更新两次输出为一个周期,并且高电平跟低电平的时间是始终相等的,也就是占空比始终为 50%。当你改变定时器更新频率时,输出波形的频率也会随之改变。它俩的关系是输出波形的频率等于更新频率除以 2,因为更新两次输出才为一个周期对吧。这就是这个匹配时电平翻转模式的用途。

那上面这两个相等时置高电平跟低电平,感觉用途并不是很大哈,因为它们都只是一次性的,置完高或低电平后就不管事了,所以这俩模式不适合出连续变化的波形。如果你想定时输出一个一次性的信号,那可以考虑下这两个模式。

然后继续看一下下面这里的两个模式,强制为无效电平,和强制为有效电平。这两个模式是 CNT 与 CCR 无效, REF 强制为无效电平,或者强制为有效电平。这里这两个模式和冻结模式也差不多啊。如果你想暂停波形输出,并且在暂停期间保持低电平或者高电平,那你就可以设置这两个强制输出模式啊。

接下来看一下最后两个模式, PWM 模模式一和 PWM 模式二这俩模式就非常重要了啊,它们可以用于输出频率和占空比都可调的 PWM 波形,也是我们主要使用的模式。来看一下描述,在 PWM 模式一,并且计数器为向上计数的情况下,它是 CNT 小于 CCR 时, REF 置有效电平, CNT 大于等于 CCR 时, REF 置无效电平。在向下计数的情况下,是 CNT 大于 CCR 时, REF 置无效电平, CNT 小于等于 CCR 时, REF 置有效电平这个情况比较多哈,一般我们都只使用向上计数,所以这里向下计数的描述我们就暂时不看了。它们之间也只有大小关系、极性啊这些东西不同,基本思想都是一样的哈。我们着重分析一个向上计数的就可以了。

然后再对比看一下 PWM 模式二。在向上计数的情况下, CNT 小于 CCR 时, REF 置无效电平, CNT 大于等于 CCR 时, REF 置有效电平。经过观察可以发现哈,它的大小比较关系和上面这是一样的,区别就是输出高低电平反过来了。所以 PWM 模式二实际上就是 PWM 模式一输出的取反。改变 PWM 模式一和 PWM 模式二,就只是改变了 REF 电平的极性而已哈。

从上面这个图里可以看到, REF 输出之后还有一个极性的配置。所以使用 PWM 模式一的正极性和 PWM 模式二的反极性,最终的输出是一样的。这里设计的比较灵活啊,输出模式里可以设置极性,最终输出之前也可以设置极性,那这就是两个模式的区别。

所以使用的啊,我们可以只使用 PWM 模式一,并且是向上计数,这一种模式就行了。

那这种模式是怎么输出频率和占空比都可调的 PWM 波形呢?我们再看一下下面这个 PPT, 在这里我给出了输出 PWM 的基本结构,这也是我们本节课的重点内容啊

在这里我给出了输出 PWM 的基本结构,这也是我们本节课的重点内容哈,我们来看一下。

首先左上角这里是时基单元和运行控制部分,在左边是时钟源选择哈,这里省略了。这些都是上一小节的内容,在这里还需要继续使用,只不过是这里更新事件的中断申请我们不需要了哈,输出 PWM 暂时还不需要中断,这就是时基单元的部分,配置好了时基单元,这里的 CNT 就可以开始不断的自增运行了。

然后下面这里就是输出比较单元了,总共有四路。输出比较单元的最开始是 CCR2 捕获比较寄存器, CCR2 是我们自己设置的啊, CNT 不断自增运行,同时他俩还在不断进行比较。后面这个就是输出模式控制器啊,在这里我就以 P 的 W M 模式一为例子来讲解了。这里面是 P W M 模式一的执行逻辑哈。 C N T 小于 CCR 时, R E F 置有效电平。 C N T 大于等于 CCR 时, R E F 置无效电平。那它是怎么输出 P W M 波形的呢?

我们看一下右上角的这个图。这里蓝色线是 C N T 的值黄色线是 A R R 的值 。蓝色线从 0 开始自增,一直增到 A R R,也就是 99。之后清 0 继续自增。在这个过程中,我们再设置一条红色线,这条红色线就是 C CR, 比如我们设置 CCR 为 30,之后再执行这里的这个逻辑,下面这里绿色线就是输出。可以看到,在这一块, CNT 小于 CCR, 所以置高电平。之后这里 CNT 就大于等于 CCR 了,所以就变为低电平。当 CNT 溢出清 0 后, CNT 又小于 CCR, 所以置高电平。再之后就又是 CNT 大于等于 CCR 是低电平。这样一直持续下去, REF 的电平就会不断变化

并且它的占空比也是受 CCR 值的调控的。如果 CCR 设置高一些,输出的占空比就变大。

CCR 设置低一些,输出的占空比就变小。

这就是 PWM 模式的工作流程。这里REF 就是一个频率可调,占空比也可调的 PWM 波形。最终再经过极性选择,输出使能,最终通向 GPIO 口,这样就能完成 PWM 波形的输出了。

那接下来我们就再来看一下 PWM 的参数是如何计算的吧。第一个 PWM 频率,看一下上面这个图哈,从这里到这里为 PWM 的一个周期。可以太多它始终对应着计数器的一个溢出更新周期

所以 PWM 的频率就等于计数器的更新频率。下面这个式子, CKPSC 除以 PSC 加一,再除 ARR 加一,就是计数器的更新频率公式哈。

然后接着是占空比参数,我们再看看上面这个图,从这里到这里, CNT 是从零一直加到 ARR, 比如 ARR 是 99,那 CNT 总共就是记了 100 个数。再看高电平的时间,就是从这里到这里。 CNT 是从 0 一直加到 CCR,比如 CCR 是 30,注意这里在等于 30 的瞬间哈,就已经跳变为低电平了,所以 CNT 从 0 到 29 是高电平,总共是 30 个数的时间,所以这里占空比就是 30÷100=30%。总结一下公式就是占空比等于 CCR 除以 ARR 加一。

那最后还有一个参数啊,就是分辨率,也就是占空比变化的步距。从上面这个图可以看出哈, CCR 的值应该设置在 0~ ARR +1 这个范围里。 CCR 等于 ARR 加一时,占空比就正好是 100%。如果 CCR 再大一些,那占空比就始终是 100%,没有意义的。

所以 CCR 的变化范围取决于 ARR 的值。 ARR 越大, CCR 的范围就越大,对应的分辨率就越大。所以总结下公式就是分辨率等于 ARR 加一分之一。

注意我这里定义的分辨率是占空比最小的变化步距哈,所以这个值是越小越好。也可以把 CCR 的范围定义成分辨率,那就是值越大越好。总之就占空比变化的越细腻越好。啊这就是这些参数的计算公式哈。

如果我要求你输出一个频率为 1 千赫兹,占空比可任意调节,且分辨率为 1% 的 PWM 波形。那你会不会用这里的公式来确定合适的参数呢?那到这里有关 PWM 输出的内容就讲完了。

最后我们再回过来简单的看一下高级定时器的输出比较电路

简单的看一下高级定时器的输出比较电路。这个电路大家仅做了解即可哈,不需要掌握。那我们来简单的看一下,我们可以这样啊,从这里画一个圈,把这个圈里面的东西去掉哈,那它就跟通用定时器的电路是一样的了。

那这个圈里的电路到底有什么用呢?这就需要和外部电路来一起理解了。在它外面通常要接一个这样的电路啊,上面是正极,接的是一个大功率开关管,一般都是 MOS 管啊,就是一种大功率电子开关,然后再来一个 MOS 管。最后到 GND, MOS 管左边是控制极,比如说给高电平右边两根线就导通,低电平就断开。下面也是一样哈,有一个控制极,高电平导通低电平断开。这就是一个最基本的推挽电路,中间是输出啊,如果上管导通下管断开,那输出就是高电平。如果下管导通上管断开那输出就是低电平。如果上下管都导通那就是电源短路啊,这样是不允许的。如果上下管都断开那输出就是高阻态。这就是推挽电路的工作流程。如果有两个这样的推挽电路那就构成了 H 桥电路就可以控制直流电机正反转了。如果有三个这样的推挽电路,那就可以用于驱动三相无刷电机了。这就是这个电路的用途啊。那对于这个电路来说,如果直接用单片机来控制的话,那就需要两个控制器,并且这两个控制器电平是相反的,也就是互补。因为上管导通下管就必须断开,下管导通上管就必须断开。那知道了外围电路的需求,再来理解内部电路结构,那自然就好理解了。

首先这个 OC1 和 OC1N 就是两个互补的输出豆包分别控制上管和下管的导通和关闭。然后是在切换上下管导通状态时,如果在上管关断的瞬间下管立刻就打开,那可能会因为器件的不理想啊,上管还没有完全关断下管就已经导通了,出现了短暂的上下管同时导通的现象,这会导致功率损耗啊,引起器件发热。所以在这里为了避免这问题就有了时序生成电路。它会在上管关闭的时候延迟一小段时间再导通下管,下管关闭的时候延迟一小段时间再导通上管,这样就可以避免上下管同时导通的现象。好,这就是死区生成和互补输出的用途。

那到这里, STM32 内部是如何产生 PWM 波形的,我就说完了。

接下来我们就来看一下 STM32 的外部设备。在这里有舵机啊,可以用 PWM 信号来控制舵机输出轴的角度啊

第一条舵机是一种根据输入 PWM 信号占空比来控制输出角度的装置下面这个图就是我们套件里的舵机哈型号是 SG90 它有三根输入线两根是电源线一根是信号线我们的 PWM 就是输的这个信号线来控制舵机的在这边有一个白色的输出轴它的轴会固定在一个指定的角度不动哈至于固定在哪个位置是由信号线的 PWM 信号来决定的这是舵机的工作方式

然后中间这个是舵机的一个拆解图哈在这里可以看到里面的结构有舵机上盖输出轴减速齿轮组下面这里是直流电机舵机控制板电位器可以看出舵机其实并不是一种单独的电机哈它的内部是由直流电机驱动的它里面还有一个控制电路板是一个电机的控制系统哈

大概的执行逻辑是 PWM 信号输到控制板给控制板一个指定的目标角度然后这个电位器检测输出轴的当前角度如果大于目标角度电机就会反转如果小于目标角度电机就会正转最终使输出轴固定在指定角度这就是舵机的内部工作流程啊但不管怎么样我们就只需要知道输入一个 PWM 波形输出轴固定在一个角度就行了

那接着我们来看一下输入 PWM 信号的要求就是 PWM 的周期为 20 毫秒对应的就是 50 赫兹哈高电平宽度为 0.5 毫秒到 2.5 毫秒就是占空比是这个范围这个范围对应的输出角度啊

看下右边的这个图我们这是一个 180 度的舵机哈输出轴的角度是-90 度到正 90 度或者你规定是 0-180 度这都是没问题的哈然后输入信号脉冲宽度周期是 20 毫秒也就是这个上升沿到下一个上升沿这之间的时间是 20 毫秒,然后高电平的时间如果是 0.5 毫秒对应的角度就是负 90 度如果是 1 毫秒对应的角度就是负 45 度如果是 1.5 毫秒对应的角度就是 0 度如果是 2 毫秒对应的角度就是正 45 度如果是 2.5 毫秒对应的角度就是正 90 度也就是说 0.5 毫秒对应负 90 度 2.5 毫秒对应正 90 度中间的对应关系都是线性分配的哈按比例来你给个 PWM 输出轴就会固定在一个角度

那实际应用的话比如机器人机械臂可以用舵机来控制关节遥控车遥控船可以用舵机来控制方向还有些其他的机械结构啊都可以考虑用一下这个舵机那这些就是舵机的大概介绍了

这里 PWM 波形它其实是当做一个通信协议来使用的哈跟我之前说的用 PWM 等效一个模拟输出关系不大把 PWM 当成一个通信协议也是个比较常见的应用哈因为很多控制器都有 PWM 输出的功能而且 PWM 只需要一根信号线就行了这也是一种应用形式哈

那然后我们就来看一下舵机的硬件电路在这里硬件电路也是比较简单的

还有直流电机,可以用 PWM 来控制电机的速度。

这个注意一下,电机这类器件基本上都属于大功率设备了,必须要加驱动电路才能控制。电机驱动电路也是一个研究课题哈,现在市面上也有很多驱动电路可以选择,比如 TB6612, DRV8833, L9110, L298N 等等,这些都是比较常见的电机驱动芯片哈。另外还有一些用分离元件 MOS 管搭建的电路,这个功率可以做的更大一些。当然你也可以自己用 MOS 管来设计电路,这都是没问题的,感兴趣的话可以研究一下。

那我们本课程就直接使用 TB6612 这个款电机驱动芯片来驱动电机的。使用现成的芯片还是挺方便的啊,别人都把电路设计好集成在芯片里了,我们直接拿来用就行了。那我们来看一下, TB6612 是一款双路 H 桥型的直流电机驱动芯片,可以驱动两个直流电机并控制其转速和方向。这个芯片里面是有两路驱动电路的,可以独立的控制两个电机。

又因为它是 H 桥型的驱动电路,里面一路有四个开关管,所以就可以控制正反转。像有些芯片啊,比如 ULN2003,它里面一路就只有一个开关管,所以它就只能控制电机在一个方向转。那下面这个图就是这个电机驱动板的样子,上面的芯片就是 TB6612,外围电路就只需要三个滤波电容就行了,可见这个芯片的集成度还是非常高的哈,基本上不需要我们再加什么东西了。

然后右边这个就是 H 桥电路的基本结构,它是由两路推挽电路组成的,这个我们刚才也分析过哈。比如左边这个,上管导通下管断开,那左边输出就是接在 VM 的电机电源正极,下管导通上管断开,那就是接在 PGND 的电源负极。

如果有两路推挽电路,中间这里接一个电机。左上和右下导通,那电流就是这样的,从左流向右边,右上和左下导通,那电流就反过来了,从右边流向左边。 H 桥可以控制电流流过的方向,所以它能控制电机正反转,这就是这个电驱动芯片内部的部分电路啊

那我们接下来就来看一下怎么用

左边就是这个电机驱动模块的硬件电路了,我们来看一下,这里左下角 VM 就是电机电源的正极了,这个和刚才舵机的电源要求是一样的啊,要接一个可以输出大电流的电源。

右边引脚定义看一下,这个 VM 是驱动电压输入端,范围是 4.5~10 伏,这个电压一般和你电机额定电压保持一致啊,比如如果你是 5 伏的电机,这里就接 5 伏,如果你是 7.2 伏的电机,这里就接 7.2 伏,这个是 VM。

然后下一个引脚是 VC C 这个是逻辑电平输入端哈,范围是 2.7~5.5 伏。这个要和我们控制器的电源保持一致。比如你使用 STM32 是 3.3 伏的器件,那就接 3.3 伏。如果是 51 单片机是 5 伏的器件,那就接 5 伏。这个引脚并不需要大功率哈。所以可以和控制器共用一个电源。

然后第三个硬件是 GND, 这个就接系统的负极就行了。然后板子这右边还有两个 GND, 这个都是一样的硬件哈,在板子内部都是连通的,随便选一个 GND 用就可以哈。

然后继续看,这里 A O 一 、A O 二、 B O 一、 B O 二就是两路电机的输出了,可以像这样分别接两个电机, A O 一和 A O 二就是 A 路的两个输出,它的控制端就是上面的这三个, PWM A 、AIN 二和 AIN 一,这三个三个引脚控制下面 A 路的一个电机,这里对应关系我也用灰色填充给大家标出来了哈,方便大家观看。那这三个引脚就直接接到单片机的 GPI O 口就行了。其中 PWM A 引脚要接 PWM 信号输出端,其他两个引脚可以任意接两个普通的 GPI O 口。那这三个引脚给一个低功率的控制信号,驱动电路就会从 VM 提取电流来输出到电机,这样就能完成低功率的控制信号控制大功率设备的目的了。

那然后右边这一路也是一样, B O1 和 B O2 是 B 路的两个输它的控制端是上面右边的 BIN1、BIN2 和 PWM B 这三个引脚,两路的功能和操作方法是完全一样的哈。

最后还剩一个 STBY 引脚,这个是待机控制脚。如果接 GND 芯片就不工作,处于待机状态。如果接逻辑电源 VCC 芯片就正常工作。这个引脚如果不需要待机模式的话,可以直接接 VCC 3.3 伏。如果需要的话,可以任意接一个 GPI O 给高低电平就可以控制了。好这就是这个电机驱动板的硬件电路,

那这三个角是如何控制电机正反转和速度的呢?我们看一下右下角这个表。

这里输入是 IN1、 IN2、 PWM 和 STBY。 STBY 低电平就待机,高电平就正常工作,这个不用看了啊。

然后右边是输出 O1、 O2 和模式状态,我们来看一下。在这里,如果 IN1 和 IN2 全都接高电平,两个输出就都为低电平,这样两个输出没有电压差,电机是不会转的。如果 IN1 和 IN2 全都接低电平,输出直接关闭,这样电机也是不会转的,全高或全低电机都不能转,那剩下的就只有一高一低了。是吧。

这里如果 IN1 给低电平, IN2 给高电平,电机就是处于反转状态。那转还是不转呢?要取决于 PWM。 如果 PWM 给高电平,那输出就是一低一高,有电压差了,电机可以转,这时候定义的是反转,开始转了哈。如果 PWM 给低电平,那输出两个低电平,电机还是不转,这就是反转的逻辑。

IN1 给低, IN2 给高, PWM 高转低不转。如果 PWM 是一个不断翻转的电平信号,那电机不就是快速的反转停止反转停止了吗?如果 PWM 频率足够快,那电机就可以连续稳定的反转,并且速度取决于 PWM 信号的占空比。这就是反转的工作流程。在这里的 PWM 就是我们之前讲的使用 PWM 来等效一个模拟量的功能呢。

然后看下面正转,也是差不多哈,这里给 IN1 高电平, IN2 低电平,这样电机就是正转状态。那是转还是不转呢?要取决于 PWM 信号, PWM 高正转低停止。如果 PWM 频率足够那电机就是连续稳定的正转了,并且速度取决于 PWM 信号的占空比。好那有关这个电机驱动模块的介绍到这里就讲完了。

相关推荐
三品吉他手会点灯2 小时前
STM32F103 学习笔记-22-DMA(第1节)-DMA功能框图讲解和DMA初始化结构体讲解
笔记·stm32·单片机·嵌入式硬件·学习
陌上花开缓缓归以3 小时前
定时器和延时函数选型
单片机
华普微HOPERF4 小时前
电视冰箱洗衣机、空调风扇热水器,Matter协议如何塑造全屋智能?
嵌入式硬件·物联网·智能家居·matter协议·全屋智能
ThornArmor4 小时前
【控制篇】斩断无休止空转:4-bit 指令集里的跳转律令与时序状态机
c语言·汇编·c++·单片机·嵌入式硬件
篮子里的玫瑰4 小时前
STM32/MCU【IAP在线升级】全流程深度解析与实战指南
stm32·单片机·嵌入式硬件
深圳市青牛科技实业有限公司5 小时前
D3815C30V/0.8A高调光比 LED恒流驱动器介绍
单片机·嵌入式硬件·人机交互·摄像机
Plankton_Li5 小时前
嵌入式国密加密:STM32L4 + MIRACL 库实现 SM2 加解密
stm32·单片机·嵌入式软件
高速上的乌龟5 小时前
Lattice LFCPNX-100 HSB+Fpga开发详解:2.2 Marvell MV-Q3244 Phy的Podl电路详解
单片机·嵌入式硬件·fpga开发·软件工程
nuoxin1146 小时前
HI3516CRNCV610-20S/富利威
网络·人工智能·单片机·嵌入式硬件·硬件工程
金线银线还是铜线?6 小时前
从三星SolarCell遥控器到微光PMIC:太阳能遥控器的电源管理关键
嵌入式硬件·物联网·iot·太阳能