色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

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

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

          作者: 時間:2012-08-21 來源:網(wǎng)絡 收藏

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

          本文引用地址:http://cafeforensic.com/article/148554.htm

            簡介:

            采用176引腳LQFP四邊形封裝,其功能結構參見參考文獻。其主要性能如下:

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

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

            6通道的DMA控制器;

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

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

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

            支持58個外設中斷的外設中斷擴展控制器(PIE),管理片上外設和外部引腳引起的中斷請求;

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

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

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

            12位的A/D轉換器具有16個轉換通道、2個采樣保持器、內外部參考電壓,轉換速度為80 ns,同時支持多通道轉換;

            88個可編程的復用GPIO引腳;

            低功耗模式;

            1.9 V內核,3.3 V I/O供電;

            符合IEEEll49.1標準的片內掃描仿真接口(JTAG);TMS320F28335的存儲器映射需注意以下幾點:

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

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

            即使不應用eCAN模塊,也應使能時鐘模塊,將為eCAN分配的RAM空間用作一般RAM。

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

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

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

            TMS320F28335 的ADC:

            TMS320F28335上有16通道、12位的模數(shù)轉換器ADC。他可以被配置為兩個獨立的8通道輸入模式,也可以通過配置AdcRegs.ADCTRL1.bit.SEQ_CASC=1,將其設置為一個16通道的級聯(lián)輸入模式。輸入的方式可以通過配置 AdcRegs.ADCTRL1.bit.ACQ_PS=1,將其設置為順序采集。即從低通道開始到高通道結束。 值得注意的是片上ADC的輸入電壓范圍為0--3V,一旦超過3V,片上的ADC模塊將會被燒掉。上的DATASHEET介紹其ADC的精度可達到12位,實際上達到不了。經(jīng)測試,我們估計最好的時候可以達到11位就不錯了。下面我們來簡單介紹一下ADC模塊的原理。其數(shù)字值由下面公司來計算,其中公式中的3為片內參考電壓Digital Value=4096*(Input Analog Voltage-ADCLO)/3 ;(when 0 V 《 input 《 3 V)。ADC可以分為SEQ1和SEQ2兩個模塊,其中SEQ1包括ADCIN00--ADCIN07;SEQ2包括ADCIN08--ADCIN15。SEQ1模塊可以通過軟件、PWM、外部中斷引腳來啟動,而SEQ2不可以通過外部中斷引腳來啟動。另外就是ADC可以與DMA進行數(shù)據(jù)交換。

          TMS320F28335 的時鐘介紹:

            TMS320F28335上有一個基于PLL電路的片上時鐘模塊,為CPU及外設提供時鐘有兩種方式:一種是用外部的時鐘源,將其連接到X1引腳上或者XCLKIN引腳上,X2接地;另一種是使用振蕩器產生時鐘,用30MHz的晶體和兩個20PF的電容組成的電路分別連接到X1和X2引腳上,XCLKIN引腳接地。我們常用第二種來產生時鐘。此時鐘將通過一個內部PLL鎖相環(huán)電路,進行倍頻。由于F28335的最大工作頻率是150M,所以倍頻值最大是5。其中倍頻值由PLLCR的低四位和PLLSTS的第7、8位來決定。其詳細的倍頻值可以參照TMS320F28335的Datasheet。下面是F28335的時鐘設置:

            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++相關文章:c++教程


          模數(shù)轉換器相關文章:模數(shù)轉換器工作原理


          脈寬調制相關文章:脈寬調制原理
          鎖相環(huán)相關文章:鎖相環(huán)原理

          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉