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

电子说

1.3w人已加入

描述

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

输出固定个数的脉冲

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

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

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

高速、大数据量ADC采样

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

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

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

LED显示屏驱动

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

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

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

触发中断

触发中断

QEI功能简介

触发中断

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

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

来自TRGM的输入输出IO

来自其他片上模块

多种计数方式

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

多个计数器

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

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

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

位置匹配

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

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

定时器计数器

32位,全局计数器

输出固定脉冲原理

触发中断

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

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

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

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

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

交脉冲输出的PWM配置

触发中断

正交脉冲输出配置

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

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

封波状态

封波时输出电平均为低

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

触发中断

QEI脉冲输入配置

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

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

使能内部故障封波

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

禁止硬件恢复脉冲输出

正交脉冲输出的QEI配置

触发中断

QEI模式

设置为方向+脉冲模式

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

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

使能位置匹配功能

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

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

触发中断

互联管理器功能

多路复选器(MUX)阵列

支持多个输入和多个输出

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

输入信号数字滤波器

输出信号极性取反

信号边沿到脉冲转换

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

互联管理器配置

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

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

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

设置输出脉冲个数

触发中断

PWM设置

停止PWM模块,复位时基

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

软件恢复PWM输出

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

启动PWM

QEI配置

复位QEI计数器

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

开启计数

正交脉冲输出波形

触发中断

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

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

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

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

ADC序列模式中DMA连续转换

触发中断

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

PWM负责定时输出脉冲

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

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

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

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

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

触发中断

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

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

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

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

总结

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

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

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

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




审核编辑:刘清

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分