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

发布者:huanhui最新更新时间:2024-07-09 来源: elecfans关键字:TIMER  编码器  接口功能 手机看文章 扫描二维码
随时随地手机看文章

通常在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的。


关键字:TIMER  编码器  接口功能 引用地址:如何不用实物来验证TIMER编码器接口功能

上一篇:单片机为何没有输出速度这个配置选项
下一篇:单片机外扩专用SPI SRAM存储芯片

推荐阅读最新更新时间:2024-11-02 08:05

用DSP实现增量式光电编码器的细分
摘要:对光栅传感器原始信号进行细分是采用各类光栅器件进行高精度位置测量、角度测量过程中不可或缺的一个环节。细分方法多种多样,针对各种现有的电子学细分方案并结合实际应用,本文采用软件程序判卦限,查表细分方法,实现了针对测角传感器信号的2048次细分。 关键词:光栅传感器, 测量, 细分 1 引言 目前,各类伺服驱动器及其应用中广泛采用光栅装置作为速度测量、位置测量的敏感元件。而且,广泛采用两路正交方波的形式,系统的实时性要求极高。因此,对于光栅编码器的信号的细分等主要处理环节,一方面集中考虑提高分辨率的问题,同时,需要考虑实时性的问题。 有很多采取纯硬件进行细分的方法,如,电阻链细分,空间细分,锁相倍频,还有两种方法的结合
[嵌入式]
52单片机Timer2的中断应用
/* This file is an example to use timer2 in mode 0 此程序用于定时器2模式0*/ #define MSB_reload_value 0x36 /* msb reload value exemple 高位重载值:延时60ms*/ #define LSB_reload_value 0x36 /* lsb reload value exemple 低位重载值*/ #include reg_c51.h //当前文件夹内的文件 /* * FUNCTION_PURPOSE: This file set up timer 2 in mode 0 (16 b
[单片机]
影响数控飞剪机动态剪切精度的诸因素实验研究
  1.工作机械的运行方式及控制系统构成   ①放卷工步由变频器驱动实施钢带放卷。   ②成型工步完成冲齿和成型。   ③移动剪切平台(以下简称移动平台)完成对齿条的剪切。   本文讨论的是“移动剪切平台对齿条的动态剪切过程及其各影响因素”。   1.1移动剪切平台对齿条的动态剪切过程   ⑴齿条的运动   齿条的运动速度由成型工步的速度决定。成型工步由变频器驱动。其速度是一确定值。   ⑵移动平台由数控系统的伺服电机驱动。移动平台上装有编码器和冲切模。由编码器对齿条的长度进行数齿计数。由冲切模实施动态冲切。   ⑶动态冲切   ①在正常工作时,齿条由成型工步驱动以规定的速度运行。齿条进入移动平台后,安装在移动平台上的编码器对
[嵌入式]
基于STM32神舟系列开发板的读取绝对式编码器源码
#include stm32f10x.h #include stm32f10x_usart.h #include #include #include #define CMD_BUFFER_LEN 100 GPIO_InitTypeDef GPIO_InitStructure; void Delay(__IO uint32_t nCount) { for(; nCount != 0; nCount--); } void RCC_Config(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); RCC_APB2PeriphClo
[单片机]
基于PC机的MPEG-4编码原理研究及实现
  0 引言   随着多媒体业务的发展,日益增长的多媒体通信量和有限的通信带宽之间的矛盾日益突出。为了减小传输的数据量,国际电信联盟和 MPEG标准组织都制定过各自的视频压缩标准。其中,最新MPEG-4标准以其高压缩率,支持低码率传输和基于对象编码等优点,而在传真、视频点播、电视会议、医用图像传输等领域广泛应用。   MPEG-4继承了MPEG-2中档次和等级概念,共有视频档次、音频档次、图形档次和场景描述档次共四类。档次是针对某一特定的应用而采用的编码工具,它是MPEG-4提供的工具集中一个子集,不同的档次就是不同的子集。每一个档次分为一个或多个等级,等级则定义了比特流参数的规格,实际上是限定了解码一个编码序列所应具备的性能
[嵌入式]
剖析离散传感器在机床行业的应用
离散传感器一般包括光电开关、接近开关、光栅、编码器等,这些都是自动化上经常用到的器件,它们各有各的作用,但是经常一起配合使用,成为传感器中增长较快的一支队伍。尤其是近几年来离散传感器增加非常迅猛。应用领域也进一步扩大。 离散传感器在机床行业的应用领域很宽,光电开关、接近开关、光栅等离散传感器产品都有应用。   如机床上用行程开关做限位开关,来实现对机床运动部件的超程保护,也使用光电开关、接近开关等来实现一些检测、保护、反馈及状态确认等功能;光栅则被广泛地应用于数控系统的闭环控制,以提高数控机床的加工精度;如果要求机床必须达到一定的安全保护等级,则必须使用安全开关或者光幕等等。由于离散传感器作为弱电设备,在机电一体化
[嵌入式]
单芯片编码器实现精确运动控制
  典型的标准封装编码器是许多运动控制应用的反馈设备,但是提供给最终用户的许多配置是有限制的。一个替代和面向应用的方法是利用更高集成度和智能化的传感器技术基于一个单芯片的编码器设计。这为需要微调编码器输出以提高总体系统性能的应用,提供了一种高度灵活和可配置的选择。   下文将对iC-Haus公司如何采用单芯片编码器方案提高运动控制系统性能进行详述。   提高运动控制应用的性能   在运动控制应用中,可以通过提高运动反馈回路的性能来增强系统性能。旋转和线性编码器提供这个反馈来实时报告速度和位置。例如,可以由下面的方式提高系统的运动控制性能:提高定位精度;较高的运行速度;提高系统效率;提高可靠性和可重复性。可以由下面的方法实现这
[嵌入式]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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