三大電機(jī)控制方案之DSP篇:TMS320F28335
ADC
本文引用地址:http://www.biyoush.com/article/201605/291317.htmTMS320F28335 上有 16 通道、12 位的模數(shù)轉(zhuǎn)換器 ADC。他可以被配置為兩個(gè)獨(dú)立的 8 通道輸入模式,也可以通過配置 AdcRegs.ADCTRL1.bit.SEQ_CASC=1,將其設(shè)置為一個(gè) 16 通道的級(jí)聯(lián)輸入模式。輸入的方式可以通過配置AdcRegs.ADCTRL1.bit.ACQ_PS=1,將其設(shè)置為順序采集。即從低通道開始到高通道結(jié)束。
時(shí)鐘
TMS320F28335 上有一個(gè)基于 PLL 電路的片上時(shí)鐘模塊,為 CPU 及外設(shè)提供時(shí)鐘有兩種方式:一種是用外部的時(shí)鐘源,將其連接到 X1 引腳上或者 XCLKIN 引腳上,X2 接地;另一種是使用振蕩器產(chǎn)生時(shí)鐘,用 30MHz 的晶體和兩個(gè) 20PF 的電容組成的電路分別連接到 X1 和 X2 引腳上,XCLKIN 引腳接地。我們常用第二種來產(chǎn)生時(shí)鐘。此時(shí)鐘將通過一個(gè)內(nèi)部 PLL 鎖相環(huán)電路,進(jìn)行倍頻。由于 F28335 的最大工作頻率是 150M,所以倍頻值最大是 5。其中倍頻值由 PLLCR 的低四位和 PLLSTS 的第 7、8 位來決定。
外部中斷
支持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 器件不同,沒有用于外部中斷的專用引腳。 XINT1,XINT2 和 XINT 中斷可接受來自 GPIO0-GPIO31 引腳的輸入。 XINT3–XINT7 中斷可接受來自 GPIO32-GPIO63 引腳的輸入。

電機(jī)相關(guān)應(yīng)用領(lǐng)域
電機(jī)控制:AC 感應(yīng)

電機(jī)控制:低電壓

電機(jī)控制:步進(jìn)電機(jī)

電機(jī)控制:永久磁性

電機(jī)控制:高電壓

工程師開發(fā)過程中常見問題總結(jié)
1.SPI驅(qū)動(dòng)TLE7241E出現(xiàn)返回值不對(duì)的問題。主要是由于時(shí)序的不對(duì),導(dǎo)致TLE7241E輸入采樣時(shí)數(shù)據(jù)還沒有建立,所以TLE7241E收到的命令不正確,所以返回值不正確。
2.SPI驅(qū)動(dòng)EEPROM時(shí),如果用金屬物觸到clock pin時(shí),能正確運(yùn)行,否則不能正確運(yùn)行。出現(xiàn)次問題也是由于時(shí)序的問題,金屬物觸到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é)果讀取。
遇到問題:數(shù)據(jù)線上只有D0~D7有數(shù)據(jù)變換,D8~D15全為0。
問題分析:D8~D15和地短路了,busy時(shí)間太短、不能觸發(fā)中斷,ad配置為了8位模式,等等…
解決問題:把問題一個(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)
(1)、從機(jī)地址:
由于28335的I2C模塊會(huì)自動(dòng)添加R/W位,應(yīng)將從機(jī)地址右移一位。如:選用模塊7位地址模式時(shí),若使用的I2C芯片從機(jī)地址為0xD0,則設(shè)置時(shí)應(yīng)置從機(jī)地址為0x68。
(2)、子地址:
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ā)送和接收。
(2)、主設(shè)備讀取數(shù)據(jù)時(shí)必須先發(fā)送一個(gè)無意義的數(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ù)接口通過外部擴(kuò)展接口 Xintf擴(kuò)展,使用DMA高速讀取轉(zhuǎn)換后的數(shù)據(jù),控制接口通過GPIO口實(shí)現(xiàn)。文中給出了硬、軟件設(shè)計(jì)及測(cè)試結(jié)果,該接口電路具有高性能,接口簡(jiǎn)單,低成本等特點(diǎn),已經(jīng)在研制的超聲波流量計(jì)中應(yīng)用。

2.三相SPWM波在TMS320F28335中的實(shí)現(xiàn)
載波相移正弦脈寬調(diào)制(SPWM)技術(shù)是一種適用于大功率電力開關(guān)變換裝置的高性能開關(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í)性要求,可以很好地控制逆變電源的輸出。

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)速度和控制精度。

評(píng)論