经验分享 | 巧用QEI,计数更灵活
工程苗小兵
先楫资深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灵活计数功能
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模块包含多个比较器,可以实现多相位输出脉冲,控制更灵活、相位精度更高。
通过多种组合用户可以根据实际应用实现更多功能。
END
“先楫半导体”(HPMicro)是一家致力于高性能嵌入式解决方案的半导体公司,总部位于上海,产品覆盖微控制器、微处理器和周边芯片,以及配套的开发工具和生态系统。公司成立于2020年6月,总部坐落于上海市张江高科技园区,并在天津、苏州、深圳和杭州均设立分公司。核心团队来自世界知名半导体公司管理团队,具有15年以上,超过20个SoC的丰富的研发及管理经验。先楫半导体以产品质量为本,所有产品均通过严格的可靠性测试。目前已经量产的高性能通用MCU产品包含HPM6700/6400、HPM6300、HPM6200、HPM5300及HPM6800系列,性能领先国际同类产品并通过AEC-Q100认证。公司已完成ISO9001质量管理认证和ISO 26262/IEC61508功能安全管理体系双认证,全力服务中国乃至全球的工业、汽车和能源市场。更多信息,请访问 https://hpmicro.com/