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

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

3天内不再提示

巧用QEI,计数更灵活

先楫半导体HPMicro 2024-03-23 08:16 次阅读

工程苗小兵

先楫资深FAE工程师

电力电子与电力传动专业硕士研究生,一个从事了20多年的功率控制的工程小兵,有多年的电机驱动和电源控制经验,专注电力电子控制方向。

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

输出固定个数的脉冲

  • 伺服应用中需要输出正交的固定脉冲反馈当前运动位置
  • 步进电机控制应用需要MCU输出指定脉冲个数,配置运行步长
  • 常规方法是配置PWM或GPTIMER,在每个脉冲输出后在中断中计数,最后软件封波

高速、大数据量ADC采样

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

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

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

LED显示屏驱动

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

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

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

97394ade-e8aa-11ee-9118-92fbcf53809c.png

9742ee68-e8aa-11ee-9118-92fbcf53809c.png

QEI功能简介

974b16ec-e8aa-11ee-9118-92fbcf53809c.png

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

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

来自TRGM的输入输出IO

来自其他片上模块

多种计数方式

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

多个计数器

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

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

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

位置匹配

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

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

定时器计数器

32位,全局计数器

输出固定脉冲原理

9754e532-e8aa-11ee-9118-92fbcf53809c.png

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

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

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

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

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

正交脉冲输出的PWM配置

9758deda-e8aa-11ee-9118-92fbcf53809c.png

正交脉冲输出配置

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

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

封波状态

封波时输出电平均为低

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

9760f016-e8aa-11ee-9118-92fbcf53809c.png

QEI脉冲输入配置

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

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

使能内部故障封波

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

禁止硬件恢复脉冲输出

正交脉冲输出的QEI配置

976d8876-e8aa-11ee-9118-92fbcf53809c.png

QEI模式

设置为方向+脉冲模式

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

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

使能位置匹配功能

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

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

97747d3e-e8aa-11ee-9118-92fbcf53809c.png

互联管理器功能

多路复选器(MUX)阵列

支持多个输入和多个输出

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

输入信号数字滤波器

输出信号极性取反

信号边沿到脉冲转换

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

互联管理器配置

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

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

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

设置输出脉冲个数

977c2b6a-e8aa-11ee-9118-92fbcf53809c.png

PWM设置

停止PWM模块,复位时基

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

软件恢复PWM输出

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

启动PWM

QEI配置

复位QEI计数器

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

开启计数

正交脉冲输出波形

97826fb6-e8aa-11ee-9118-92fbcf53809c.png

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

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

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

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

ADC序列模式中DMA连续转换

9786557c-e8aa-11ee-9118-92fbcf53809c.png

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

PWM负责定时输出脉冲

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

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

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

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

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

978b8da8-e8aa-11ee-9118-92fbcf53809c.png

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

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

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

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

总结

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

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

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

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

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

    关注

    146

    文章

    16977

    浏览量

    350206
  • 电源控制
    +关注

    关注

    2

    文章

    135

    浏览量

    26588
  • QEI
    QEI
    +关注

    关注

    0

    文章

    8

    浏览量

    11691
收藏 人收藏

    评论

    相关推荐

    ITECH IT9500电源自动测试系统 让电源测试更灵活

    艾德克斯IT9500电源自动测试系统为新一代的电源自动测试方案,为各种电源的生产和使用企业所设计,让电源测试更灵活
    发表于 05-07 14:50 2035次阅读

    M467可以对QEI计数进行清零吗?

    请问M467可以对QEI计数进行清零吗? EQEI_GET_CNT_VALUE(EQEI0) 例如 对于这个获取到的数据。
    发表于 01-16 06:56

    关于ARM的QEI增量编码器

    () / 100); //dt = 10ms QEIVelocityConfigure(QEI1_BASE, QEI_VELDIV_1, SysCtlClockGet() / 100); //dt = 10ms}我看设置了,没有正反计数
    发表于 05-18 15:06

    没有找到最大的QEI

    您好,我在QCY32 EP256MC506的MCLV2卡上使用QEI。我用Matlab编程我的微控制器,我没有找到最大的QEI率。我使用4096行的编码器。在低速,大约1000 rPM,我的控制
    发表于 03-25 10:05

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

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

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

    );rt_thread_mdelay(500);}5.结果由于手边没有电机等可用于QEI测量的设备,只能手动模拟给PD10、PD11脉冲信号,通过仿真看了QEI_CNT寄存器,确实能够实现计数6.心得
    发表于 06-29 11:23

    PIC33EP系列QEI模块初始化问题

    QEI1CONbits.CCM = 0x00;//选择正交编码器接口 (x4 模式)计数模式QEI1IOCbits.FLTREN = 1;//使能输入引脚数字滤波器QEI1IOCbit
    发表于 07-07 20:12

    使用EPWM模拟QEI波形

    应用: 本代码使用 EPWM 模拟 QEI 波形 。 BSP 版本: NUC442/472 Series BSP CMSIS v3.02.001 硬件
    发表于 08-31 08:09

    如何巧用松香

    如何巧用松香
    发表于 09-14 16:20 1292次阅读
    如何<b class='flag-5'>巧用</b>松香

    巧用单面敷铜板

    巧用单面敷铜板
    发表于 09-15 16:09 790次阅读
    <b class='flag-5'>巧用</b>单面敷铜板

    巧用手表电池

    巧用手表电池
    发表于 09-15 16:17 1317次阅读
    <b class='flag-5'>巧用</b>手表电池

    QEI测速

    QEI测速,资料有需要的朋友可以下来看看。
    发表于 05-05 11:37 14次下载

    SmartCortex_M3-1700配套例程-基础例程-QEI

    SmartCortex_M3-1700配套例程-基础例程-QEI
    发表于 07-14 16:36 12次下载

    如何推进发展更灵活的AI系统

    机器人技术为推进人工智能提供了重要机会,因为教机器独立学习将有助于在其他场景中开发更有能力和更灵活的AI系统。
    发表于 07-18 10:09 473次阅读

    腿+轮式动力!瑞士四足机器人展示最佳混合步态、运动更灵活

    腿+轮式动力!瑞士四足机器人ANYmal展示最佳混合步态,运动更灵活,机器人,四足机器人,步态,轮子,车轮
    发表于 02-20 13:44 2453次阅读
    腿+轮式动力!瑞士四足机器人展示最佳混合步态、运动<b class='flag-5'>更灵活</b>