漫談系列的上一期中介紹了外設間互聯矩陣 MindSwitch,用戶可以通過 MindSwitch 將系統中的常用外設進行同步。本期,筆者就來聊聊 MM32F5270 中的高性能模擬外設,并以一個典型的 3 合 1 控制的例子來對前面幾期的內容做一個綜合的講解。
1、高速 ADC
ADC 用于將模擬信號轉換成數字信號,是微控制器應用中必不可少的外設之一。
MM32F5270 中包含了 2 組高速 SAR 結構 ADC,每組 ADC 支持最高 12 位分辨率和最高 3MSPS 采樣率。其中 ADC1 支持 17 路外部通道(ADC1_INx),ADC2 支持 19 路外部通道(ADC2_INx),兩組 ADC 有 12 個通道是共用引腳的(ADC12_INx),因此總計可用的外部通道數是 17 + 19 – 12 = 24 通道。MM32F5270 中的具體 ADC 通道分布整理如下表:
ADC 的具體特點這里就不一一介紹,感興趣的讀者可以閱讀 MM32F5270 用戶手冊。(https://www.mindmotion.com.cn/download/products/UM_MM32F5270_SC.pdf)
這里,對 MM32F5270 ADC 的部分創新特色做如下總結:
支持任意通道轉換
支持轉換通道的任意排列,最高可支持 16 個通道。這相對于僅能固定順序掃描的 ADC 而言有兩個優勢:一是實際應用中通道間的采樣順序可能會變化,二是實際應用中不同通道的采樣頻繁程度是不同的,而任意轉換序列 ADC 能夠很好的應對這些場景。下圖是一個例子,任意通道轉換模式下,前 5 次轉換中的通道編號是亂序的(任意可配的),且通道 12 和 通道 6 僅轉換 1 次,而通道 3 則轉換了 3 次。
每個任意通道都有獨立的結果寄存器
除了最近一次轉換的結果,MM32F5270 的每個任意通道都有一個獨立的結果寄存器,存儲對應通道最近一次的轉換結果。這樣用戶可以在所有ADC通道轉換完畢后在需要使用的時刻再讀取對應ADC通道的結果寄存器的值,而不需要每次轉換后都讀取,有效的降低了 DMA 或 CPU 對 ADC 的訪問次數和軟件復雜度。
支持自動注入模式
在任意通道轉換方式下,完成任意通道轉換后會自動開始注入通道轉換。每個 ADC 支持最高 4 路注入通道,同樣支持任意序列轉換。需要注意的是,注入通道的觸發源和常規通道的觸發源是獨立的,后文將要講到的 ADC 分時復用就需要用到這個功能。
支持最高 256 次硬件過采樣
MM32F5270 支持 2 到 256次可配的硬件過采樣,當配置為 256次時,ADC 將 256 次的采樣數值進行累加和硬件平均,并將結果存儲在一個 16 位寄存器中。很多應用為提高采樣準確度都需要進行多次采樣求平均的操作,硬件過采樣的優勢是不需要 DMA 或 CPU 的數據搬運和計算就能得到平滑濾波后的結果。
觸發源通過 MindSwitch 配置
通過 MindSwitch 配置的觸發可以實現更靈活可配的觸發,后文中的應用案例就將用到這一功能。
2、高速 COMP
比較器 COMP 用于比較兩個模擬信號的電平,比較器因其比較速度快和響應速度快等特點,在實際應用中常用于做過流保護等安全保護措施。
MM32F5270 中包含了 3 組高速比較器 COMP1~3,每組比較器都具備如下特點:
參考源豐富
帶窗口 Blanking 功能
支持輪詢
支持濾波
帶極性選擇功能
在實際應用中,往往是將外部的模擬信號和一個參考電壓值通過比較器進行比較,這個參考電壓值往往是一個固定電平,其可以從芯片外部輸入,也可以由芯片內部提供。MM32F5270 的比較器支持這兩種方式,并且提供了豐富的電壓參考源包括:
CRV 的輸出
DAC1 的輸出
DAC2 的輸出
這里,CRV 的全稱是 Comparator Reference Voltage,是一個低分辨率的電阻分壓網絡,可提供 1/20 到 16/20 共 16 檔參考電壓,其分壓源可以選擇是 VDDA 或者內部 1.2V 帶隙基準電壓。以 VDDA = 3V 為例,其分壓范圍為 150mV 到 2.4V,每 150mV 一檔,共 16 檔。
如果需要更精確的參考電壓,則可以采用 DAC1 或 DAC2 的輸出,這里的兩個 DAC 都是 12 位分辨率。以 VDDA = 3V 為例,其分壓范圍為 0V 到 3V,共 4096 檔,分辨率約為 0.7 mV(僅是理想分辨率,真實分辨率會更大)。
不論是 CRV 還是 DAC,其相較于外部輸入的最大優勢是其電壓可隨時調整。
每組 COMP 支持 4 路正向輸入和7路負相輸入,其中正向輸入全部由外部引腳輸入,而 7 路負相輸入中包含了 3 路外部引腳輸入、1 路 CRV 輸出、1 路 DAC1 輸出和 1 路 DAC2 輸出,總結如下表:
上面的提到的 2 組 DAC 除了可以為比較器提供參考電壓外,它們還帶有一定的輸出驅動能力,支持最快 1MSPS 轉換率,可以不需要外部放大器而直接驅動負載,非常適用于一些音頻應用。此外,DAC 還支持硬件自動生成三角波,用戶也可以通過精確的觸發控制和數據輸入來通過 DAC 生成更復雜的正弦波或任意波形。
3、應用場景:3 合 1 控制
經過上述介紹,相信讀者對于 MM32F5270 中的高性能模擬外設已經有所了解。接下來,筆者就將前幾期介紹內容和本期內容結合在一起,通過一個常見的應用案例來講解。
實際應用中的一個趨勢是系統的集成度越來越高,很多嵌入式系統會將原本分布在多個 MCU 中的功能集成在同一個主控 MCU 中,在汽車、家電和消費電子領域中都能觀察到這種趨勢,這樣做能夠帶來開發便捷、節省空間、節省成本、節省線束等多種好處,通常可以把這種多功能合并的結構叫做多合一控制,舉幾個典型的例子:
2 合 1
2 合 1 典型場景是雙電機控制,具體應用包括洗烘一體洗衣機中的滾筒電機 + 熱泵風扇控制、割草機中的割草電機 + 行進電機控制、電動三輪車中的差速電機控制等等。對于此類應用,靈動的 MM32SPIN0280 就非常適合,其配備了96MHz M0 內核、硬件除法和開方、雙 3MSPS ADC + 雙高級定時器、多路運放和比較器,感興趣的讀者可以點擊鏈接進一步了解。
3 合 1
3 合 1 典型的應用是空調外機中的 PFC + 壓縮機 + 風機控制,對于此類應用,其對于 CPU 性能的要求往往更高,因此,目前市面上的方案往往是 Cortex-M4 及以上性能的 MCU 或 DSP 來實現。MM32F5270 配備了 120MHz 的 Armv8 “星辰”處理器,帶有 DSP 和 FPU 擴展,單位主頻性能相較于 Cortex-M4 提升約 20%,并配有多并發的總線架構、高效互聯系統 MindSwitch、多路定時器以及本期重點講解的高性能模擬外設,非常適合用于此類 3 合 1 的應用場景。
4 合 1
典型的應用是四旋翼飛行器的四個螺旋槳控制,甚至可以將電機控制和飛控進行合并,此類應用往往需要 Cortex-M7 或以上性能的 MCU 或 MPU 來實現。
這里,筆者就以空調外機 3 合 1 控制這個典型應用來說明 MM32F5270 的高性能配置。
空調外機的主體部分包括 1 路 PFC、1 路壓縮機和 1 路風機。這里,對這3個模塊的參數做如下約束:
PFC
采用 Boost 結構,通過 1 路 PWM 驅動 MOS 管以控制功率因數校正網絡,PWM 周期為 64KHz,電流環為 32KHz,帶過流保護。
壓縮機
永磁同步電機,采用無感 FOC 控制,單電阻采樣,PWM 周期和電流環均為 16KHz,帶過流保護。
風機
永磁同步電機,采用無感 FOC 控制,單電阻采樣,PWM 周期和電流環均為 16KHz,帶過流保護。
其中,Boost PFC 的原理圖如下:
單電阻無感 FOC 電機控制原理圖如下:
根據上述約定:每路電機需要 3 相互補 PWM 來驅動,1 路高速 ADC 去做電流采樣,多個定時器通道去控制 ADC 的采樣點,以及 1路比較器做過流保護;PFC 則需要 1 路 PWM 輸出去做功率因數校正,1 路高速 ADC 去做電流采樣,1個定時器通道去控制 ADC 的采樣點,以及 1 路比較器做過流保護。
這里,考慮到兩路電機的 PWM 周期完全一致,因此可以很容易的將兩路電機的處理(包括采樣和計算)在時序上分割開,這樣, 兩路電機就可以共用一組 ADC 進行分時采樣,而另一組 ADC 可以留給 PFC 使用。
MM32F5270 中配置了 2 組高級定時器(TIM1 & TIM8)、4 組通用定時器(TIM2~5)、3 組比較器(COMP1~3)、2 組獨立 DMA(DMA1~2,可分別用于兩組 ADC),并通過 MindSwitch 和 CLU 將上述外設進行精確同步,能夠滿足上述資源需求。資源分配整理如下表:
其對應的系統框圖如下圖所示:
一種可行的時序分配和 PWM 波形如下圖所示。
這里,因 TIM1 和 TIM8 的 PWM 周期都是 16KHz,因此,TIM1 和 TIM8 可以做 180° 相位差的嚴格同步。這樣電機1(M1)和電機2(M2)的采樣可以分時復用 ADC1 而不互相干擾。CPU 也可以分時處理 M1 和 M2 的電流環而不互相干擾。
這里電機 1 的電流采樣點通過任意通道的觸發控制(ADC1_TRIG),而電機 2 的電流采樣點通過自動注入通道的觸發控制(ADC1_JTRIG)。
TIM3 的 PWM 周期是 64KHz,而電流環是 32KHz,因此,其剛好可以利用 M1 和 M2 電流環的處理間隙做 PFC 的電流環。當然,這也得益于 “星辰”處理器的高性能運算能力,有足夠的 CPU 帶寬可以用于三路算法的運算。
此時,MindSwitch 和 CLU 的內部連接如下圖所示:
可以看到,上述 3 合 1 的應用場景用到了 MM32F5270 的多個模塊:
高性能“星辰”處理器
MindSwitch 和 CLU
2 組高速 ADC
3 組高速比較器
2 組高級定時器
1 組通用定時器
2 組 DAC
MM32F5270 以高性能運算能力和豐富的外設資源,很好的滿足了 3 合 1 應用的需求。
4、小結 & NEXT
本文介紹了MM32F5270 中的 ADC、DAC 和比較器等模擬外設,并結合前幾期的知識點,以 3 合 1 的應用實例來說明了這些高性能外設間如何協同配合來滿足復雜應用的需求。
來源:靈動MM32MCU
-
dac
+關注
關注
43文章
2309瀏覽量
191569 -
高速ADC
+關注
關注
0文章
47瀏覽量
28635 -
MM32
+關注
關注
1文章
106瀏覽量
808
發布評論請先 登錄
相關推薦
評論