TMS320F28335簡(jiǎn)介
TMS320F28335是一款TI高性能TMS320C28x系列32位浮點(diǎn)DSP處理器。
TMS320F28335型數(shù)字信號(hào)處理器TI公司的一款TMS320C28X系列浮點(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)算單元,用戶可快速編寫控制算法而無(wú)需在處理小數(shù)操作上耗費(fèi)過(guò)多的時(shí)間和精力,與前代DSP相比,平均性能提高50%,并與定點(diǎn)C28x控制器軟件兼容,從而簡(jiǎn)化軟件開(kāi)發(fā),縮短開(kāi)發(fā)周期,降低開(kāi)發(fā)成本。
TMS320F28335核心板電氣特性
TMS320F28335(SOM-TL28335核心板)工作環(huán)境
環(huán)境參數(shù)\最小值\典型值\最大值
工業(yè)級(jí)溫度:0°C\-\85°C
工作電壓:4.8V\5V\5.5V
SOM-TL28335(TMS320F28335)核心板功耗
供電電壓:5V
輸入電流:292mA
額定功率:1.46W
TL28335-EVM開(kāi)發(fā)板功耗
供電電壓:5V
最大輸入電流:400mA
最大功率:2W
TMS320F28335主要特點(diǎn)
基于TMS320F28335浮點(diǎn)DSP控制器;
TI主推高性能TMS320C28x系列DSP控制器,主頻高達(dá)150MHz;
具備I2C、SPI、eCAN、ePWM等總線接口,適用于各種控制類工業(yè)設(shè)備;
體積小、性能強(qiáng)、便攜性高,同時(shí)適用于多種手持設(shè)備;
符合高低溫、振動(dòng)要求,滿足工業(yè)環(huán)境應(yīng)用。
TMS320f28335控制AD7656的硬件電路設(shè)計(jì)
AD7656片內(nèi)集成6個(gè)16位250kpbsADC,6個(gè)真雙極性高阻抗模擬輸入,允許并行或串行輸出,加速度儀采用+-15V供電,輸出電流信號(hào)-20ma到20ma,調(diào)理電路采用AD627做調(diào)理電路,原理圖已經(jīng)設(shè)計(jì)出來(lái)如下:
p2為外接加速度傳感器,2腳為電流輸出,ad627是一種低功耗的儀表放大器。它采用單、雙兩種電源供電,并可實(shí)現(xiàn)軌——軌輸出。AD627采用真正的儀用放大器結(jié)構(gòu),它有兩個(gè)反饋環(huán)。其基本結(jié)構(gòu)和典型的“雙運(yùn)放”儀用放大器類似,只是細(xì)節(jié)有所不同。另外,) 所具有的一個(gè)“電流反饋”結(jié)構(gòu),使得它具有較好的共模抑制比。
圖中20ma電流經(jīng)過(guò)100歐姆采樣電阻后變?yōu)?V;AD627不接R35則增益為5,故AD627輸出為+-10V的電壓,然后送入AD。AD7656的接線如下圖所示:
上圖中三路電流信號(hào)分別經(jīng)過(guò)AD7656調(diào)理之后,變?yōu)殡妷盒盘?hào)送入DSP。在電路布線時(shí)應(yīng)該采用模擬地?cái)?shù)字地分開(kāi)布線,然后經(jīng)過(guò)磁珠單點(diǎn)連接,把整個(gè)電路板分為模擬部分和數(shù)字部分,否則很難達(dá)到采樣精度要求。
下面附上AD7656的28335驅(qū)動(dòng)程序
void RESET_AD(void)
{
EALLOW;
GpioCtrlRegs.GPAPUD.bit.GPIO4 = 1; // disable pullup on GPI4
GpioCtrlRegs.GPAMUX1.bit.GPIO4 = 0; // GPI4 = GPI4
GpioCtrlRegs.GPADIR.bit.GPIO4 = 1; // GPI4 = output
GpioDataRegs.GPASET.bit.GPIO4 = 1;
EDIS;
delay_us(100);
EALLOW;
GpioCtrlRegs.GPAPUD.bit.GPIO4 = 1; // disable pullup on GPI4
GpioCtrlRegs.GPAMUX1.bit.GPIO4 = 0; // GPI4 = GPI4
GpioCtrlRegs.GPADIR.bit.GPIO4 = 1; // GPI4 = output
GpioDataRegs.GPACLEAR.bit.GPIO4 = 1;
EDIS;
}
void Start_Convert()
{
EALLOW;
GpioCtrlRegs.GPAPUD.bit.GPIO0 = 1; // disable pullup on GPI0
GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0; // GPI0 = GPI0
GpioCtrlRegs.GPADIR.bit.GPIO0 = 1; // GPI0 = output
GpioDataRegs.GPACLEAR.bit.GPIO0 = 1;
EDIS;
EALLOW;
GpioCtrlRegs.GPAPUD.bit.GPIO0 = 1; // disable pullup on GPI0
GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0; // GPI0 = GPI0
GpioCtrlRegs.GPADIR.bit.GPIO0 = 1; // GPI0 = output
GpioDataRegs.GPASET.bit.GPIO0 = 1;
EDIS;
}
void Wait_AD()
{
EALLOW;
GpioCtrlRegs.GPAPUD.bit.GPIO2 = 0; // disable pullup on GPI2
GpioCtrlRegs.GPAMUX1.bit.GPIO2 = 0; // GPI2 = GPI2
GpioCtrlRegs.GPADIR.bit.GPIO2 = 0; // GPI2 = input
EDIS;
while(GpioDataRegs.GPADAT.bit.GPIO2 == 1);
}
void start_AD(void )
{
Start_Convert();
Wait_AD();
}
Uint16 AD_read(void )
{
Uint16 temp=0;
temp= AD7656_ADD;
return temp;
}
void Get_Ad_Dat(void )//采集所有ad數(shù)據(jù)
{
int16 i=0,temp1;
int32 temp[3]={0,0,0};
for(i=0;i《FILTERLEN;i++)
{
start_AD();
temp1=AD7656_ADD;
temp[0]+=temp1;
temp1=AD7656_ADD;
temp[1]+=temp1;
temp1=AD7656_ADD;
temp[2]+=temp1;
temp1=AD7656_ADD;
temp1=AD7656_ADD;
temp1=AD7656_ADD;
}
AccDat.AD_x_cur[Counter]=temp[0]/FILTERLEN;
AccDat.AD_y_cur[Counter]=temp[1]/FILTERLEN;
AccDat.AD_z_cur[Counter]=temp[2]/FILTERLEN;
}
以下是當(dāng)輸入個(gè)通道接地時(shí)的輸出波形 程序中FILTERLEN=8;
可以看到經(jīng)過(guò)簡(jiǎn)單的數(shù)字處理AD7656可以達(dá)到1位的跳變精度, 上圖中個(gè)通道的數(shù)據(jù)結(jié)果有些不一樣, 差距比較大, 暫時(shí)還沒(méi)有找到原因。
評(píng)論
查看更多