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