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

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

3天内不再提示

如何不用实物来验证TIMER编码器接口功能

麦辣鸡腿堡 来源:茶话MCU 作者:茶话MCU 2023-06-21 16:16 次阅读

通常在STM32芯片的通用TIMER或高级TIMER都带编码器功能,支持基于1路或2路输入的编码脉冲计数。我们一般外接正交编码器,使用2路输入。TIMER硬件基于2路输入的相差特征来确定计数方向并依据方向对计数器做递增或递减操作。

图片

正交编码器一般使用5根线连接,分别为A、B、

Z信号线及VCC和GND电源线。其中,A、B两路是存在相差的同频信号。Z信号即零点信号,当编码器旋转到某位置时,它会发出一个脉冲表示约定的零位。VCC、GND分别是电源线和地线。至于编码器线数,是指旋转一圈A(B)端会输出的脉冲个数

,二者转一圈所发出的脉冲数相同,但存在90°相差。编码器的线数越高代表其能够反应的位置精度越高。

图片

关于STM32片内TIMER编码器接口工作原理,这里就不介绍了。更多细节请参考STM32的相应系列的参考手册。这里想重点分享的是,如果手头没有正交编码器实物,如何来验证或体验TIMER的编码器接口功能呢?

其实,TIMER编码器处理单元就是对外来的两路同频但输出具有前后时序差的脉冲信号进行方向辨认后做TIMER计数器的递增或递减计数。既然手头没有编码器实物,我们何不利用STM32片内的TIEMR产生2路带相差的同频信号,再接到另一个支持编码器接口的TIMER不就OK了吗?

当然,使用STM32的TIMER产生2路带相差的同频信号,有多种方法。比方通过2个定时器主从级联、单个定时器使用OC

toggle模式加以DMA辅助、利用非对称PWM输出模式来实现。

其中,前2种方法在STM32芯片里通用性好,每个STM32系列都支持。而非对称PWM输出模式虽然可以非常方便地实现带相差的同频输出信号,但不是所有STM32系列支持。当然,不支持的主要是ST推出得比较早的STM32系列,比方STM32F1\\STM32F2\\STM32F4这些老旧的系列,后来推出的STM32系列,比方STM32L4,STM32G4,STM32C0、STM32U5、STM32F7、STM32H7、STM32H5等都支持非对称PWM输出模式。

我这里采用非对称PWM输出模式并使用STM32L4开发板来演示实现过程。先用TIM1结合非对称PWM输出模式输出2路带相差的同频信号,然后连接到TIM2的编码器接口。另外,我还用了个按键【接到PC13】动态调整TIM1两路输出相差的前后关系,以观察TIM2计数器的计数变化情况,即递增还是递减计数。

图片

我先配置TIM1的CH1/CH2,实现2路带相差的PWM输出。【关于TIMER非对称PWM输出模式这里不介绍了,此处直接上配置。下面链接有相关文章介绍,或者自行研读STM32参考手册相关内容。】

图片

基于CubeMx配置后生成初始化工程,添加2行上图中的代码就可以输出了。

我这里使用ARM MDK IDE自带的逻辑分析仪就可以看到下面波形。2路波形分别从GPIOA_PIN8/GPIOA_PIN9输出。

然后我将这两路输出分别连接到TIM2的编码器接口脚【GPIOA_PIN0、GPIOA_PIN1】。

我把有关TIM2编码器应用的CubeMx配置也截图出来供参考。【其中ARR可按需调整,为了便于查看效果,后来我将其改为1000了。这点不影响功能演示。】:

图片

然后,添加启动TIMER编码器功能的API函数。【API函数里启动了2个通道的输入捕获中断,我这里只保留通道1的而关闭了通道2的。即每次在TIM2通道1的捕获中断里读取其计数器的值。】

图片

编译、除错后运行,即可在IDE的逻辑分析仪上看到下面的结果。其中CNT_value就是TIM2的计数器动态值。目前看到的是TIM2的编码器接口针对当前2路输入信号进行周期计数。绿色和紫色是上面提到过的两路输入信号【因显示分辨率的关系下面相关图形变成单色方块了】。

图片

当然,我们可以通过按键来调整TIM1两路输出信号的相差时序,进而改变TIM2编码器计数的方向。不难看出下图中3个圆圈的地方就是切换计数方向的位置。

图片

我们还可以调整TIM1的参数改变输出给TIM2的信号频率。整个过程就是利用TIMER的非对称PWM输出模式构造2路带相差的编码器信号,从而让TIMER的编码器接口电路实现对外部编码输入信号的计数。实现这些基本功能之后,可以进一步研究应用中可能涉及的各种测量功能。

聊到这里,可能有人对上面逻辑分析仪的配置感兴趣。之前我在本公众号专门介绍过,这里简单就今天查看的几个变量的配置过程介绍下。

这里的CNT_value连续记录TIM2计数器的值,这里为Analog量。

Level_PA8记录GPIOA_PIN8的电平情况,1或0两个值之一,为Bit量。

Level_PA9跟Level_PA8是完全相同的数据类型,不过显示的是GPIOA_PIN9的电平。显然,逻辑分析仪配置里关于Level_PA9的显示算式的屏蔽数应该是0x00000200,右移位为9。我目前是在SYSTICK的毫秒中断里读取GPIOA-》IDR的值即管脚电平到变量Level_PA8和Level_PA9的。

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

    关注

    45

    文章

    3639

    浏览量

    134429
  • STM32
    +关注

    关注

    2270

    文章

    10896

    浏览量

    355752
  • 控制
    +关注

    关注

    4

    文章

    1011

    浏览量

    122656
收藏 人收藏

    评论

    相关推荐

    利用非对称PWM模式体验编码器功能

    通常在STM32芯片的通用TIMER或高级TIMER都带编码器功能,支持基于1路或2路输入的编码脉冲计数。
    的头像 发表于 05-04 10:01 2252次阅读
    利用非对称PWM模式体验<b class='flag-5'>编码器</b><b class='flag-5'>功能</b>

    5.EV_HC32F460_Timer之正交编码器调试简介

    5.EV_HC32F460_Timer之正交编码器调试简介TimerHC32F460 中与 PWM 相关的外设有– 3 个多功能 16bit PWM Timer
    发表于 12-07 09:56

    怎样使用输入捕获计算编码器的数值

    (一)编码器介绍首先可以在man手册中查看TAx的功能(function),发现他不支持直连编码器,然后看了下timer32,发现timer
    发表于 02-15 06:26

    基于GD32F310 定时编码器接口的简介及特点

    单通道输出】文章中有讲到具有编码器接口的定时,如下所示。TIMER0、TIMER14、TIMER
    发表于 09-28 15:53

    在GD32F427开发板上怎样去使用编码器接口

    【GD32F427开发板试用】03-PWM单通道输出文章中有讲到具有编码器接口的定时,如下所示。TIMER0 TIMER7 这两个定时
    发表于 11-30 14:42

    增量型编码器与绝对型编码器的区别

    增量型编码器与绝对型编码器的区别 编码器如以信号原理分,有增量型编码器,绝对型编码器。   
    发表于 09-26 17:36 2606次阅读

    编码器,编码器是什么意思

    编码器,编码器是什么意思 编码器 编码器(encoder)是将信号
    发表于 03-08 15:04 3100次阅读

    接口 - 海德汉编码器

    接口 - 海德汉编码器,全部产品接口介绍,各种接口技术。
    发表于 03-14 15:44 10次下载

    电机位置编码器接口设计

    电机位置编码器广泛用于伺服驱动、机器人、机床、印刷机、纺织机和电梯等工业电机控制应用。用接口把这些编码器连接到您系统的其它部分会带来一些棘手的电磁兼容(EMC)问题。为帮您应对这些挑
    发表于 11-17 01:53 2809次阅读

    硬件编码器是什么,软件编码和硬件解码的区别

    用于视频信号编码编码器,依据接口不同分了SDI高清编码器、VGA高清编码器、HDMI高清编码器
    发表于 08-02 17:49 2w次阅读

    基于FPGA的EnDat接口编码器数据采集设计

    EnDat接口是HEIDENHAIN专为编码器设计的数字式、全双工同步串行的数据传输协议,具有传输速度快、功能强大、连线简单、抗干扰能力强等优点,是编码器、光栅尺数据传输的通用
    发表于 01-01 13:13 2214次阅读
    基于FPGA的EnDat<b class='flag-5'>接口</b><b class='flag-5'>编码器</b>数据采集设计

    STM32编码器接口 以及应用编程

    STM32编码器接口,以及应用编程
    的头像 发表于 03-14 10:36 1.1w次阅读
    STM32<b class='flag-5'>编码器</b><b class='flag-5'>接口</b> 以及应用编程

    EV_HC32F460_Timer之正交编码器调试

    5.EV_HC32F460_Timer之正交编码器调试简介TimerHC32F460 中与 PWM 相关的外设有– 3 个多功能 16bit PWM Timer
    发表于 11-24 12:21 15次下载
    EV_HC32F460_<b class='flag-5'>Timer</b>之正交<b class='flag-5'>编码器</b>调试

    编码器的作用和功能

    编码器的作用和功能编码器是一种常用的电子元件,其作用是将模拟信号转换为数字信号或者将数字信号进行编码。其主要功能是将输入信号进行分析和处理
    的头像 发表于 06-14 09:22 1.2w次阅读
    <b class='flag-5'>编码器</b>的作用和<b class='flag-5'>功能</b>

    编码器音频功能

    的音频通道数量。编码器音频工作原理,其中实现了双向音频功能,即对讲功能。 声明:部分内容及图片来源于网络,如有侵权请联系删除。 无论音频编码器还是视频
    的头像 发表于 08-25 11:11 757次阅读