十九、STM32的TIM(十)(编码器)

前言:在嵌入式系统中,编码器(Encoder) 是一种常见的位置与速度检测装置。它能将轴的机械旋转信号转化为电信号输出,从而实现对旋转角度、转速的测量。

在本篇文章中,我们将使用 STM32F103C8T6 的 定时器(TIM)编码器模式 来读取编码器的旋转方向与脉冲计数值,并在显示屏上实时显示角度或速度。

一、STM32 TIM 编码器模式介绍

STM32 的定时器(TIM1~TIM4)中,部分定时器支持 编码器接口模式(Encoder Interface Mode)。该模式可以自动根据 A、B 相信号完成计数方向识别和计数操作,无需手动外部中断检测。

编码器模式的 3 种配置方式

TIMx_SMCR 寄存器中的 SMS[2:0] 位用于选择编码器接口模式:

一般情况下,我们使用 Encoder Mode 3,既能对 A、B 两路边沿进行检测,也能自动判断正反转方向。

1.编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而指示编码器的位置、旋转方向和旋转速度。

2.每个高级定时器和通用定时器都拥有1个编码器接口。

3.两个输入引脚借用了输入捕获的通道1和通道2。

二、编码器的基本原理

编码器根据输出信号类型可分为:

增量型编码器(Incremental Encoder)

绝对型编码器(Absolute Encoder)

在 STM32 的应用中,最常用的是 增量型编码器。

增量型编码器工作原理

增量型编码器通常输出两路相位相差 90° 的方波信号,称为 A 相 与 B 相。

通过检测 A、B 两路信号的相位关系,可以判断转动方向:

每当编码器旋转一格,A/B 相就会产生一个脉冲。

若一圈输出 1024 个脉冲,则可通过计数得到旋转角度或转速。

三、正交编码器

正交编码器是一种增量式编码器(Incremental Encoder),通过输出两路相位相差 90° 的方波信号 ------ A 相 与 B 相,来表示旋转状态。

接口基本结构:

工作模式:

在Tl1和Tl2上计数的模式:

四、优势

1.TIMx 的两个输入通道(CH1、CH2)分别接收 A 相与 B 相信号;

2.硬件自动识别信号相位关系,自动计数并判断方向;

3.程序无需处理中断或手动判相,极大减轻 CPU 负担。

代码部分将在下一章体现。

相关推荐
ACP广源盛139246256731 天前
GSV5100B@ACP#一种具有音频提取和插入功能的 2 进 2 出 HDMI2.0 中继器 / CAT 延长器
单片机·嵌入式硬件·音视频
藏,捉1 天前
使用自己绘制的板子通过485与西门子PLC1214C通讯,控制舵机摇摆运动
单片机·工控·485通讯
kaikaile19951 天前
基于DSP28335与AD7606的采样程序实现
单片机·嵌入式硬件
Joshua-a1 天前
STM32嵌入式开发核心:volatile与寄存器操作详解
单片机·嵌入式硬件
顾安r1 天前
11.22 脚本 手机termux项目分析(bash)
前端·python·stm32·flask·bash
九鼎创展科技1 天前
九鼎创展发布X3588SCV4核心板,集成LPDDR5内存,提升RK3588S平台性能边界
android·人工智能·嵌入式硬件·硬件工程
智者知已应修善业1 天前
【51单片机LED贪吃蛇】2023-3-27
c语言·c++·经验分享·笔记·嵌入式硬件·51单片机
国科安芯1 天前
MCU芯片AS32A601与INA226芯片精确测量实现与应用
网络·单片机·嵌入式硬件·架构·安全性测试
一支闲人1 天前
STM32 CAN外设1
stm32·单片机·嵌入式硬件·基础知识·cna协议
HanLop1 天前
51单片机入门
单片机·嵌入式硬件·51单片机