HPM67/63/62系列中幾個(gè)常見應(yīng)用需求
輸出固定個(gè)數(shù)的脈沖
伺服應(yīng)用中需要輸出正交的固定脈沖反饋當(dāng)前運(yùn)動(dòng)位置
步進(jìn)電機(jī)控制應(yīng)用需要MCU輸出指定脈沖個(gè)數(shù),配置運(yùn)行步長
常規(guī)方法是配置PWM或GPTIMER,在每個(gè)脈沖輸出后在中斷中計(jì)數(shù),最后軟件封波
高速、大數(shù)據(jù)量ADC采樣
光伏上拉弧檢測需要采集多路ADC通道實(shí)現(xiàn)FFT運(yùn)算,采集數(shù)據(jù)量大,采樣頻率高
電能質(zhì)量檢測需要采集多路電流電壓數(shù)據(jù)
ADC模塊中雖然有序列采樣DMA模式,但沒有序列模式DMA轉(zhuǎn)換完成中斷,需要通過HDMA實(shí)現(xiàn)轉(zhuǎn)換搬移,需要占用DMA通道。對(duì)于HPM67/63/62只有8個(gè)通道,會(huì)影響到其他應(yīng)用使用DMA
LED顯示屏驅(qū)動(dòng)
大屏LED顯示需要確定固定脈沖個(gè)數(shù)和相位
通常只能靠硬件指令控制延遲
本文以正交輸出脈沖和ADC序列采樣為例介紹QEI靈活計(jì)數(shù)功能
QEI功能簡介
支持A,B,Z,H四個(gè)信號(hào)輸入
輸入信號(hào)來自互聯(lián)管理器TRGM
來自TRGM的輸入輸出IO
來自其他片上模塊
多種計(jì)數(shù)方式
支持單相、兩相 (正交/上下/方向脈沖)方波輸入
多個(gè)計(jì)數(shù)器
相位計(jì)數(shù)器,即位置計(jì)數(shù)器
Z相計(jì)數(shù)器,即周數(shù)計(jì)數(shù)器測速計(jì)數(shù)器
測定A,B相信號(hào)保持特定狀態(tài)的時(shí)長,可反應(yīng)電機(jī)轉(zhuǎn)速信息
位置匹配
支持位置進(jìn)行匹配檢測。當(dāng)電機(jī)運(yùn)行到指定位置時(shí),產(chǎn)生位置匹配標(biāo)志事件
該事件可以觸發(fā)中斷,DMA 請(qǐng)求,也可以作為事件輸出
定時(shí)器計(jì)數(shù)器
32位,全局計(jì)數(shù)器
輸出固定脈沖原理
程序中使用了PWM、互聯(lián)管理器、QEI三個(gè)模塊
PWM負(fù)責(zé)輸出脈沖和通過故障輸入封鎖脈沖
互聯(lián)管理器負(fù)責(zé)實(shí)現(xiàn)模塊之間互聯(lián)
QEI負(fù)責(zé)脈沖計(jì)數(shù)和計(jì)數(shù)比較產(chǎn)生故障信號(hào),用于封波控制
通過軟件配置,不需要額外中斷,內(nèi)部連接不需要外部引腳連線
正交脈沖輸出的PWM配置
正交脈沖輸出配置
配置比較器值位于周期的1/4和3/4處
每個(gè)輸出都包含2個(gè)比較器,A相為比較器0、1,B相為比較器2、3
封波狀態(tài)
封波時(shí)輸出電平均為低
封波后需通過軟件恢復(fù)輸出
QEI脈沖輸入配置
配置比較輸出通道8作為內(nèi)部輸出,與A、B脈沖輸出獨(dú)立,配置相位時(shí)更靈活
通過比較器配置可以選擇封波時(shí)刻
使能內(nèi)部故障封波
使能內(nèi)部故障0作為封波信號(hào)
禁止硬件恢復(fù)脈沖輸出
正交脈沖輸出的QEI配置
QEI模式
設(shè)置為方向+脈沖模式
脈沖計(jì)數(shù)時(shí)是上下沿同時(shí)計(jì)數(shù),即單個(gè)脈沖計(jì)兩次
禁止Z信號(hào)復(fù)位相位計(jì)數(shù)器
使能位置匹配功能
使能位置匹配功能,并允許匹配事件輸出
正交脈沖輸出的互聯(lián)管理器配置
互聯(lián)管理器功能
多路復(fù)選器(MUX)陣列
支持多個(gè)輸入和多個(gè)輸出
每個(gè)輸出都可以單獨(dú)配置,從眾多輸入中選擇
輸入信號(hào)數(shù)字濾波器
輸出信號(hào)極性取反
信號(hào)邊沿到脈沖轉(zhuǎn)換
DMA 請(qǐng)求管理,管理 PWMT,QDEC 和 HALL 的 DMA 請(qǐng)求
互聯(lián)管理器配置
關(guān)聯(lián)PWM 8通道輸出至QEI脈沖輸入
禁止QEI的Z信號(hào)和方向信號(hào)
關(guān)聯(lián)QEI事件輸出至PWM故障信號(hào)0
設(shè)置輸出脈沖個(gè)數(shù)
PWM設(shè)置
停止PWM模塊,復(fù)位時(shí)基
根據(jù)方向配置A、B相輸出相位
軟件恢復(fù)PWM輸出
恢復(fù)PWM時(shí)需注意:GCR寄存器的FAULTCLR寫1后,故障清除;隨后需要把FAULTCLR位清0,否則再下一次故障發(fā)生后,當(dāng)故障消除后PWM還會(huì)自動(dòng)恢復(fù)
啟動(dòng)PWM
QEI配置
復(fù)位QEI計(jì)數(shù)器
配置計(jì)數(shù)比較器,考慮QEI為上下沿計(jì)數(shù),配置計(jì)數(shù)值為:計(jì)數(shù)值*2-1
開啟計(jì)數(shù)
正交脈沖輸出波形
上圖是正交脈沖輸出的波形
棕色是A相輸出、灰色是B相輸出、紅色是QEI計(jì)數(shù)事件
程序設(shè)置為輸出10個(gè)脈沖、正轉(zhuǎn)
不增加中斷需求,減少軟件開銷
ADC序列模式中DMA連續(xù)轉(zhuǎn)換
程序中使用了PWM、互聯(lián)管理器、ADC、QEI四個(gè)模塊
PWM負(fù)責(zé)定時(shí)輸出脈沖
互聯(lián)管理器負(fù)責(zé)實(shí)現(xiàn)模塊之間互聯(lián)
ADC啟動(dòng)序列DMA轉(zhuǎn)換,最多轉(zhuǎn)換4906個(gè)數(shù)據(jù)
QEI負(fù)責(zé)脈沖計(jì)數(shù)并產(chǎn)生計(jì)數(shù)比較中斷,中斷切換DMA存儲(chǔ)地址
選用ADC內(nèi)部DMA,不占用HDMA通道
ADC序列模式中DMA連續(xù)轉(zhuǎn)換代碼
PWM、互聯(lián)管理器、QEI配置與前文相似
在QEI匹配中斷中切換DMA目標(biāo)地址
無論是通過HDMA還是ADC內(nèi)部DMA,在完成大數(shù)據(jù)量轉(zhuǎn)換后都需要進(jìn)入中斷快速處理,QEI+ADC序列模式并不增加額外中斷需求
切換內(nèi)部DMA目標(biāo)地址時(shí),需要復(fù)位內(nèi)部DMA位;否則周期(Cycle)位將無法正確顯示當(dāng)前轉(zhuǎn)換
總結(jié)
QEI可以實(shí)現(xiàn)更靈活的計(jì)數(shù),并產(chǎn)生相應(yīng)的計(jì)數(shù)事件匹配。
互聯(lián)管理器的內(nèi)部互聯(lián)更加自由,不占用外部引腳,可以產(chǎn)生中斷或內(nèi)部事件。
PWM模塊包含多個(gè)比較器,可以實(shí)現(xiàn)多相位輸出脈沖,控制更靈活、相位精度更高。
通過多種組合用戶可以根據(jù)實(shí)際應(yīng)用實(shí)現(xiàn)更多功能。
審核編輯:劉清
-
adc
+關(guān)注
關(guān)注
97文章
6229瀏覽量
541811 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2229瀏覽量
93819 -
LED顯示
+關(guān)注
關(guān)注
0文章
355瀏覽量
37780 -
電機(jī)轉(zhuǎn)速
+關(guān)注
關(guān)注
0文章
62瀏覽量
11202 -
觸發(fā)中斷
+關(guān)注
關(guān)注
0文章
11瀏覽量
6544 -
ADC采樣
+關(guān)注
關(guān)注
0文章
134瀏覽量
12778
原文標(biāo)題:經(jīng)驗(yàn)分享 | 巧用QEI,計(jì)數(shù)更靈活
文章出處:【微信號(hào):HPMicro,微信公眾號(hào):先楫半導(dǎo)體HPMicro】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論