?
電子發(fā)燒友網(wǎng)訊:無論是8位、16位、還是32位的單片機(jī)在日常生活中都可以找到各自的應(yīng)用空間。近年來,單片機(jī)在體系架構(gòu)上正從8位向16位和32位升級(jí)。在8位單片機(jī)方面,美國微芯科技已經(jīng)雄踞霸主地位,但是隨著調(diào)制解調(diào)器、GPS、路由器、等中高端應(yīng)用需求的增長,預(yù)計(jì)32位單片機(jī)未來的應(yīng)用增長速度將會(huì)超越16位單片機(jī),未來32位單片機(jī)的前景將會(huì)更加寬廣。
德州儀器 (TI) 是全球領(lǐng)先的模擬及數(shù)字半導(dǎo)體 IC 設(shè)計(jì)制造公司。除了提供模擬技術(shù)、數(shù)字信號(hào)處理 (DSP) 以外,TI 在單片機(jī)領(lǐng)域也涉入較深,推出一系列的32位單片機(jī),其中Piccolo系列微處理器最具代表性,具體型號(hào)如C2000和F28x系列。
一、德州儀器(TI)32位單片機(jī)系列產(chǎn)品
1、C2000? 32 Bit 實(shí)時(shí) MCU 概述
與市場(chǎng)上其他MCU不同,TI C2000 MCU專為實(shí)時(shí)控制應(yīng)用而設(shè)計(jì),如今進(jìn)入市場(chǎng)已超過15年。從最低價(jià)格少于2美元、工作頻率高達(dá)80MHz 的Piccolo定點(diǎn)和浮點(diǎn)MCU、到頻率高達(dá)300MHz并帶有浮點(diǎn)性能的Delfino系列 MCU ,乃至整合C28x內(nèi)核和ARM Cortex-M3內(nèi)核,從而提供完整的控制和連接性能的Concerto MCU,TI C2000 MCU平臺(tái)正持續(xù)拓展,在諸如擁有廣闊市場(chǎng)前景的電機(jī)控制、太陽能市場(chǎng)、電力線通信市場(chǎng)以及對(duì)成本有更高要求的大學(xué)和其他更多領(lǐng)域源源不斷地推出新的解決方案。
C2000器件是支持高性能集成外設(shè)的 32 位微控制器,適用于實(shí)時(shí)控制應(yīng)用。其數(shù)學(xué)優(yōu)化型內(nèi)核可為設(shè)計(jì)人員提供能夠提高系統(tǒng)效率、可靠性以及靈活性的方法。 C2000 器件具有功能強(qiáng)大的集成型外設(shè),是理想的單芯片控制解決方案。C2000 開發(fā)工具策略及軟件 (controlSUITE) 可創(chuàng)建開放式平臺(tái),不但可最大限度地提高可用性,同時(shí)還可最大限度地縮短開發(fā)時(shí)間。
TI C2000 MCU的特性與優(yōu)勢(shì):
?C2000 MCU真正將數(shù)字信號(hào)處理內(nèi)核的優(yōu)良性能與微控制器相關(guān)的集成化和易用性結(jié)合了起來;
?無人比肩的獨(dú)特?cái)?shù)學(xué)引擎包括 C28x DSP內(nèi)核和浮點(diǎn)選項(xiàng),控制法則加速器、維特比復(fù)雜數(shù)學(xué)處理單元 (VCU)和一個(gè)ARM? CortexTM-M3協(xié)處理器。這些特性提供定制的、增強(qiáng)的處理能力,這使得開發(fā)人員能只使用一個(gè)單MCU高效地執(zhí)行復(fù)雜控制和通信操作,這樣減少了物料清單的總成本和系統(tǒng)成本;
?C2000 MCU提供高級(jí)的、面向控制的外設(shè),此外設(shè)可傳送準(zhǔn)確、快速和清晰無誤的數(shù)據(jù)以提高系統(tǒng)效率;
?C2000 MCU提供更多的高級(jí)連接功能,如10/100 以太網(wǎng),集成PHY 的USB On-The-Go、雙通道 CAN等;
?C2000微控制器系列產(chǎn)品多樣性使得開發(fā)人員能夠很容易地規(guī)劃他們的設(shè)計(jì)并重復(fù)使用代碼。
內(nèi)核架構(gòu):C28x 32 位 CPU
C2000 控制器采用了32 位中央 CPU 內(nèi)核,名為 C28x,可與高度優(yōu)化的外設(shè)和中斷管理總線耦合。作為常規(guī)微處理器與數(shù)字信號(hào)處理器之間的橋梁,C28x 內(nèi)核為 DSP 帶來了優(yōu)秀的代碼密度和執(zhí)行速度,以及簡(jiǎn)便易用性和微處理器的可訪問性。特性包括:
帶有硬件的高效 C 引擎可使 C 編譯器生成具有世界領(lǐng)先代碼密度的緊湊代碼。
單周期讀 - 修改 - 寫指令、單周期 32 位乘法。
具有自動(dòng)零周期背景保存的快速中斷服務(wù)時(shí)間(低至 9 個(gè)周期)。
96 個(gè)專用中斷矢量,無需軟件決策制定
Delfino 控制器中的 32 位浮點(diǎn)部件
Piccolo 器件通過使用獨(dú)立控制律加速器 (CLA) 處理浮點(diǎn)控制環(huán)路,使 CPU 得到釋放,以便完成其它任務(wù)。
3 個(gè) 32 位通用 CPU 定時(shí)器可為任何應(yīng)用提供史無前例的準(zhǔn)確性和靈活性。
代碼安全模塊可防止反向工程并保護(hù)知識(shí)產(chǎn)權(quán)
功能強(qiáng)大的外設(shè)
C2000 控制器具有先進(jìn)的集成外設(shè)模塊,為系統(tǒng)帶來更多好處。外設(shè)包括:
增強(qiáng)型 PWM 模塊,提供高分辨率(低至 65 皮秒)的占空比、周期和相位控制。此外,完全可編程跳閘區(qū)域檢測(cè)和死區(qū)時(shí)間發(fā)生器為系統(tǒng)提供了完善的故障和電涌保護(hù)。
業(yè)內(nèi)領(lǐng)先的嵌入式 ADC - 具有高達(dá) 16 路模擬輸入通道以及高達(dá) 12.5MSPS 的 12 位 ADC 采樣。專門針對(duì)速度和靈活性設(shè)計(jì),C2000 的 ADC 具有自動(dòng)定序功能,可以最大程度地減少 CPU 中斷。
基于 32 位定時(shí)器的增強(qiáng)型捕捉部件,具有高準(zhǔn)確度的感應(yīng)和更出色的靈活性。
正交編碼器脈沖 (QEP) 模塊,通過硬件選擇控制器解碼位置信號(hào)。
SPI、UART/SCI、CAN、I2C 和 LIN 通信模塊使 C2000 控制器與系統(tǒng)其它部件得以連接。
2、Piccolo? 32 位微控制器系列
Piccolo? F28x 32 位微控制器可為低成本應(yīng)用提供用于實(shí)現(xiàn)更高能源利用率的實(shí)時(shí)控制。
Piccolo? C28x? 低成本、高集成度 32 位微控制器采用最新的架構(gòu)技術(shù)成果和增強(qiáng)型外設(shè),能夠?yàn)橥ǔky以承擔(dān)相應(yīng)成本的應(yīng)用帶來 32 位實(shí)時(shí)控制功能的優(yōu)勢(shì)。無論是需要具有 F2802x 系列、額外閃存和 F2803x 系列高效控制環(huán)路 CLA 的定點(diǎn) 40-60 MHz 性能,還是浮點(diǎn)、雙倍內(nèi)存和 F2806x 系列的新型 Viterbi 復(fù)雜數(shù)學(xué)運(yùn)算法 (VCU),Piccolo MCU 均可滿足您的需求。Piccolo 的實(shí)時(shí)控制通過在諸如太陽能逆變器、白色家電設(shè)備、混合動(dòng)力汽車電池、電力線通信 (PLC) 和 LED 照明等應(yīng)用中實(shí)施高級(jí)算法,實(shí)現(xiàn)了更高的系統(tǒng)效率與精度。
Piccolo F2806x 方框圖與特性
二、Piccolo微控制器的軟件支持
德州儀器 (TI) 與 Visual Solutions 宣布,VisSim/Embedded Controls Developer v8.0 (VisSim) 可為 TI 最新 TMS320C2000 Piccolo 浮點(diǎn)微控制器 (MCU) 提供完全模型化的支持,其可簡(jiǎn)化編程,加速設(shè)計(jì)進(jìn)程。該軟件支持快速應(yīng)用開發(fā),并可為算法創(chuàng)建、位真仿真、器件初始化、原型設(shè)計(jì)以及生產(chǎn)性 C 語言代碼生成提供可視化支持。VisSim v8.0 完整版(可免費(fèi)試用兩個(gè)月)現(xiàn)已開始提供,可與 TI F28069 controlSTICK 及 F28069 實(shí)驗(yàn)板套件配合使用。
VisSim/Embedded Controls Developer v8.0 的主要特性與優(yōu)勢(shì)
? 直觀易用的界面可確保在幾分鐘內(nèi)啟動(dòng)開發(fā);
? 生產(chǎn)級(jí) C 語言代碼生成器不但支持高速采樣速率以及低 RAM 與低閃存需求,而且還可自動(dòng)生成高效定點(diǎn)與浮點(diǎn)運(yùn)算;
? 便捷的下拉菜單可引導(dǎo)為所有外設(shè)生成中斷驅(qū)動(dòng)型高效代碼,其中包括 A/D 轉(zhuǎn)換器及 PWM 的高級(jí)模式;
? 仿真特性可幫助開發(fā)人員在以圖形方式互動(dòng)查看結(jié)果的同時(shí),確認(rèn)、調(diào)試和調(diào)諧算法;
? VisSim 環(huán)境可自動(dòng)使用 TI Code Composer Studio IDE 與仿真功能(F2806x套件包含的)編譯算法,并將其鏈接和下載到目標(biāo)上;
? USB JTAG 的熱鏈路支持下載與目標(biāo)通信的實(shí)時(shí)主機(jī)服務(wù),可對(duì)響應(yīng)進(jìn)行互動(dòng)制圖,并在目標(biāo)執(zhí)行過程中改變參數(shù);
? F2806x MCU 的范例圖包含互動(dòng) FFT、PSD、電機(jī)控制、數(shù)字電源以及各種其它應(yīng)用,可為開發(fā)工作實(shí)現(xiàn)跨越式發(fā)展;
? 現(xiàn)有的 VisSim 圖無需調(diào)整圖的結(jié)構(gòu),便可輕松改變目標(biāo),將其指向任何 C2000 MCU,從而可顯著降低支持多目標(biāo)所需的工程設(shè)計(jì)成本。
三、Piccolo USB工具
德州儀器 (TI) 兩款適用于 Piccolo? 32 位 TMS320F2802x 微處理器 (MCU) 的USB工具,使設(shè)計(jì)人員能夠?yàn)槌杀久舾行蛻?yīng)用帶來32 位實(shí)時(shí)控制功能。新型評(píng)估與開發(fā)工具使設(shè)計(jì)人員得以更輕松地評(píng)估 Piccolo MCU,并開發(fā)出更節(jié)能的實(shí)時(shí)控制應(yīng)用,如微型太陽能逆變器、LED 照明、白色家電以及混合動(dòng)力汽車電池等。
售價(jià)為 39 美元的 Piccolo controlSTICK 可提供工程實(shí)例,包括從簡(jiǎn)單的閃爍 LED 到配置高分辨率的 ePWM 外設(shè)等Piccolo MCU 高級(jí)功能;售價(jià)為 79 美元的 Piccolo 實(shí)驗(yàn)板套件可提供開發(fā)過程中的下一步功能,使設(shè)計(jì)人員能夠便捷地針對(duì)基于 Piccolo
MCU 的全面項(xiàng)目進(jìn)行原型設(shè)計(jì)與開發(fā)。首批 F2802x Piccolo MCU —TMX320F28027PTA 與 TMX320F28023DAA頻率變動(dòng)范圍介于 40 ~ 60 MHz 之間,并具有高達(dá) 64 KB 的閃存、12 位 ADC、ePWM 以及其它各種外設(shè)。
Piccolo controlSTICK 重要特性Piccolo USB 實(shí)驗(yàn)板套件重要特性
· 售價(jià)39 美元的評(píng)估工具
· 可幫助設(shè)計(jì)人員評(píng)估并了解 Piccolo MCU
· 小型USB 棒狀封裝
· 板上 USB JTAG 可快速簡(jiǎn)便地進(jìn)行項(xiàng)目評(píng)估
· 通過排針引腳接入所有控制外設(shè)
· 32 KB 有限 Code Composer Studio? IDE 和工程實(shí)例· 售價(jià) 79 美元的完整開發(fā)套件,包括價(jià)值 49 美元的
Piccolo controlCARD
· 設(shè)計(jì)人員可利用原型設(shè)計(jì)通過 Piccolo MCU 實(shí)現(xiàn)更快速的開發(fā)
· 通過連接外部仿真器與電源進(jìn)行板上 USB JTAG 仿真
· 可接入所有 Piccolo 引腳
· 32 KB 有限 Code Composer Studio IDE
四、德州儀器 Piccolo MCU 新品
TI推新型C2000 32位F2803x和F2806x Piccolo微控制器
德州儀器 (TI) 的 Piccolo微控制器可實(shí)現(xiàn)設(shè)計(jì)升級(jí)、改善性能并簡(jiǎn)化數(shù)字實(shí)時(shí)控制系統(tǒng)的開發(fā),從而為電機(jī)控制應(yīng)用帶來全新的效率與創(chuàng)新。TMS320F2803x 和 TMS320F2806x Piccolo微控制器現(xiàn)包含一個(gè)通過一款新型C 編譯器實(shí)現(xiàn)的、可采用C 語言進(jìn)行編程的集成型控制律加速器 (CLA) 協(xié)處理器,旨在提升創(chuàng)新設(shè)計(jì)的水平。該 CLA 是一個(gè)32 位浮點(diǎn)數(shù)學(xué)加速器,專為獨(dú)立于 TMS320C28x CPU 內(nèi)核工作而設(shè)計(jì),以分擔(dān)復(fù)雜的高速控制算法。這種分擔(dān)將 CPU 解放出來去處理輸入/輸出和反饋環(huán)路測(cè)量,從而可使閉環(huán)應(yīng)用的性能提升5 倍之多。此外,該 CLA 還可直接訪問片上外設(shè)以實(shí)現(xiàn)算法的并行執(zhí)行,進(jìn)而加快系統(tǒng)響應(yīng)時(shí)間并改善效率。
新型 CLA C 編譯器軟件庫可通過 controlSUITE軟件平臺(tái)訪問,而且還提供了用于電機(jī)控制應(yīng)用開發(fā)的系統(tǒng)范例。該 CLA 能提供有效的軟件分區(qū),而 TI 優(yōu)化型免費(fèi)源代碼軟件庫以及在控制律加速器 (CLA) 上運(yùn)行的系統(tǒng)范例則提供了軟件代碼塊,從而使開發(fā)人員能夠簡(jiǎn)便快捷地完成定制設(shè)計(jì),并在電機(jī)控制應(yīng)用中實(shí)現(xiàn) 15%-20% 的性能提升。
F2803x 和 F2806x Piccolo微控制器系統(tǒng)的特性與優(yōu)勢(shì):
F2803x 和F2806x Piccolo 微控制器上通過一款用于 CLA 的新型 C 編譯器實(shí)現(xiàn)的、可采用 C 語言進(jìn)行編程的 32 位浮點(diǎn)協(xié)處理器利用元語言工具簡(jiǎn)化了編程、改善了靈活性與兼容性,并可直接訪問片上外設(shè)以實(shí)現(xiàn)算法的并行執(zhí)行。另外,該 CLA 還實(shí)現(xiàn)了更快的系統(tǒng)響應(yīng)、高 MHz 的控制環(huán)路、改進(jìn)的觸發(fā)以及故障檢測(cè)功能,旨在提高系統(tǒng)的穩(wěn)健性。
F2803x Piccolo 微控制器內(nèi)置了 TI 增強(qiáng)型脈寬調(diào)制器(150ps 分辨率的 ePWM)、12 位模數(shù)轉(zhuǎn)換器 (ADC) 和兩個(gè) 10 MHz 片上振蕩器,并能替代多個(gè)電子組件(即:外部電源 IC),以在降低總體系統(tǒng)成本的同時(shí)實(shí)現(xiàn)高級(jí)電源電子線路管理。
F2806x Piccolo 微控制器內(nèi)置了一個(gè) Viterbi、復(fù)數(shù)數(shù)學(xué)和 CRC 單元 (VCU) 以及 C28x 內(nèi)核與 CLA,可提供 75 條專用數(shù)學(xué)指令以加速通信算法的處理。另外,芯片上還包括 USB 2.0 和 CAN 接口(用于改善通信吞吐量和 PWM)、一個(gè) 16 通道、3 MSPS 12 位 ADC 以及三個(gè)帶 10 位基準(zhǔn)的模擬比較器,旨在免除外部設(shè)計(jì)組件。
與軟件配合使用的電機(jī)控制與數(shù)字電源開發(fā)套件、培訓(xùn)及全天候支持可簡(jiǎn)化開發(fā)流程并使產(chǎn)品快速上市。
C2000 微控制器平臺(tái)上的代碼兼容性允許開發(fā)人員在 40 MHz 至 300 MHz 的范圍內(nèi)進(jìn)行解決方案的調(diào)整。
controlCARD、controlSTICK和C2000 實(shí)驗(yàn)套件、C2000的靈活與模塊化設(shè)計(jì)理念使得開發(fā)人員能夠?qū)Ω鞣N不同的 C2000 微控制器進(jìn)行試驗(yàn),以滿足價(jià)格、性能和外設(shè)特性集的要求。
包括controlSUITE軟件,因而可提供針對(duì)電機(jī)控制開發(fā)以及數(shù)字電源的易用型開源演示 GUI、軟件范例和文檔。
五、Piccolo MCU應(yīng)用
Piccolo是一個(gè)口袋大小的單機(jī)數(shù)控(CNC)平臺(tái)。不用70美元,你就能夠組裝自己的Arduino兼容包,玩基本的數(shù)控輸出。還有比如讓它快速的涂鴉,印刷一次性名片,或者多個(gè)Piccolo合作一起制作一個(gè)大型的壁畫等等,這個(gè)套件提供了一個(gè)在2D和3D數(shù)字化制造平臺(tái)的小規(guī)模試驗(yàn)。
目前作者打算把Piccolo原型做成一個(gè)簡(jiǎn)單,能快速組裝,且易于使用的開源程序,完全由數(shù)字化制造的零部件和廉價(jià)的現(xiàn)成硬件組成。
Piccolo項(xiàng)目包括Arduino和處理庫,Piccolo有多種使用方式,如自主移動(dòng)或響應(yīng)傳感器和數(shù)據(jù),同時(shí)提供了一個(gè)方便的教育工具和新的輸出草圖。
2、如何使用PICCOLO系列MCU產(chǎn)生0~100占空比的PWM波形
(1)、簡(jiǎn)介
在某些應(yīng)用場(chǎng)合中,需要使用占空比從0%~100%變化的PWM波形來進(jìn)行控制。PICCOLO系列中TMS320X2802X具有強(qiáng)大的PWM控制模塊,利用它可以產(chǎn)生任意占空比的PWM波形。EPWM模塊有三種計(jì)數(shù)方式,分別為增計(jì)數(shù)方式、增減計(jì)數(shù)方式、減計(jì)數(shù)方式,下面將詳細(xì)講解如何利用前面兩種計(jì)數(shù)方式產(chǎn)生占空比任意變換的PWM波形。
(2)、具體描述
增計(jì)數(shù)模式
增計(jì)數(shù)模式下,當(dāng)TBCTR計(jì)數(shù)值等于TBPRD的時(shí)候,CMPA陰影寄存器中的值賦值到CMPA活動(dòng)寄存器中,同時(shí)計(jì)數(shù)值等于0的時(shí)候置位PWM波形,增計(jì)數(shù)等于CMPA值的時(shí)候清除復(fù)位PWM波形。在這種情況下,當(dāng)CMPA值大于周期值時(shí)產(chǎn)生占空比為100%的波形;當(dāng)CMPA值等于0的時(shí)候產(chǎn)生占空比為0%的波形。下面將對(duì)兩個(gè)臨界點(diǎn)做一下詳細(xì)的說明。
產(chǎn)生100%的占空比,CMPA值需要大于周期值。在增計(jì)數(shù)模式下,等于0的時(shí)候置位PWM波形,開始時(shí),置位PWM波形,波形只有在計(jì)數(shù)值等于CMPA的時(shí)候才會(huì)清除,由于計(jì)數(shù)值不可能等于CMPA,所以PWM波形將一直都是高電平,即產(chǎn)生100%占空比波形。為什么計(jì)數(shù)值到達(dá)不了CMPA時(shí),PWM波形就不會(huì)有變換,在EPWM模塊的應(yīng)用手冊(cè)中有說,增計(jì)數(shù)模式下,當(dāng)CMPA值大于周期值的時(shí)候,PWM波形將不會(huì)有任何變化;而CMPA值小于等于周期值的時(shí)候,PWM波形將隨著CMPA所設(shè)定的變化而改變,這里就解釋了為什么產(chǎn)生100%的占空比的波形CMPA值要大于周期值,而不能大于等于周期值。
產(chǎn)生0%的占空比,CMPA值需要等于0。開始計(jì)數(shù)時(shí),同時(shí)產(chǎn)生兩種事件,計(jì)數(shù)值等于0的事件,置位PWM波形;計(jì)數(shù)值等于CMPA值的事件,復(fù)位PWM波形。兩種事件同時(shí)產(chǎn)生,但是由于計(jì)數(shù)值等于CMPA值事件的優(yōu)先級(jí)要高,所以開始的時(shí)候PWM波形是低電平,而計(jì)數(shù)下去,計(jì)數(shù)值永遠(yuǎn)都是在0的位置比較,而比較事件的優(yōu)先級(jí)要高于CTR=0的事件,所以PWM波形將一直都是低電平。
程序如下所示:
EPwm1Regs.TBPRD = 600; // 定時(shí)器周期601
EPwm1Regs.TBPHS.half.TBPHS = 0x0000; // 同步值
EPwm1Regs.TBCTR = 0; // 清除定時(shí)器計(jì)數(shù)
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; // 定時(shí)器增減模式
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; // 同步脈沖裝載不使能
EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW; // 從鏡像裝載
EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_DISABLE; // 關(guān)閉同步輸出
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; // TB時(shí)鐘等于SYSCLK
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;
EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW; // 鏡像模式
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_PRD; // 當(dāng)CTR=prd的時(shí)候裝載鏡像數(shù)據(jù)
EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR; // 增計(jì)數(shù)下PWM波形清零
EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET; // 等于零的時(shí)候置位
EPwm1Regs.CMPA.half.CMPA = cnt; // 通過改變cnt的值來產(chǎn)生占空比變換的PWM波形
(3)、增減計(jì)數(shù)模式
占空比0%~100%
增減計(jì)數(shù)模式主要是用來產(chǎn)生對(duì)稱的PWM波形,如果在增計(jì)數(shù)模式下,產(chǎn)生占空比0%~100%變換的PWM波形,需要有如下設(shè)置:如果計(jì)數(shù)值在增計(jì)數(shù)時(shí)等于CMPA,置位PWM波形,如果在減計(jì)數(shù)時(shí)等于CMPA,復(fù)位PWM波形。當(dāng)計(jì)數(shù)值等于0的時(shí)候,CMPA陰影寄存器中的值賦值到活動(dòng)寄存器中。CMPA等于0的時(shí)候產(chǎn)生占空比為100%的波形,CMPA等于或大于PRD的時(shí)候產(chǎn)生占空比為0%的波形。下面將對(duì)產(chǎn)生100%和0%的占空比做詳細(xì)的說明。
產(chǎn)生100%的占空比,CMPA等于0。計(jì)數(shù)值在增計(jì)數(shù)方向下,如果等于CMPA,置位PWM波形。開始計(jì)數(shù)時(shí),計(jì)數(shù)值等于0,產(chǎn)生計(jì)數(shù)值等于CMPA事件,置位PWM波形,而且減計(jì)數(shù)下最后計(jì)數(shù)值等于1,不能和CMPA =0產(chǎn)生比較事件,也就不能清除PWM波形。所以產(chǎn)生100%占空比波形。
產(chǎn)生0%的占空比,CMPA等于或大于周期值。當(dāng)然開始計(jì)數(shù)時(shí),PWM波形需要是低電平。計(jì)數(shù)值等于或大于PRD的時(shí)候,PWM波形按照CTR=RPD設(shè)置事件變化,而CTR=PRD沒有設(shè)置事件,所以PWM波形沒有任何變化,依然為低電平,即0%的占空比。
占空比0%~50%
使用增減計(jì)數(shù)模式產(chǎn)生占空比從50%~0%變化的不對(duì)稱PWM波形。CMPA陰影寄存器值在計(jì)數(shù)值等于周期值的時(shí)候賦值到活動(dòng)CMPA寄存器。在計(jì)數(shù)值等于周期值的時(shí)候,復(fù)位PWM波形;增計(jì)數(shù)下,計(jì)數(shù)值和CMPA相等時(shí),置位PWM波形。CMPA值等于0時(shí),產(chǎn)生50%占空比波形,CMPA值等于PRD時(shí),產(chǎn)生0%占空比波形。下面將對(duì)產(chǎn)生50%和0%的占空比做詳細(xì)的說明。
產(chǎn)生50%占空比,CMPA值等于0。開始計(jì)數(shù)為增計(jì)數(shù)方向,此時(shí)計(jì)數(shù)值0等于CMPA寄存器值0,置位PWM波形,繼續(xù)計(jì)數(shù),當(dāng)計(jì)數(shù)值等于周期值PRD的時(shí)候復(fù)位PWM波形,產(chǎn)生占空比為50%的波形。
產(chǎn)生0%占空比,CMPA值等于PRD。開始計(jì)數(shù)在0點(diǎn)沒有產(chǎn)生任何的事件,繼續(xù)計(jì)數(shù)當(dāng)計(jì)數(shù)值等于PRD的時(shí)候,根據(jù)EPWM用戶手冊(cè)中說到。當(dāng)CMPA值大于或者等于PRD的時(shí)候,產(chǎn)生計(jì)數(shù)值等于PRD的事件,即為清除PWM波形,PWM波形一直都為低電平,為0%占空比波形。
程序例程如下所示:
EPwm1Regs.TBPRD = 600; // 定時(shí)器周期601
EPwm1Regs.TBPHS.half.TBPHS = 0x0000; // 同步值
EPwm1Regs.TBCTR = 0; // 清除定時(shí)器計(jì)數(shù)
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; // 定時(shí)器增減模式
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; // 同步脈沖裝載不使能
EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW; // 從鏡像裝載
EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_DISABLE; // 關(guān)閉同步輸出
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; // TB時(shí)鐘等于SYSCLK
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;
EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW; // 鏡像模式
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_PRD; // 當(dāng)CTR=prd的時(shí)候裝載鏡像數(shù)據(jù)
EPwm1Regs.AQCTLA.bit.PRD = AQ_CLEAR; // 計(jì)數(shù)值等于PRD時(shí)清除PWM
EPwm1Regs.AQCTLA.bit.CAU = AQ_SET; // 增計(jì)數(shù)下計(jì)數(shù)值等于CMPA置位PWM
EPwm1Regs.CMPA.half.CMPA = cnt; // 改變cnt的值,產(chǎn)生占空比50%~0%變化的波形
賦值方式
通過以上的敘述可以知道,CMPA有兩種賦值方式,1、計(jì)數(shù)值等于0的時(shí)候賦值;2、計(jì)數(shù)值等于PRD的時(shí)候賦值。兩種不同的賦值方式得到的效果也不同,但是只要掌握了變化要點(diǎn),就能解釋任何的PWM波形的變化。如果為增減計(jì)數(shù)模式下,產(chǎn)生對(duì)稱的PWM波形,不同的賦值方式,對(duì)CMPA值也有不同的要求。
如果CMPA在CTR等于0的時(shí)候賦值,那么CMPA的值必須大于或者等于1,否則不可能產(chǎn)生對(duì)稱的PWM波形。
如果CMPA在CTR等于RPD的時(shí)候賦值,那么CMPA的值必須小于或者等于PRD-1,否則不能產(chǎn)生對(duì)稱的PWM波形。
(4)、總結(jié)
由此可見,賦值方式的不同,會(huì)得到不同的效果,但是有一點(diǎn)可以理解的,不管什么樣的賦值方式,什么樣的置位復(fù)位模式,都必須要掌握EPWM模塊的特性,如事件優(yōu)先級(jí),對(duì)稱不對(duì)稱PWM波形的產(chǎn)生方式等,只有這樣才能理解任意的PWM波形產(chǎn)生方法。
六、Piccolo MCU的幾個(gè)小問題
1:LIN作為UART使用時(shí),如果用FIFO,應(yīng)該提供一個(gè)像280X那樣的寄存器SCIFFRX.bit.RXFFST隨時(shí)讀取到FIFO中數(shù)據(jù)的個(gè)數(shù),并且FIFO的長度可以immediately更新,而現(xiàn)在的FIFO數(shù)據(jù)長度更新存在bug,沒有immediately,好像是shadow。
2: AD口增加了比較器,利用比較器可以觸發(fā)很多事件。
不過現(xiàn)在的比較器輸入口是固定的。
其中A2,B2;A4,B4;A6,B6是一對(duì)輸入。
如果進(jìn)行雙同步采樣,習(xí)慣上把要采集的電流,電壓,比如Iu,Iv,或Uu,Uv放在一對(duì),如A2,B2;或A1,B1。
帶來的問題就是,這樣就要多占用一個(gè)AD口,比如Iu即要做比較輸入,又要和Iv同步采樣,就需要Iu,Iv占有A1,B1,然后Iu再接到A2,此時(shí)B2可以用內(nèi)部給的參考電壓。
如果三個(gè)比較器的輸入端可以用一個(gè)寄存器設(shè)定就完美了。
3:QEP接口
一個(gè)定時(shí)器
一個(gè)時(shí)間計(jì)數(shù)器
一個(gè)時(shí)間溢出標(biāo)志計(jì)數(shù)器
一個(gè)脈沖計(jì)數(shù)器
Eqep有一個(gè)定時(shí)器,可以設(shè)置如100us,CLR一次。
每次CLR,時(shí)間計(jì)數(shù)器清零,時(shí)間溢出標(biāo)志清零
時(shí)間計(jì)數(shù)器 ,時(shí)間溢出標(biāo)志用于計(jì)算實(shí)時(shí)速度。
脈沖計(jì)數(shù)器記錄位置信息,不清零。隨時(shí)讀取count,這個(gè)脈沖計(jì)數(shù)器和現(xiàn)在Qep的一樣。
定時(shí)器,時(shí)間計(jì)數(shù)器,時(shí)間溢出標(biāo)志計(jì)數(shù)器是需要新加入的。
這個(gè)方法,速度精度會(huì)很高,中斷程序的延時(shí)不會(huì)影響測(cè)速的精度,如果時(shí)間計(jì)數(shù)器輸入時(shí)鐘是30Mhz,速度計(jì)算精度可以在整個(gè)速度范圍達(dá)到一個(gè)pulse。而且不管速度多低,速度多高,不需要切換M,T算法。只需要在低速累加時(shí)間溢出標(biāo)志,在高速,QEP信號(hào)的兩個(gè)上升沿中間的計(jì)數(shù)值是不會(huì)受到程序順序執(zhí)行帶來的延時(shí)所影響。
如圖,reg讀出,清零代表中斷程序里面計(jì)算轉(zhuǎn)速。
QEP的定時(shí)器也設(shè)成100us,到了觸發(fā)一個(gè)定時(shí)中斷,也可以在PWM中斷中讀取定時(shí)器狀態(tài),因?yàn)槌绦虻难訒r(shí)不會(huì)給速度位置計(jì)算帶來誤差。
如圖計(jì)算速度用到的時(shí)間計(jì)數(shù)器reg中的值是T0+T1+T2+T3+T4。這樣的上升沿在高速狀態(tài)下,尤其是QEP信號(hào)1Mhz以上(時(shí)鐘30Mhz),可以得到很精確的速度。
?
?
?
?
?
評(píng)論
查看更多