?
電子發(fā)燒友網(wǎng)訊:無論是8位、16位、還是32位的單片機在日常生活中都可以找到各自的應用空間。近年來,單片機在體系架構(gòu)上正從8位向16位和32位升級。在8位單片機方面,美國微芯科技已經(jīng)雄踞霸主地位,但是隨著調(diào)制解調(diào)器、GPS、路由器、等中高端應用需求的增長,預計32位單片機未來的應用增長速度將會超越16位單片機,未來32位單片機的前景將會更加寬廣。
德州儀器 (TI) 是全球領(lǐng)先的模擬及數(shù)字半導體 IC 設計制造公司。除了提供模擬技術(shù)、數(shù)字信號處理 (DSP) 以外,TI 在單片機領(lǐng)域也涉入較深,推出一系列的32位單片機,其中Piccolo系列微處理器最具代表性,具體型號如C2000和F28x系列。
一、德州儀器(TI)32位單片機系列產(chǎn)品
1、C2000? 32 Bit 實時 MCU 概述
與市場上其他MCU不同,TI C2000 MCU專為實時控制應用而設計,如今進入市場已超過15年。從最低價格少于2美元、工作頻率高達80MHz 的Piccolo定點和浮點MCU、到頻率高達300MHz并帶有浮點性能的Delfino系列 MCU ,乃至整合C28x內(nèi)核和ARM Cortex-M3內(nèi)核,從而提供完整的控制和連接性能的Concerto MCU,TI C2000 MCU平臺正持續(xù)拓展,在諸如擁有廣闊市場前景的電機控制、太陽能市場、電力線通信市場以及對成本有更高要求的大學和其他更多領(lǐng)域源源不斷地推出新的解決方案。
C2000器件是支持高性能集成外設的 32 位微控制器,適用于實時控制應用。其數(shù)學優(yōu)化型內(nèi)核可為設計人員提供能夠提高系統(tǒng)效率、可靠性以及靈活性的方法。 C2000 器件具有功能強大的集成型外設,是理想的單芯片控制解決方案。C2000 開發(fā)工具策略及軟件 (controlSUITE) 可創(chuàng)建開放式平臺,不但可最大限度地提高可用性,同時還可最大限度地縮短開發(fā)時間。
TI C2000 MCU的特性與優(yōu)勢:
?C2000 MCU真正將數(shù)字信號處理內(nèi)核的優(yōu)良性能與微控制器相關(guān)的集成化和易用性結(jié)合了起來;
?無人比肩的獨特數(shù)學引擎包括 C28x DSP內(nèi)核和浮點選項,控制法則加速器、維特比復雜數(shù)學處理單元 (VCU)和一個ARM? CortexTM-M3協(xié)處理器。這些特性提供定制的、增強的處理能力,這使得開發(fā)人員能只使用一個單MCU高效地執(zhí)行復雜控制和通信操作,這樣減少了物料清單的總成本和系統(tǒng)成本;
?C2000 MCU提供高級的、面向控制的外設,此外設可傳送準確、快速和清晰無誤的數(shù)據(jù)以提高系統(tǒng)效率;
?C2000 MCU提供更多的高級連接功能,如10/100 以太網(wǎng),集成PHY 的USB On-The-Go、雙通道 CAN等;
?C2000微控制器系列產(chǎn)品多樣性使得開發(fā)人員能夠很容易地規(guī)劃他們的設計并重復使用代碼。
內(nèi)核架構(gòu):C28x 32 位 CPU
C2000 控制器采用了32 位中央 CPU 內(nèi)核,名為 C28x,可與高度優(yōu)化的外設和中斷管理總線耦合。作為常規(guī)微處理器與數(shù)字信號處理器之間的橋梁,C28x 內(nèi)核為 DSP 帶來了優(yōu)秀的代碼密度和執(zhí)行速度,以及簡便易用性和微處理器的可訪問性。特性包括:
帶有硬件的高效 C 引擎可使 C 編譯器生成具有世界領(lǐng)先代碼密度的緊湊代碼。
單周期讀 - 修改 - 寫指令、單周期 32 位乘法。
具有自動零周期背景保存的快速中斷服務時間(低至 9 個周期)。
96 個專用中斷矢量,無需軟件決策制定
Delfino 控制器中的 32 位浮點部件
Piccolo 器件通過使用獨立控制律加速器 (CLA) 處理浮點控制環(huán)路,使 CPU 得到釋放,以便完成其它任務。
3 個 32 位通用 CPU 定時器可為任何應用提供史無前例的準確性和靈活性。
代碼安全模塊可防止反向工程并保護知識產(chǎn)權(quán)
功能強大的外設
C2000 控制器具有先進的集成外設模塊,為系統(tǒng)帶來更多好處。外設包括:
增強型 PWM 模塊,提供高分辨率(低至 65 皮秒)的占空比、周期和相位控制。此外,完全可編程跳閘區(qū)域檢測和死區(qū)時間發(fā)生器為系統(tǒng)提供了完善的故障和電涌保護。
業(yè)內(nèi)領(lǐng)先的嵌入式 ADC - 具有高達 16 路模擬輸入通道以及高達 12.5MSPS 的 12 位 ADC 采樣。專門針對速度和靈活性設計,C2000 的 ADC 具有自動定序功能,可以最大程度地減少 CPU 中斷。
基于 32 位定時器的增強型捕捉部件,具有高準確度的感應和更出色的靈活性。
正交編碼器脈沖 (QEP) 模塊,通過硬件選擇控制器解碼位置信號。
SPI、UART/SCI、CAN、I2C 和 LIN 通信模塊使 C2000 控制器與系統(tǒng)其它部件得以連接。
2、Piccolo? 32 位微控制器系列
Piccolo? F28x 32 位微控制器可為低成本應用提供用于實現(xiàn)更高能源利用率的實時控制。
Piccolo? C28x? 低成本、高集成度 32 位微控制器采用最新的架構(gòu)技術(shù)成果和增強型外設,能夠為通常難以承擔相應成本的應用帶來 32 位實時控制功能的優(yōu)勢。無論是需要具有 F2802x 系列、額外閃存和 F2803x 系列高效控制環(huán)路 CLA 的定點 40-60 MHz 性能,還是浮點、雙倍內(nèi)存和 F2806x 系列的新型 Viterbi 復雜數(shù)學運算法 (VCU),Piccolo MCU 均可滿足您的需求。Piccolo 的實時控制通過在諸如太陽能逆變器、白色家電設備、混合動力汽車電池、電力線通信 (PLC) 和 LED 照明等應用中實施高級算法,實現(xiàn)了更高的系統(tǒng)效率與精度。
Piccolo F2806x 方框圖與特性

二、Piccolo微控制器的軟件支持
德州儀器 (TI) 與 Visual Solutions 宣布,VisSim/Embedded Controls Developer v8.0 (VisSim) 可為 TI 最新 TMS320C2000 Piccolo 浮點微控制器 (MCU) 提供完全模型化的支持,其可簡化編程,加速設計進程。該軟件支持快速應用開發(fā),并可為算法創(chuàng)建、位真仿真、器件初始化、原型設計以及生產(chǎn)性 C 語言代碼生成提供可視化支持。VisSim v8.0 完整版(可免費試用兩個月)現(xiàn)已開始提供,可與 TI F28069 controlSTICK 及 F28069 實驗板套件配合使用。
VisSim/Embedded Controls Developer v8.0 的主要特性與優(yōu)勢
? 直觀易用的界面可確保在幾分鐘內(nèi)啟動開發(fā);
? 生產(chǎn)級 C 語言代碼生成器不但支持高速采樣速率以及低 RAM 與低閃存需求,而且還可自動生成高效定點與浮點運算;
? 便捷的下拉菜單可引導為所有外設生成中斷驅(qū)動型高效代碼,其中包括 A/D 轉(zhuǎn)換器及 PWM 的高級模式;
? 仿真特性可幫助開發(fā)人員在以圖形方式互動查看結(jié)果的同時,確認、調(diào)試和調(diào)諧算法;
? VisSim 環(huán)境可自動使用 TI Code Composer Studio IDE 與仿真功能(F2806x套件包含的)編譯算法,并將其鏈接和下載到目標上;
? USB JTAG 的熱鏈路支持下載與目標通信的實時主機服務,可對響應進行互動制圖,并在目標執(zhí)行過程中改變參數(shù);
? F2806x MCU 的范例圖包含互動 FFT、PSD、電機控制、數(shù)字電源以及各種其它應用,可為開發(fā)工作實現(xiàn)跨越式發(fā)展;
? 現(xiàn)有的 VisSim 圖無需調(diào)整圖的結(jié)構(gòu),便可輕松改變目標,將其指向任何 C2000 MCU,從而可顯著降低支持多目標所需的工程設計成本。
三、Piccolo USB工具
德州儀器 (TI) 兩款適用于 Piccolo? 32 位 TMS320F2802x 微處理器 (MCU) 的USB工具,使設計人員能夠為成本敏感型應用帶來32 位實時控制功能。新型評估與開發(fā)工具使設計人員得以更輕松地評估 Piccolo MCU,并開發(fā)出更節(jié)能的實時控制應用,如微型太陽能逆變器、LED 照明、白色家電以及混合動力汽車電池等。
售價為 39 美元的 Piccolo controlSTICK 可提供工程實例,包括從簡單的閃爍 LED 到配置高分辨率的 ePWM 外設等Piccolo MCU 高級功能;售價為 79 美元的 Piccolo 實驗板套件可提供開發(fā)過程中的下一步功能,使設計人員能夠便捷地針對基于 Piccolo
MCU 的全面項目進行原型設計與開發(fā)。首批 F2802x Piccolo MCU —TMX320F28027PTA 與 TMX320F28023DAA頻率變動范圍介于 40 ~ 60 MHz 之間,并具有高達 64 KB 的閃存、12 位 ADC、ePWM 以及其它各種外設。
Piccolo controlSTICK 重要特性Piccolo USB 實驗板套件重要特性
· 售價39 美元的評估工具
· 可幫助設計人員評估并了解 Piccolo MCU
· 小型USB 棒狀封裝
· 板上 USB JTAG 可快速簡便地進行項目評估
· 通過排針引腳接入所有控制外設
· 32 KB 有限 Code Composer Studio? IDE 和工程實例· 售價 79 美元的完整開發(fā)套件,包括價值 49 美元的
Piccolo controlCARD
· 設計人員可利用原型設計通過 Piccolo MCU 實現(xiàn)更快速的開發(fā)
· 通過連接外部仿真器與電源進行板上 USB JTAG 仿真
· 可接入所有 Piccolo 引腳
· 32 KB 有限 Code Composer Studio IDE
四、德州儀器 Piccolo MCU 新品
TI推新型C2000 32位F2803x和F2806x Piccolo微控制器
德州儀器 (TI) 的 Piccolo微控制器可實現(xiàn)設計升級、改善性能并簡化數(shù)字實時控制系統(tǒng)的開發(fā),從而為電機控制應用帶來全新的效率與創(chuàng)新。TMS320F2803x 和 TMS320F2806x Piccolo微控制器現(xiàn)包含一個通過一款新型C 編譯器實現(xiàn)的、可采用C 語言進行編程的集成型控制律加速器 (CLA) 協(xié)處理器,旨在提升創(chuàng)新設計的水平。該 CLA 是一個32 位浮點數(shù)學加速器,專為獨立于 TMS320C28x CPU 內(nèi)核工作而設計,以分擔復雜的高速控制算法。這種分擔將 CPU 解放出來去處理輸入/輸出和反饋環(huán)路測量,從而可使閉環(huán)應用的性能提升5 倍之多。此外,該 CLA 還可直接訪問片上外設以實現(xiàn)算法的并行執(zhí)行,進而加快系統(tǒng)響應時間并改善效率。
新型 CLA C 編譯器軟件庫可通過 controlSUITE軟件平臺訪問,而且還提供了用于電機控制應用開發(fā)的系統(tǒng)范例。該 CLA 能提供有效的軟件分區(qū),而 TI 優(yōu)化型免費源代碼軟件庫以及在控制律加速器 (CLA) 上運行的系統(tǒng)范例則提供了軟件代碼塊,從而使開發(fā)人員能夠簡便快捷地完成定制設計,并在電機控制應用中實現(xiàn) 15%-20% 的性能提升。
F2803x 和 F2806x Piccolo微控制器系統(tǒng)的特性與優(yōu)勢:
F2803x 和F2806x Piccolo 微控制器上通過一款用于 CLA 的新型 C 編譯器實現(xiàn)的、可采用 C 語言進行編程的 32 位浮點協(xié)處理器利用元語言工具簡化了編程、改善了靈活性與兼容性,并可直接訪問片上外設以實現(xiàn)算法的并行執(zhí)行。另外,該 CLA 還實現(xiàn)了更快的系統(tǒng)響應、高 MHz 的控制環(huán)路、改進的觸發(fā)以及故障檢測功能,旨在提高系統(tǒng)的穩(wěn)健性。
F2803x Piccolo 微控制器內(nèi)置了 TI 增強型脈寬調(diào)制器(150ps 分辨率的 ePWM)、12 位模數(shù)轉(zhuǎn)換器 (ADC) 和兩個 10 MHz 片上振蕩器,并能替代多個電子組件(即:外部電源 IC),以在降低總體系統(tǒng)成本的同時實現(xiàn)高級電源電子線路管理。
F2806x Piccolo 微控制器內(nèi)置了一個 Viterbi、復數(shù)數(shù)學和 CRC 單元 (VCU) 以及 C28x 內(nèi)核與 CLA,可提供 75 條專用數(shù)學指令以加速通信算法的處理。另外,芯片上還包括 USB 2.0 和 CAN 接口(用于改善通信吞吐量和 PWM)、一個 16 通道、3 MSPS 12 位 ADC 以及三個帶 10 位基準的模擬比較器,旨在免除外部設計組件。
與軟件配合使用的電機控制與數(shù)字電源開發(fā)套件、培訓及全天候支持可簡化開發(fā)流程并使產(chǎn)品快速上市。
C2000 微控制器平臺上的代碼兼容性允許開發(fā)人員在 40 MHz 至 300 MHz 的范圍內(nèi)進行解決方案的調(diào)整。
controlCARD、controlSTICK和C2000 實驗套件、C2000的靈活與模塊化設計理念使得開發(fā)人員能夠?qū)Ω鞣N不同的 C2000 微控制器進行試驗,以滿足價格、性能和外設特性集的要求。
包括controlSUITE軟件,因而可提供針對電機控制開發(fā)以及數(shù)字電源的易用型開源演示 GUI、軟件范例和文檔。
五、Piccolo MCU應用
Piccolo是一個口袋大小的單機數(shù)控(CNC)平臺。不用70美元,你就能夠組裝自己的Arduino兼容包,玩基本的數(shù)控輸出。還有比如讓它快速的涂鴉,印刷一次性名片,或者多個Piccolo合作一起制作一個大型的壁畫等等,這個套件提供了一個在2D和3D數(shù)字化制造平臺的小規(guī)模試驗。
目前作者打算把Piccolo原型做成一個簡單,能快速組裝,且易于使用的開源程序,完全由數(shù)字化制造的零部件和廉價的現(xiàn)成硬件組成。

Piccolo項目包括Arduino和處理庫,Piccolo有多種使用方式,如自主移動或響應傳感器和數(shù)據(jù),同時提供了一個方便的教育工具和新的輸出草圖。
2、如何使用PICCOLO系列MCU產(chǎn)生0~100占空比的PWM波形
(1)、簡介
在某些應用場合中,需要使用占空比從0%~100%變化的PWM波形來進行控制。PICCOLO系列中TMS320X2802X具有強大的PWM控制模塊,利用它可以產(chǎn)生任意占空比的PWM波形。EPWM模塊有三種計數(shù)方式,分別為增計數(shù)方式、增減計數(shù)方式、減計數(shù)方式,下面將詳細講解如何利用前面兩種計數(shù)方式產(chǎn)生占空比任意變換的PWM波形。
(2)、具體描述
增計數(shù)模式
增計數(shù)模式下,當TBCTR計數(shù)值等于TBPRD的時候,CMPA陰影寄存器中的值賦值到CMPA活動寄存器中,同時計數(shù)值等于0的時候置位PWM波形,增計數(shù)等于CMPA值的時候清除復位PWM波形。在這種情況下,當CMPA值大于周期值時產(chǎn)生占空比為100%的波形;當CMPA值等于0的時候產(chǎn)生占空比為0%的波形。下面將對兩個臨界點做一下詳細的說明。
產(chǎn)生100%的占空比,CMPA值需要大于周期值。在增計數(shù)模式下,等于0的時候置位PWM波形,開始時,置位PWM波形,波形只有在計數(shù)值等于CMPA的時候才會清除,由于計數(shù)值不可能等于CMPA,所以PWM波形將一直都是高電平,即產(chǎn)生100%占空比波形。為什么計數(shù)值到達不了CMPA時,PWM波形就不會有變換,在EPWM模塊的應用手冊中有說,增計數(shù)模式下,當CMPA值大于周期值的時候,PWM波形將不會有任何變化;而CMPA值小于等于周期值的時候,PWM波形將隨著CMPA所設定的變化而改變,這里就解釋了為什么產(chǎn)生100%的占空比的波形CMPA值要大于周期值,而不能大于等于周期值。
產(chǎn)生0%的占空比,CMPA值需要等于0。開始計數(shù)時,同時產(chǎn)生兩種事件,計數(shù)值等于0的事件,置位PWM波形;計數(shù)值等于CMPA值的事件,復位PWM波形。兩種事件同時產(chǎn)生,但是由于計數(shù)值等于CMPA值事件的優(yōu)先級要高,所以開始的時候PWM波形是低電平,而計數(shù)下去,計數(shù)值永遠都是在0的位置比較,而比較事件的優(yōu)先級要高于CTR=0的事件,所以PWM波形將一直都是低電平。
程序如下所示:
EPwm1Regs.TBPRD = 600; // 定時器周期601
EPwm1Regs.TBPHS.half.TBPHS = 0x0000; // 同步值
EPwm1Regs.TBCTR = 0; // 清除定時器計數(shù)
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; // 定時器增減模式
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時鐘等于SYSCLK
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;
EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW; // 鏡像模式
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_PRD; // 當CTR=prd的時候裝載鏡像數(shù)據(jù)
EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR; // 增計數(shù)下PWM波形清零
EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET; // 等于零的時候置位
EPwm1Regs.CMPA.half.CMPA = cnt; // 通過改變cnt的值來產(chǎn)生占空比變換的PWM波形
(3)、增減計數(shù)模式
占空比0%~100%
增減計數(shù)模式主要是用來產(chǎn)生對稱的PWM波形,如果在增計數(shù)模式下,產(chǎn)生占空比0%~100%變換的PWM波形,需要有如下設置:如果計數(shù)值在增計數(shù)時等于CMPA,置位PWM波形,如果在減計數(shù)時等于CMPA,復位PWM波形。當計數(shù)值等于0的時候,CMPA陰影寄存器中的值賦值到活動寄存器中。CMPA等于0的時候產(chǎn)生占空比為100%的波形,CMPA等于或大于PRD的時候產(chǎn)生占空比為0%的波形。下面將對產(chǎn)生100%和0%的占空比做詳細的說明。
產(chǎn)生100%的占空比,CMPA等于0。計數(shù)值在增計數(shù)方向下,如果等于CMPA,置位PWM波形。開始計數(shù)時,計數(shù)值等于0,產(chǎn)生計數(shù)值等于CMPA事件,置位PWM波形,而且減計數(shù)下最后計數(shù)值等于1,不能和CMPA =0產(chǎn)生比較事件,也就不能清除PWM波形。所以產(chǎn)生100%占空比波形。
產(chǎn)生0%的占空比,CMPA等于或大于周期值。當然開始計數(shù)時,PWM波形需要是低電平。計數(shù)值等于或大于PRD的時候,PWM波形按照CTR=RPD設置事件變化,而CTR=PRD沒有設置事件,所以PWM波形沒有任何變化,依然為低電平,即0%的占空比。
占空比0%~50%
使用增減計數(shù)模式產(chǎn)生占空比從50%~0%變化的不對稱PWM波形。CMPA陰影寄存器值在計數(shù)值等于周期值的時候賦值到活動CMPA寄存器。在計數(shù)值等于周期值的時候,復位PWM波形;增計數(shù)下,計數(shù)值和CMPA相等時,置位PWM波形。CMPA值等于0時,產(chǎn)生50%占空比波形,CMPA值等于PRD時,產(chǎn)生0%占空比波形。下面將對產(chǎn)生50%和0%的占空比做詳細的說明。
產(chǎn)生50%占空比,CMPA值等于0。開始計數(shù)為增計數(shù)方向,此時計數(shù)值0等于CMPA寄存器值0,置位PWM波形,繼續(xù)計數(shù),當計數(shù)值等于周期值PRD的時候復位PWM波形,產(chǎn)生占空比為50%的波形。
產(chǎn)生0%占空比,CMPA值等于PRD。開始計數(shù)在0點沒有產(chǎn)生任何的事件,繼續(xù)計數(shù)當計數(shù)值等于PRD的時候,根據(jù)EPWM用戶手冊中說到。當CMPA值大于或者等于PRD的時候,產(chǎn)生計數(shù)值等于PRD的事件,即為清除PWM波形,PWM波形一直都為低電平,為0%占空比波形。
程序例程如下所示:
EPwm1Regs.TBPRD = 600; // 定時器周期601
EPwm1Regs.TBPHS.half.TBPHS = 0x0000; // 同步值
EPwm1Regs.TBCTR = 0; // 清除定時器計數(shù)
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; // 定時器增減模式
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時鐘等于SYSCLK
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;
EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW; // 鏡像模式
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_PRD; // 當CTR=prd的時候裝載鏡像數(shù)據(jù)
EPwm1Regs.AQCTLA.bit.PRD = AQ_CLEAR; // 計數(shù)值等于PRD時清除PWM
EPwm1Regs.AQCTLA.bit.CAU = AQ_SET; // 增計數(shù)下計數(shù)值等于CMPA置位PWM
EPwm1Regs.CMPA.half.CMPA = cnt; // 改變cnt的值,產(chǎn)生占空比50%~0%變化的波形
賦值方式
通過以上的敘述可以知道,CMPA有兩種賦值方式,1、計數(shù)值等于0的時候賦值;2、計數(shù)值等于PRD的時候賦值。兩種不同的賦值方式得到的效果也不同,但是只要掌握了變化要點,就能解釋任何的PWM波形的變化。如果為增減計數(shù)模式下,產(chǎn)生對稱的PWM波形,不同的賦值方式,對CMPA值也有不同的要求。
如果CMPA在CTR等于0的時候賦值,那么CMPA的值必須大于或者等于1,否則不可能產(chǎn)生對稱的PWM波形。
如果CMPA在CTR等于RPD的時候賦值,那么CMPA的值必須小于或者等于PRD-1,否則不能產(chǎn)生對稱的PWM波形。
(4)、總結(jié)
由此可見,賦值方式的不同,會得到不同的效果,但是有一點可以理解的,不管什么樣的賦值方式,什么樣的置位復位模式,都必須要掌握EPWM模塊的特性,如事件優(yōu)先級,對稱不對稱PWM波形的產(chǎn)生方式等,只有這樣才能理解任意的PWM波形產(chǎn)生方法。
六、Piccolo MCU的幾個小問題
1:LIN作為UART使用時,如果用FIFO,應該提供一個像280X那樣的寄存器SCIFFRX.bit.RXFFST隨時讀取到FIFO中數(shù)據(jù)的個數(shù),并且FIFO的長度可以immediately更新,而現(xiàn)在的FIFO數(shù)據(jù)長度更新存在bug,沒有immediately,好像是shadow。
2: AD口增加了比較器,利用比較器可以觸發(fā)很多事件。
不過現(xiàn)在的比較器輸入口是固定的。
其中A2,B2;A4,B4;A6,B6是一對輸入。
如果進行雙同步采樣,習慣上把要采集的電流,電壓,比如Iu,Iv,或Uu,Uv放在一對,如A2,B2;或A1,B1。
帶來的問題就是,這樣就要多占用一個AD口,比如Iu即要做比較輸入,又要和Iv同步采樣,就需要Iu,Iv占有A1,B1,然后Iu再接到A2,此時B2可以用內(nèi)部給的參考電壓。
如果三個比較器的輸入端可以用一個寄存器設定就完美了。
3:QEP接口
一個定時器
一個時間計數(shù)器
一個時間溢出標志計數(shù)器
一個脈沖計數(shù)器
Eqep有一個定時器,可以設置如100us,CLR一次。
每次CLR,時間計數(shù)器清零,時間溢出標志清零
時間計數(shù)器 ,時間溢出標志用于計算實時速度。
脈沖計數(shù)器記錄位置信息,不清零。隨時讀取count,這個脈沖計數(shù)器和現(xiàn)在Qep的一樣。
定時器,時間計數(shù)器,時間溢出標志計數(shù)器是需要新加入的。
這個方法,速度精度會很高,中斷程序的延時不會影響測速的精度,如果時間計數(shù)器輸入時鐘是30Mhz,速度計算精度可以在整個速度范圍達到一個pulse。而且不管速度多低,速度多高,不需要切換M,T算法。只需要在低速累加時間溢出標志,在高速,QEP信號的兩個上升沿中間的計數(shù)值是不會受到程序順序執(zhí)行帶來的延時所影響。
如圖,reg讀出,清零代表中斷程序里面計算轉(zhuǎn)速。
QEP的定時器也設成100us,到了觸發(fā)一個定時中斷,也可以在PWM中斷中讀取定時器狀態(tài),因為程序的延時不會給速度位置計算帶來誤差。
如圖計算速度用到的時間計數(shù)器reg中的值是T0+T1+T2+T3+T4。這樣的上升沿在高速狀態(tài)下,尤其是QEP信號1Mhz以上(時鐘30Mhz),可以得到很精確的速度。

?
?
?
?
?
評論