0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如果STM32定时器外接了正交编码器,该剩余通道是否能做PWM输出呢?

茶话MCU ? 来源:茶话MCU ? 2024-03-21 09:06 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

有人问如果STM32定时器外接了正交编码器,该定时器的剩余通道是否可以做PWM输出呢?

其实,对于STM32芯片,编码输入信号就是定时器的计数时钟源之一。定时器外接了编码输入,若还有剩余通道的话,剩余通道依然可以实现输入捕获或输出比较功能。

此时,该定时器的计数时钟就是由编码器信号提供的。编码器信号从定时器的通道1和通道2同时输入,计数器基于编码信号的边沿事件进行计数,可以有多种计数方式供选择。

具体编码器计数方式参见下表。后面实验采用第三种方式。

a0a30404-e71d-11ee-a297-92fbcf53809c.png

下面使用STM32C0系列的Nucleo板,从定时器1的通道1、通道2接入正交编码信号,以TI1、TI2的有效跳变沿作为时钟源来实现PWM输出。

我先使用STM32C031芯片内部的TIM3产生两路正交编码信号的输出,然后将这两路输出接到TIM1的CH1、CH2,并令TIM1工作在编码模式,让其CH3输出PWM脉冲。

a0b7f2b0-e71d-11ee-a297-92fbcf53809c.png

先看看TIM3的CubeMx配置。为了产生一对相差90°的正交编码信号,我用到了TIM3的三个通道,其中CH2没有做实际输出【当然,若用两个通道也行】。见下面配置。

a0d2cb8a-e71d-11ee-a297-92fbcf53809c.png

a0e3712e-e71d-11ee-a297-92fbcf53809c.png

下面波形就是基于上面配置的两路正交编码输出信号:

a0fb2db4-e71d-11ee-a297-92fbcf53809c.png

我们再来看看TIM1的CubeMx配置。工作在编码器模式,CH1、CH2作为编码信号输入,选择针对两路输入的跳变沿进行计数的方式。CH3、CH4做PWM输出。

a107b296-e71d-11ee-a297-92fbcf53809c.png

a11e5c4e-e71d-11ee-a297-92fbcf53809c.png

在上图中可以看到,TIM1的PSC=0,ARR为19,计数器处于单向计数模式,即每计20个跳变沿就产生溢出。因为对TI1、TI2两路的跳变沿进行计数,在输入信号的1个周期内会做4次计数。

这样算下来,TIM1的一个输出周期对应于正交编码输入信号的5个周期。

完成配置后创建工程,添加如下必要的用户代码。

a132b32e-e71d-11ee-a297-92fbcf53809c.png

稍作调试可以看到如下结果,蓝色的为TIM1-CH3的PWM输出,另外两路为正交编码信号。实验结果跟前面推理的一致。

a14b044c-e71d-11ee-a297-92fbcf53809c.png

不难理解,在前面TIM1时基参数不变的前提下,TIM1-CH3的输出频率由外来编码脉冲的频率决定,编码脉冲频率越高,TIM3-CH1的PWM输出频率也越高,反之亦然。【眼尖的人可能发现了此时计数器实际上是处于向下计数模式】

定时器基于编码脉冲作为计数时钟源时,使用CubeMx配置计数器的计数方向时,不要选择中心对齐计数模式,编码器时钟模式不支持该计数模式。

至于选择向上计数模式还是向下计数模式无关紧要。因为编码器模式下,计数器是向上计数还是向下计数是硬件决定的,即根据TI1FP1和TI2FP2的相对电平以及所选择的计数方式决定。




审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计数器
    +关注

    关注

    32

    文章

    2292

    浏览量

    96545
  • 定时器
    +关注

    关注

    23

    文章

    3302

    浏览量

    119392
  • 正交编码器
    +关注

    关注

    0

    文章

    16

    浏览量

    10781
  • PWM输出
    +关注

    关注

    1

    文章

    66

    浏览量

    6618

原文标题:基于编码器信号的PWM输出示例

文章出处:【微信号:stmcu832,微信公众号:茶话MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于STM32正交编码器驱动电机设计

    1。编码器原理 什么是正交如果两个信号相位相差90度,则这两个信号称为正交。由于两个信号相差90度,因此可以根据两个信号哪个先哪个后来判断方向。 这里使用了TI12模式,例如当T1上
    的头像 发表于 09-10 16:25 ?7741次阅读
    基于<b class='flag-5'>STM32</b>的<b class='flag-5'>正交</b><b class='flag-5'>编码器</b>驱动电机设计

    电机控制基础3——定时器编码器模式使用与转速计算

    路脉冲,如果使用上一篇介绍的方法,编程就较为复杂。还好单片机的通用定时器具有 专门的正交编码器接口 ,只需配置相应的寄存,就可实现
    的头像 发表于 08-30 17:26 ?1.6w次阅读
    电机控制基础3——<b class='flag-5'>定时器</b><b class='flag-5'>编码器</b>模式使用与转速计算

    stm32定时器编码器模式可以做输出吗?

    我想要做正交编码器,但是网上一般只介绍了用编码器对其做解码,而我需要的是输出波形。我在一个小网站的解答上看到定时器
    发表于 07-31 07:59

    STM32定时器用做正交编码器之后还能输出PWM吗?

    最近在做一个控制小车的设计,用STM32定时器用做正交编码器来进行车速的检测,由于所选MCU型号问题,定时器较少,请教一下,在
    发表于 04-21 15:08

    【案例分享】STM32正交编码器驱动电机

    的。4。STM32f1系列定时器16位的问题我用STM32定时器3工作于编码器方式,可以正常得到编码器
    发表于 07-20 04:00

    正交编码器原理什么是正交

    ,TI1超前TI2 90度时,向上计数;TI2超前TI1 90度时,向下计数。编码器的应用很多,最常用的就是电机测速,以及各种仪器上的旋钮等。2.STM32CubeMX配置以STM32F103C8T6为例,
    发表于 01-10 08:04

    为什么STM32单片机的定时器PWM输入捕获模式无法读取编码器

    为什么STM32单片机的定时器PWM输入捕获模式无法读取编码器?怎样去解决STM32单片机的
    发表于 01-21 06:30

    可以使用单个定时器通道1和2进行编码器计数并在通道3和4上生成PWM吗?

    PWM 输出。为此,我相信我需要至少使用一个定时器通道 1 和 2 上运行编码器模式,在通道
    发表于 01-12 06:56

    如何通过STM32定时器输出PWM

    ? 本文将介绍通过STM32定时器输出PWM如果定时器不太熟悉的同学可以看下之前的文章《
    的头像 发表于 02-20 15:08 ?2.3w次阅读
    如何通过<b class='flag-5'>STM32</b>的<b class='flag-5'>定时器</b><b class='flag-5'>输出</b><b class='flag-5'>PWM</b>?

    STM32-通用定时器-PWM输出

    1 通用定时器PWM概述1.1STM32定时器输出通道引脚这里以TIM3为例来讲解。
    发表于 11-26 15:36 ?23次下载
    <b class='flag-5'>STM32</b>-通用<b class='flag-5'>定时器</b>-<b class='flag-5'>PWM</b><b class='flag-5'>输出</b>

    STM32正交编码器模式读取编码器的角度数据和速度

    STM32正交编码器模式读取编码器的角度数据和速度
    发表于 12-08 17:06 ?144次下载
    <b class='flag-5'>STM32</b>的<b class='flag-5'>正交</b><b class='flag-5'>编码器</b>模式读取<b class='flag-5'>编码器</b>的角度数据和速度

    STM32F103-定时器编码器模式和高级定时器输出互补的PWM信号

    STM32F103-定时器编码器模式和高级定时器输出互补的PWM信号刚使用
    发表于 01-14 12:53 ?11次下载
    <b class='flag-5'>STM32</b>F103-<b class='flag-5'>定时器</b><b class='flag-5'>编码器</b>模式和高级<b class='flag-5'>定时器</b><b class='flag-5'>输出</b>互补的<b class='flag-5'>PWM</b>信号

    STM32F401 定时器编码器使用 采集电机旋转速度、旋转方向

    任何问题)下面步入正题:TIMER都可以作为编码器采集通道,但是需要十分注意的是:定时器只有通道1和通道2可以作为
    发表于 01-17 09:47 ?8次下载
    <b class='flag-5'>STM32</b>F401 <b class='flag-5'>定时器</b>做<b class='flag-5'>编码器</b>使用   采集电机旋转速度、旋转方向

    STM32F407定时器编码器模式简介

    STM32F407定时器编码器模式
    发表于 03-31 17:14 ?9242次阅读
    <b class='flag-5'>STM32</b>F407<b class='flag-5'>定时器</b><b class='flag-5'>编码器</b>模式简介

    详解stm32定时器编码器模式

    增量式编码器在实际应用中还是很常见。stm32定时器带的也有编码器模式。所用的编码器是有ABZ三相,其中ab相是用来计数,z相
    的头像 发表于 01-19 09:14 ?1.1w次阅读
    详解<b class='flag-5'>stm32</b><b class='flag-5'>定时器</b>的<b class='flag-5'>编码器</b>模式