欲了解更多關于電機控制的解決方案,可點擊電機控制方案的MCU篇與FPGA篇進行查閱:
?
近幾年來,基于DSP的電機專用集成電路由于在計算速度、容量存儲等方面比單片機具有更優的性能,已逐漸代替單片機運用于電機控制系統中。目前的大部分電機都把電流環控制作為DSP的一個協處理來考慮,而速度或位置環控制則由 DSP芯片來實現。一般情況下,由于位置控制比較靈活,且差異性比較大,很難做到通用性,所以位置環一般由DSP來直接完成;但速度和電流環相對具有通用性,且互相關聯緊密,以致高性能的速度控制都離不開電流控制,因此完全可以把它們集成到一個芯片中處理,這樣既可以實現速度伺服控制,又可以單獨進行電流控制,還可以和DSP共同構成位置伺服系統。
市面上專注于電機控制DSP解決方案的廠商屈指可數,作為世界上最知名的DSP芯片生產廠商,美國德州儀器生產的TMS320系列芯片廣泛應用于各個領域,其中TMS320C2000系列便是面向工業控制推出的DSP芯片。
TMS320F28335簡介
TMS320F28335數字信號處理器是屬于C2000系列的一款浮點DSP控制器。與以往的定點DSP相比,該器件的精度高,成本低, 功耗小,性能高,外設集成度高,數據以及程序存儲量大,A/D轉換更精確快速等。
TMS320F28335具有150MHz的高速處理能力,具備32位浮 點處理單元,6個DMA通道支持ADC、McBSP和 EMIF,有多達18路的PWM輸出,其中有6路為TI特有的更高精度的PWM輸出 (HRPWM),12位16通道ADC。得益于其浮點運算單元,用戶可快速編寫控制算法而無需在處理小數操作上耗費過多的時間和精力,與前代DSP相比,平均性能提高50%,并與定點C28x控制器軟件兼容,從而簡化軟件開發, 縮短開發周期,降低開發成本。
功能框圖
特性
高性能靜態 CMOS 技術
-高達 150MHz(6.67ns 周期時間)
-1.9V/1.8V內核,3.3V I/O設計
高性能 32 位 CPU(TMS320C28x)
-IEEE-754 單精度浮點單元(FPU)(只在 F2833x 上提供)
-16 x 16 和 32 x 32 介質訪問控制 (MAC) 運算
-16 x 16 雙 MAC
-哈佛 (Harvard) 總線架構
-快速中斷響應和處理
-統一存儲器編程模型
6 通道 DMA 處理器(用于ADC,McBSP,ePWM,XINTF 和 SARAM)
16 位或 32 位外部接口 (XINTF)
-超過 2M × 16 地址范圍
片載存儲器
-F28335,F28235:
-256K×16 閃存,34K×16 SARAM
-F28334,F28234:
-128K×16 閃存,34K×16 SARAM
-F28332,F28232:
-64K×16 閃存,26K×16S ARAM
-1K x 16 一次性可編程 (OTP) ROM
引導 ROM (8K X 16)
-支持軟件引導模式(通過 SCI,SPI,CAN,I2C,McBSP,XINTF 和并行 I/O)
-標準數學表
時鐘和系統控制
-支持動態鎖相環 (PLL) 比率變化
-片載振蕩器
-安全裝置定時器模塊
GPIO0 到 GPIO63 引腳可以連接到八個外部內核中斷其中的一個
可支持全部58個外設中斷的外設中斷擴展 (PIE) 塊
128 位安全密鑰/鎖
-保護閃存 / OTP/RAM 模塊
-防止固件逆向工程
增強型控制外設
-多達 18 個脈寬調制 (PWM) 輸出
-高達 6 個支持 150ps 微邊界定位 (MEP) 分辨率的高分辨率脈寬調制器 (HRPWM) 輸出
-高達 6 個事件捕捉輸入
-多達兩個正交編碼器接口
-高達 8 個 32 位定時器(6 個 eCAP 以及 2 個 eQEP)
-高達 9 個 32 位定時器(6 個ePWM 以及 3 個 XINTCTR)
三個 32 位 CPU 定時器
串行端口外設
-多達 2 個控制器局域網 (CAN) 模塊
-多達 3 個 SCI (UART) 模塊
-高達 2 個 McBSP 模塊(可配置為 SPI)
-一個SPI模塊
-一個內部集成電路 (I2C) 總線
12 位模數轉換器 (ADC),16 個通道
-80ns 轉換率
-2 x 8 通道輸入復用器
-兩個采樣保持
-單一/同步轉換
-內部或者外部基準
多達 88 個具有輸入濾波功能可單獨編程的多路復用通用輸入輸出 (GPIO) 引腳
JTAG 邊界掃描支持 IEEE 標準 1149.1-1990 標準測試端口和邊界掃面架構
高級仿真特性
-分析和斷點功能
-借助硬件的實時調試
開發支持包括
-ANSI C/C++ 編譯器/匯編語言/連接器
-Code Composer Studio IDE
-DSP/BIOS
-數字電機控制和數字電源軟件庫
低功耗模式和省電模式
-支持 IDLE(空閑)、STANDBY(待機)、HALT(暫停)模式
-可禁用獨立外設時鐘
字節序:小端序
封裝選項:
-無鉛,綠色封裝
-薄型四方扁平封裝 (PGF,PTP)
-MicroStar BGA (ZHH)
-塑料 BGA 封裝 (ZJZ)
溫度選項:
-A:-40°C 至 85°C (PGF,ZHH,ZJZ)
-S:-40°C 至 125°C (PTP,ZJZ)
-Q:-40°C 至 125°C (PTP,ZJZ)
主要模塊分析
C28x CPU
F2833x (C28x+FPU)/F2823x (C28x)系列都屬于 TMS320C2000? 數字信號控制器 (DSC)平臺。 基于C28x+FPU 的控制器和 TI 現有的 C28xDSC具有相同的 32 位定點架構,但是還包括一個單精度(32 位)的 IEEE 754 浮點單元(FPU)。 這是一個非常高效的的 C/C++ 引擎,它能使用戶用高層次的語言開發他們的系統控制軟件。 這也使得能夠使用 C/C++ 開發算術算法。 此器件在處理 DSP 算術任務時與處理系統控制任務時同樣有效而系統控制任務通常由微控制器器件處理。 這樣的效率在很多系統中省卻了對第二個處理器的需要。 32 x 32 位 MAC 64 位處理能力使得控制器能夠有效地處理更高的數字分辨率問題。 添加了帶有關鍵寄存器自動環境保存的快速中斷響應,使得一個器件能夠用最小的延遲處理很多異步事件。 此器件有一個具有流水線式存儲器訪問的 8 級深受保護管道。 這個流水線式操作使得此器件能夠在高速執行而無需求助于昂貴的高速存儲器。 特別分支超前硬件大大減少了條件不連續而帶來的延遲。 特別存儲條件操作進一步提升了性能。
內存總線
與很多DSC類型器件一樣,多總線被用于在內存和外設以及 CPU 之間移動數據。 C28x 內存總線架構包含一個程序讀取總線、數據讀取總線和數據寫入總線。 此程序讀取總線由 22 條地址線路和 32 條數據線路組成。 數據讀取和寫入總線由 32 條地址線路和 32 條數據線路組成。 32 位寬數據總線可實現單周期 32 位運行。 多總線結構,通常稱為哈弗總線,使得 C28x 能夠在一個單周期內取一個指令、讀取一個數據值和寫入 一個數據值。 所有連接在內存總線上的外設和內存對內存訪問進行優先級設定。 總的來說,內存總線訪問的優先級可概括如下:
最高級: 數據寫入 (內存總線上不能同時進行數據和程序寫入。)
程序寫入 (內存總線上不能同時進行數據和程序寫入。)
數據讀取
程序讀取 (內存總線上不能同時進行程序讀取和取指令。)
最低級: 取指令 (內存總線上不能同時進行程序讀取和取指令。)
ADC
TMS320F28335 上有 16 通道、12 位的模數轉換器 ADC。他可以被配置為兩個獨立的 8 通道輸入模式,也可以通過配置 AdcRegs.ADCTRL1.bit.SEQ_CASC=1,將其設置為一個 16 通道的級聯輸入模式。輸入的方式可以通過配置AdcRegs.ADCTRL1.bit.ACQ_PS=1,將其設置為順序采集。即從低通道開始到高通道結束。
時鐘
TMS320F28335 上有一個基于 PLL 電路的片上時鐘模塊,為 CPU 及外設提供時鐘有兩種方式:一種是用外部的時鐘源,將其連接到 X1 引腳上或者 XCLKIN 引腳上,X2 接地;另一種是使用振蕩器產生時鐘,用 30MHz 的晶體和兩個 20PF 的電容組成的電路分別連接到 X1 和 X2 引腳上,XCLKIN 引腳接地。我們常用第二種來產生時鐘。此時鐘將通過一個內部 PLL 鎖相環電路,進行倍頻。由于 F28335 的最大工作頻率是 150M,所以倍頻值最大是 5。其中倍頻值由 PLLCR 的低四位和 PLLSTS 的第 7、8 位來決定。
外部中斷
支持8 個被屏蔽的外部中斷 (XINT1–XINT7, XNMI)。 XNMI 可被連接至 INT13 或者 CPU 的 NMI 中斷。這些中斷中的每一個可被選擇用于負邊沿、正邊沿或者正負邊沿觸發,并且可被啟用或禁用(包括XNMI 在內)。 XINT1, XINT2,和 XNMI 還包含一個 16 位自由運行的上數計數器,當檢測到一個有效的中斷邊沿時,該計數器復位為 0。 這個計數器可被用于為中斷精確計時。 與 281x 器件不同,沒有用于外部中斷的專用引腳。 XINT1,XINT2 和 XINT 中斷可接受來自 GPIO0-GPIO31 引腳的輸入。 XINT3–XINT7 中斷可接受來自 GPIO32-GPIO63 引腳的輸入。
電機相關應用領域
電機控制:AC 感應
電機控制:低電壓
電機控制:步進電機
電機控制:永久磁性
電機控制:高電壓
?
工程師開發過程中常見問題總結
1.SPI驅動TLE7241E出現返回值不對的問題。主要是由于時序的不對,導致TLE7241E輸入采樣時數據還沒有建立,所以TLE7241E收到的命令不正確,所以返回值不正確。
2.SPI驅動EEPROM時,如果用金屬物觸到clock pin時,能正確運行,否則不能正確運行。出現次問題也是由于時序的問題,金屬物觸到clock導致clock出現微小幅度的偏移,導致正好和 eeprom的時序對上,而不用金屬物觸碰時時序不正常,當使dsp MOSIpin數據發送提前半個周期后,eeprom工作正常。
3.示波器有時會導致顯示的波形被消尖,所以用示波器測量時周期不能太大。
TMS320F28335部分模塊使用經驗
1.TMS320F28335+總線:
硬件連接情況(28335+cpld+ad7606):Cpld負責對地址譯碼,16位數據線接并口AD7606的D0~D15,再用幾個GPIO分別接ad7606的busy、reset、CONVST.
軟件思想:timer0控制采樣速率,busy配置為外部中斷輸入腳,轉換完成即可觸發中斷,在外部中斷函數里把轉換結果讀取。
遇到問題:數據線上只有D0~D7有數據變換,D8~D15全為0。
問題分析:D8~D15和地短路了,busy時間太短、不能觸發中斷,ad配置為了8位模式,等等…
解決問題:把問題一個個排除,最后原因是數據線D8~D15在cpld連接部分未定義。
2.TMS320F28335+SCI模塊:
硬件連接:F28335有三個串口,SCIA、SCIB、SCIC,這里用SCIC+232芯片接口即可與 PC機通信。
功能驗證:使用串口調試助手發送數據,28335收到數據后再發給PC
軟件設計:使用FIFO、查詢方式發送和接收數據、配置好相應的寄存器就可以使用了,主要代碼分享如下。
for()
{
while(ScicRegs.SCIFFRX.bit.RXFFST == 0); { }
data = ScicRegs.SCIRXBUF.all;
ScicRegs.SCITXBUF= data;
while(ScicRegs.SCIFFTX.bit.TXFFST != 0);
}
void scic_init() //初始化
{
ScicRegs.SCICCR.all =0x0007;
ScicRegs.SCICTL1.all =0x0003; // enable TX, RX, internal SCICLK,
// Disable RX ERR, SLEEP, TXWAKE
ScicRegs.SCICTL2.all =0x0;
#if (CPU_FRQ_150MHZ)
ScicRegs.SCIHBAUD =0x0001; // 9600 baud @LSPCLK = 37.5MHz.
ScicRegs.SCILBAUD =0x00E7;
#endif
#if (CPU_FRQ_100MHZ)
ScicRegs.SCIHBAUD =0x0001; // 9600 baud @LSPCLK = 20MHz.
ScicRegs.SCILBAUD =0x0044;
#endif
ScicRegs.SCIFFTX.bit.TXFIFOXRESET=0;
ScicRegs.SCIFFRX.bit.RXFIFORESET=0;
ScicRegs.SCIFFTX.all=0xE040;
ScicRegs.SCIFFRX.all=0x2040;
ScicRegs.SCIFFCT.all=0x0;
ScicRegs.SCICTL1.all =0x0023; // Relinquish SCI from Reset
}
3.TMS320F28335+I2C模塊:
注意一下兩點
(1)、從機地址:
由于28335的I2C模塊會自動添加R/W位,應將從機地址右移一位。如:選用模塊7位地址模式時,若使用的I2C芯片從機地址為0xD0,則設置時應置從機地址為0x68。
(2)、子地址:
I2C器件的子地址有的是8位、有的是16位,16位的發送子地址的時候要發送2次、分別發高8位和低8位,因為28335的I2C模塊數據發送寄存器是8位的。
4.TMS320F28335+SPI模塊:
(1)、主設備配置SPI模塊的時鐘模式時要根據從設備的時鐘要求,要搞清楚從設備發送和接收數據是在時鐘的上升沿還是下降沿。時鐘配置正確后,數據才能被準確的發送和接收。
(2)、主設備讀取數據時必須先發送一個無意義的數以啟動時鐘。
典型設計案例
1.高速數據采集電路設計
針對超聲波流量計中高速數據采集的需求,采用32位浮點實時MCU 芯片 TMS320F28335和高速A/D轉換器ADS805E設計了一種12位分辨率,20MSPS的高速數據采集電路。數據接口通過外部擴展接口 Xintf擴展,使用DMA高速讀取轉換后的數據,控制接口通過GPIO口實現。文中給出了硬、軟件設計及測試結果,該接口電路具有高性能,接口簡單,低成本等特點,已經在研制的超聲波流量計中應用。
詳情請閱:
2.三相SPWM波在TMS320F28335中的實現
載波相移正弦脈寬調制(SPWM)技術是一種適用于大功率電力開關變換裝置的高性能開關調制策略,在有源電力濾波器中有良好的應用前景。本文介紹了如何利用高性能數字信號處理器TMS320F28335的片內外設事件管理器(EV)模塊產生三相SPWM波,給出了程序流程圖及關鍵程序源碼。該方法采用不對稱規則采樣算法,參數計算主要采用查表法,計算量小,實時性高。在工程實踐中表明,該方法既能滿足控制精度要求,又能滿足實時性要求,可以很好地控制逆變電源的輸出。
詳情請閱:
3.PMSM伺服系統的設計
交流永磁同步電機(PMSM)伺服系統已廣泛應用于在工業領域。為了提高系統的控制性能,設計了以數字信號控制器TMS320F28335為控制核心,主電路為AC/DC/AC拓撲結構,采用矢量控制策略的高性能PMSM伺服系統,并將所構成的系統與基于TMS320F2812的系統進行了比較。相關實驗證明,該系統具有更好的響應速度和控制精度。
詳情請閱:
?
?
?
評論
查看更多