新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 帶你了解TI的DSP入門芯片TMS320F28335

帶你了解TI的DSP入門芯片TMS320F28335

作者: 時(shí)間:2012-08-21 來(lái)源:網(wǎng)絡(luò) 收藏

作為一個(gè)電子硬件工程師,怎么不能懂,或者我們中有一些同學(xué)對(duì)的理解還不是很多,今天就讓我們給大家介紹一個(gè),來(lái)自。相信看過(guò)了這一系列的內(nèi)容,大家會(huì)對(duì)DSP有初步的。

本文引用地址:http://butianyuan.cn/article/148554.htm

  簡(jiǎn)介:

  采用176引腳LQFP四邊形封裝,其功能結(jié)構(gòu)參見參考文獻(xiàn)。其主要性能如下:

  高性能的靜態(tài)CMOS技術(shù),指令周期為6.67 ns,主頻達(dá)150 MHz;

  高性能的32位CPU,單精度浮點(diǎn)運(yùn)算單元(FPU),采用哈佛流水線結(jié)構(gòu),能夠快速執(zhí)行中斷響應(yīng),并具有統(tǒng)一的內(nèi)存管理模式,可用C/C++語(yǔ)言實(shí)現(xiàn)復(fù)雜的數(shù)學(xué)算法;

  6通道的DMA控制器;

  片上256 Kxl6的Flash存儲(chǔ)器,34 Kxl6的SARAM存儲(chǔ)器.1 Kx16 OTPROM和8 Kxl6的Boot ROM。其中Flash,OTPROM,16 Kxl6的SARAM均受密碼保護(hù);

  控制時(shí)鐘系統(tǒng)具有片上振蕩器,看門狗模塊,支持動(dòng)態(tài)PLL調(diào)節(jié),內(nèi)部可編程鎖相環(huán),通過(guò)軟件設(shè)置相應(yīng)寄存器的值改變CPU的輸入時(shí)鐘頻率;

  8個(gè)外部中斷,相對(duì)TMS320F281X系列的DSP,無(wú)專門的中斷引腳。GPI00~GPI063連接到該中斷。GPI00一GPI031連接到XINTl,XINT2及XNMI外部中斷,GPl032~GPI063連接到XINT3一XINT7外部中斷;

  支持58個(gè)外設(shè)中斷的外設(shè)中斷擴(kuò)展控制器(PIE),管理片上外設(shè)和外部引腳引起的中斷請(qǐng)求;

  增強(qiáng)型的外設(shè)模塊:18個(gè)PWM輸出,包含6個(gè)高分辨率脈寬調(diào)制模塊(HRPWM)、6個(gè)事件捕獲輸入,2通道的正交調(diào)制模塊(QEP);

  3個(gè)32位的定時(shí)器,定時(shí)器0和定時(shí)器1用作一般的定時(shí)器,定時(shí)器0接到PIE模塊,定時(shí)器1接到中斷INTl3;定時(shí)器2用于DSP/BIOS的片上實(shí)時(shí)系統(tǒng),連接到中斷INTl4,如果系統(tǒng)不使用DSP/BIOS,定時(shí)器2可用于一般定時(shí)器;

  串行外設(shè)為2通道CAN模塊、3通道SCI模塊、2個(gè)McBSP(多通道緩沖串行接口)模塊、1個(gè)SPI模塊、1個(gè)I2C主從兼容的串行總線接口模塊;

  12位的A/D轉(zhuǎn)換器具有16個(gè)轉(zhuǎn)換通道、2個(gè)采樣保持器、內(nèi)外部參考電壓,轉(zhuǎn)換速度為80 ns,同時(shí)支持多通道轉(zhuǎn)換;

  88個(gè)可編程的復(fù)用GPIO引腳;

  低功耗模式;

  1.9 V內(nèi)核,3.3 V I/O供電;

  符合IEEEll49.1標(biāo)準(zhǔn)的片內(nèi)掃描仿真接口(JTAG);TMS320F28335的存儲(chǔ)器映射需注意以下幾點(diǎn):

  片上外設(shè)寄存器塊0~3只能用于數(shù)據(jù)存儲(chǔ)區(qū),用戶不能在該存儲(chǔ)區(qū)內(nèi)寫入程序。

  OTP ROM區(qū)(0x38 0000~0x38 03FF)為只讀空間,存儲(chǔ)A/D轉(zhuǎn)換器的校準(zhǔn)程序,用戶不能對(duì)此空間寫入程序。

  即使不應(yīng)用eCAN模塊,也應(yīng)使能時(shí)鐘模塊,將為eCAN分配的RAM空間用作一般RAM。

  如果設(shè)置安全代碼,存儲(chǔ)器區(qū)域Ox33FF80~0x33FFF5需全部寫入數(shù)據(jù)0x0000,而不能用于存儲(chǔ)程序或數(shù)據(jù)。反之,0x33FF80~Ox33FEF可以存儲(chǔ)數(shù)據(jù)或程序,其中0x33FFF0~Ox33FFF5只能存儲(chǔ)數(shù)據(jù)。

  仿真工具和開發(fā)環(huán)境:

  TMS320F28335開發(fā)工具有:標(biāo)準(zhǔn)的優(yōu)化C/C++編譯/匯編/連接器,CCS集成開發(fā)環(huán)境,評(píng)估板和XDS510仿真器。其中CCS是一個(gè)界面友好,功能完善的集成的開發(fā)平臺(tái),具有編輯、匯編、編譯、軟硬件仿真調(diào)試功能。

  TMS320F28335 的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è)置為順序采集。即從低通道開始到高通道結(jié)束。 值得注意的是片上ADC的輸入電壓范圍為0--3V,一旦超過(guò)3V,片上的ADC模塊將會(huì)被燒掉。上的DATASHEET介紹其ADC的精度可達(dá)到12位,實(shí)際上達(dá)到不了。經(jīng)測(cè)試,我們估計(jì)最好的時(shí)候可以達(dá)到11位就不錯(cuò)了。下面我們來(lái)簡(jiǎn)單介紹一下ADC模塊的原理。其數(shù)字值由下面公司來(lái)計(jì)算,其中公式中的3為片內(nèi)參考電壓Digital Value=4096*(Input Analog Voltage-ADCLO)/3 ;(when 0 V 《 input 《 3 V)。ADC可以分為SEQ1和SEQ2兩個(gè)模塊,其中SEQ1包括ADCIN00--ADCIN07;SEQ2包括ADCIN08--ADCIN15。SEQ1模塊可以通過(guò)軟件、PWM、外部中斷引腳來(lái)啟動(dòng),而SEQ2不可以通過(guò)外部中斷引腳來(lái)啟動(dòng)。另外就是ADC可以與DMA進(jìn)行數(shù)據(jù)交換。

TMS320F28335 的時(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)決定。其詳細(xì)的倍頻值可以參照TMS320F28335的Datasheet。下面是F28335的時(shí)鐘設(shè)置:

  void InitPll(Uint16 val, Uint16 divsel)

  {

  // Make sure the PLL is not running in limp mode

  if (SysCtrlRegs.PLLSTS.bit.MCLKSTS != 0)

  {

  // Missing external clock has been detected

  // Replace this line with a call to an appropriate

  // SystemShutdown(); function.

  asm(“ ESTOP0”);

  }

  // DIVSEL MUST be 0 before PLLCR can be changed from

  // 0x0000. It is set to 0 by an external reset XRSn

  // This puts us in 1/4

  if (SysCtrlRegs.PLLSTS.bit.DIVSEL != 0)

  {

  EALLOW;

  SysCtrlRegs.PLLSTS.bit.DIVSEL = 0;

  EDIS;

  }

  // Change the PLLCR

  if (SysCtrlRegs.PLLCR.bit.DIV != val)

  {

  EALLOW;

  // Before setting PLLCR turn off missing clock detect logic

  SysCtrlRegs.PLLSTS.bit.MCLKOFF = 1;

  SysCtrlRegs.PLLCR.bit.DIV = val;

  EDIS;

  // Optional: Wait for PLL to lock.

  // During this time the CPU will switch to OSCCLK/2 until

  // the PLL is stable. Once the PLL is stable the CPU will

  // switch to the new PLL value.

  //

  // This time-to-lock is monitored by a PLL lock counter.

  //

  // Code is not required to sit and wait for the PLL to lock.

  // However, if the code does anything that is timing critical,

  // and requires the correct clock be locked, then it is best to

  // wait until this switching has completed.

  // Wait for the PLL lock bit to be set.

  // The watchdog should be disabled before this loop, or fed within

  // the loop via ServiceDog()。

  // Uncomment to disable the watchdog

  DisableDog();

  while(SysCtrlRegs.PLLSTS.bit.PLLLOCKS != 1)

  {

  // Uncomment to service the watchdog

  // ServiceDog();

  }

  EALLOW;

  SysCtrlRegs.PLLSTS.bit.MCLKOFF = 0;

  EDIS;

  }

  // If switching to 1/2

c++相關(guān)文章:c++教程


模數(shù)轉(zhuǎn)換器相關(guān)文章:模數(shù)轉(zhuǎn)換器工作原理


脈寬調(diào)制相關(guān)文章:脈寬調(diào)制原理
鎖相環(huán)相關(guān)文章:鎖相環(huán)原理

上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: 芯片 TMS320F28335 入門 DSP TI 了解

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉