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

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

3天内不再提示

以正交输出脉冲和ADC序列采样为例介绍QEI灵活计数功能

先楫半导体HPMicro 来源:先楫半导体HPMicro 2024-03-22 17:30 次阅读

HPM67/63/62系列中几个常见应用需求

输出固定个数的脉冲

伺服应用中需要输出正交的固定脉冲反馈当前运动位置

步进电机控制应用需要MCU输出指定脉冲个数,配置运行步长

常规方法是配置PWM或GPTIMER,在每个脉冲输出后在中断中计数,最后软件封波

高速、大数据量ADC采样

光伏上拉弧检测需要采集多路ADC通道实现FFT运算,采集数据量大,采样频率高

电能质量检测需要采集多路电流电压数据

ADC模块中虽然有序列采样DMA模式,但没有序列模式DMA转换完成中断,需要通过HDMA实现转换搬移,需要占用DMA通道。对于HPM67/63/62只有8个通道,会影响到其他应用使用DMA

LED显示屏驱动

大屏LED显示需要确定固定脉冲个数和相位

通常只能靠硬件指令控制延迟

本文以正交输出脉冲和ADC序列采样为例介绍QEI灵活计数功能

87a849bc-e7f6-11ee-a297-92fbcf53809c.png

87b19ca6-e7f6-11ee-a297-92fbcf53809c.png

QEI功能简介

88d9e44e-e7f6-11ee-a297-92fbcf53809c.png

支持A,B,Z,H四个信号输入

输入信号来自互联管理器TRGM

来自TRGM的输入输出IO

来自其他片上模块

多种计数方式

支持单相、两相 (正交/上下/方向脉冲)方波输入

多个计数器

相位计数器,即位置计数器

Z相计数器,即周数计数器测速计数器

测定A,B相信号保持特定状态的时长,可反应电机转速信息

位置匹配

支持位置进行匹配检测。当电机运行到指定位置时,产生位置匹配标志事件

该事件可以触发中断,DMA 请求,也可以作为事件输出

定时器计数器

32位,全局计数器

输出固定脉冲原理

88e70f20-e7f6-11ee-a297-92fbcf53809c.png

程序中使用了PWM、互联管理器、QEI三个模块

PWM负责输出脉冲和通过故障输入封锁脉冲

互联管理器负责实现模块之间互联

QEI负责脉冲计数和计数比较产生故障信号,用于封波控制

通过软件配置,不需要额外中断,内部连接不需要外部引脚连线

交脉冲输出的PWM配置

88eb03c8-e7f6-11ee-a297-92fbcf53809c.png

正交脉冲输出配置

配置比较器值位于周期的1/4和3/4处

每个输出都包含2个比较器,A相为比较器0、1,B相为比较器2、3

封波状态

封波时输出电平均为低

封波后需通过软件恢复输出

88fd8dfe-e7f6-11ee-a297-92fbcf53809c.png

QEI脉冲输入配置

配置比较输出通道8作为内部输出,与A、B脉冲输出独立,配置相位时更灵活

通过比较器配置可以选择封波时刻

使能内部故障封波

使能内部故障0作为封波信号

禁止硬件恢复脉冲输出

正交脉冲输出的QEI配置

89012414-e7f6-11ee-a297-92fbcf53809c.png

QEI模式

设置为方向+脉冲模式

脉冲计数时是上下沿同时计数,即单个脉冲计两次

禁止Z信号复位相位计数器

使能位置匹配功能

使能位置匹配功能,并允许匹配事件输出

正交脉冲输出的互联管理器配置

890febac-e7f6-11ee-a297-92fbcf53809c.png

互联管理器功能

多路复选器(MUX)阵列

支持多个输入和多个输出

每个输出都可以单独配置,从众多输入中选择

输入信号数字滤波器

输出信号极性取反

信号边沿到脉冲转换

DMA 请求管理,管理 PWMT,QDEC 和 HALL 的 DMA 请求

互联管理器配置

关联PWM 8通道输出至QEI脉冲输入

禁止QEI的Z信号和方向信号

关联QEI事件输出至PWM故障信号0

设置输出脉冲个数

891ab08c-e7f6-11ee-a297-92fbcf53809c.png

PWM设置

停止PWM模块,复位时基

根据方向配置A、B相输出相位

软件恢复PWM输出

恢复PWM时需注意:GCR寄存器的FAULTCLR写1后,故障清除;随后需要把FAULTCLR位清0,否则再下一次故障发生后,当故障消除后PWM还会自动恢复

启动PWM

QEI配置

复位QEI计数器

配置计数比较器,考虑QEI为上下沿计数,配置计数值为:计数值*2-1

开启计数

正交脉冲输出波形

8931bde0-e7f6-11ee-a297-92fbcf53809c.png

上图是正交脉冲输出的波形

棕色是A相输出、灰色是B相输出、红色是QEI计数事件

程序设置为输出10个脉冲、正转

不增加中断需求,减少软件开销

ADC序列模式中DMA连续转换

893da16e-e7f6-11ee-a297-92fbcf53809c.png

程序中使用了PWM、互联管理器、ADC、QEI四个模块

PWM负责定时输出脉冲

互联管理器负责实现模块之间互联

ADC启动序列DMA转换,最多转换4906个数据

QEI负责脉冲计数并产生计数比较中断,中断切换DMA存储地址

选用ADC内部DMA,不占用HDMA通道

ADC序列模式中DMA连续转换代码

89411024-e7f6-11ee-a297-92fbcf53809c.png

PWM、互联管理器、QEI配置与前文相似

在QEI匹配中断中切换DMA目标地址

无论是通过HDMA还是ADC内部DMA,在完成大数据量转换后都需要进入中断快速处理,QEI+ADC序列模式并不增加额外中断需求

切换内部DMA目标地址时,需要复位内部DMA位;否则周期(Cycle)位将无法正确显示当前转换

总结

QEI可以实现更灵活的计数,并产生相应的计数事件匹配。

互联管理器的内部互联更加自由,不占用外部引脚,可以产生中断或内部事件。

PWM模块包含多个比较器,可以实现多相位输出脉冲,控制更灵活、相位精度更高。

通过多种组合用户可以根据实际应用实现更多功能。




审核编辑:刘清

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

    关注

    95

    文章

    5651

    浏览量

    539461
  • 计数器
    +关注

    关注

    32

    文章

    2121

    浏览量

    92977
  • LED显示
    +关注

    关注

    0

    文章

    338

    浏览量

    37578
  • 电机转速
    +关注

    关注

    0

    文章

    54

    浏览量

    11169
  • 触发中断
    +关注

    关注

    0

    文章

    10

    浏览量

    6531
  • ADC采样
    +关注

    关注

    0

    文章

    125

    浏览量

    12708

原文标题:经验分享 | 巧用QEI,计数更灵活

文章出处:【微信号:HPMicro,微信公众号:先楫半导体HPMicro】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ESM335x Linux输出脉冲计数

    停止PWM输出,由于系统响应延迟,使用输出脉冲计数功能时最高频率不应超过100KHz。本文将介绍Linux系统下
    发表于 06-13 10:01

    LM3S9B92如何配置模块A B正交计数模式?

    TILM3S 系列芯片部分含有编码器(QEI) 模块,使用时配置芯片 如 LM3S9B92时,代码库里没有说如何在计数模式如何配置模块A ,B 正交 计数模式。 QEIConfigur
    发表于 04-10 10:19

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

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

    Numaker-IoT-M487 QEI控制器测评总结

    脉冲计数器 (QEI_CNT) 1 个 32 位的软件锁存正交编码脉冲计数器保存寄存器 (QEI_CNTHOLD) 1 个 32 位的
    发表于 06-10 14:29

    对NuMaker-M2354开发板的正交编码器QEI模块进行测试

    任务新唐 NuMaker-M2354正交编码器QEI模块3.资源介绍翻阅新唐M2354数据手册查看新唐开发板原理图及数据手册,PD10、PD11、PD12空闲,配置
    发表于 06-29 11:23

    应用笔记(三)| 运用DMA 功能实现高级定时器和ADC 的同步触发采样

    ATIM 的通道 1~3 比 较 / 捕获寄存器 B 中任意一个寄存器设定 ADC采样时刻,这些操作都可以由硬件自动完成,减轻了 CPU 的工作量。采样 AIN0~AIN3 这
    发表于 07-08 17:02

    定时器的正交译码器功能介绍

    本期内容来介绍一下定时器的正交译码器功能(编码器接口)。正交译码器是和正交编码器外设配合使用的,可对编码器输入的
    发表于 08-16 06:46

    基于VHDL的正交编码脉冲电路解码计数器设计

    针对正交编码脉冲电路脉冲(quadratureencoderpulse,QEP)的解码和计数的问题,给出了QEP解码计数器的解决方案.本方案
    发表于 03-01 16:36 98次下载

    脉冲序列检波器和计数器电路图

    脉冲序列检波器和计数器电路图
    发表于 07-02 13:07 774次阅读
    <b class='flag-5'>脉冲序列</b>检波器和<b class='flag-5'>计数</b>器电路图

    脉冲电源脉冲序列产生的一种方法

    脉冲电源脉冲序列产生的一种方法 介绍一种利用8253芯片产生可变的脉冲序列的方法。在该方法中,通过软件编程使8253的2个计数通道分别工作
    发表于 10-16 22:31 2778次阅读
    <b class='flag-5'>脉冲</b>电源<b class='flag-5'>脉冲序列</b>产生的一种方法

    dsPIC30F系列中文参考手册-第16章 正交编码器接口(QEI

    dsPIC30F系列中文参考手册-第16章 正交编码器接口(QEI
    发表于 05-25 17:19 19次下载

    英创信息技术ESM335x Linux输出脉冲计数介绍

    停止PWM输出,由于系统响应延迟,使用输出脉冲计数功能时最高频率不应超过100KHz。本文将介绍Linux系统下
    的头像 发表于 02-04 10:47 963次阅读
    英创信息技术ESM335x Linux<b class='flag-5'>输出</b><b class='flag-5'>脉冲计数</b><b class='flag-5'>介绍</b>

    脉冲和脉冲的详细讲解

    在实际超声检测中,一般使用脉冲超声波。随着超声检测技术的发展。理论和实践表明,超声波需要分成宽脉冲和脉冲两个大类。
    的头像 发表于 07-04 18:10 2.7w次阅读
    宽<b class='flag-5'>脉冲和</b>窄<b class='flag-5'>脉冲</b>的详细讲解

    如何使用网络IO的脉冲计数脉冲输出功能

    一适用型号该笔记适用于ME31系列、MA01系列等IO设备,其中脉冲计数需要IO设备具有输入检测(即,DI输入)功能脉冲输出需要具有开关量输出
    的头像 发表于 09-08 08:22 700次阅读
    如何使用网络IO的<b class='flag-5'>脉冲计数</b>和<b class='flag-5'>脉冲</b><b class='flag-5'>输出</b><b class='flag-5'>功能</b>?

    脉冲信号和单位采样序列有何区别?

    脉冲信号和单位采样序列有何区别? 脉冲信号和单位采样序列是数字信号处理中两个重要的概念。在本文中
    的头像 发表于 02-06 09:25 456次阅读