(DSP28335) 初識DSP
Posted ollie-lin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(DSP28335) 初識DSP相关的知识,希望对你有一定的参考价值。
摘要
DSP(digital signal processing) , 這個產品聽名稱就是專門處理數位訊號的IC, 官方的資料提供也很齊全。
一系列的應用文件, 不過這種東西不免俗的...還是要從流水燈開始入門, 從實戰中學習一直都是最快的方式。
簡介
TI的開發環境使用的CCS(Code Compose Studio), V5版本需要License....折騰好久才發現V6板有直接免費的版本。
真的是欲速則不達, 慢慢學比較快。安裝流程就看看需要哪些就給他?下去, 記得不要選有中文路徑的地方。
步驟 1 : 選擇一個你最愛的地方放你的workspace
步驟 2 : 從官方下載的 contrlSUITE匯入example(CCS Project --> Browse(放的位置) --> Finish)
步驟 4 : 在左手邊(default 位置)的Project Explorer就可以看到加入的Project.
步驟 5 : 因為官方的Project已經幫你把debug Configuration已經配好了, 所以只要直接點擊錘子就可以Compiler...真的是很親切.
步驟 5 - 1 : 如果是沒有選好debug Configuration, 想當然爾...那就是自己來拉!!!! 會跳出下列視窗.
1. 選擇你的 ICE(燒錄器)
2. IC型號
3. 儲存設定
步驟 5 - 2 : 步驟真的是很多, 設定完之後, 把這個設定變成default, 這樣這個project都會自動連到這個燒錄器而且確定是使用28335這顆IC.
步驟 6 : Compiler 結束沒有問題, 這一步當然就是Download。
步驟 6 - 1 : 點擊小蟲進入debug mode
步驟 6 - 2 : 進入debug mode, 在debug視窗會出現一些訊息代表已經可以準備燒錄.
步驟 6 - 2 : 第一步先 Load Program (Ctrl + Alt + L), 再按下F8就可以觀察DSP的行為。
以上都只是如何使用工具, 下邊開始準備進入正題!!!! 7.4章節, TI就已經開始講解他們家的DSP如果設定成input, 有high quality的方式去sample input.
GPACTRL Register : 設定用多少 clock 去sample input, 這會影響ADC的精準值.
GPAQSEL/2 Register : 設定 sample 的模式
GPAMUX1/2 Register : GPIO 由MUX選擇用途
GPADIR Register : 定義IO為 input 或是 output
GPAPUD Register : 定義IO 內部是否上拉
GPAINV Register : 定義IO是否 反轉
GPAODR Register : 定義IO normal/open drain output. ...今天先看這些...流水燈也用不到這些.
雖然我用DSP目的的確是要把他設定成input, 但是我只是想先實現流水燈, 這邊稍微提下先帶過!!
Code :
1 #include "DSP2833x_Device.h" 2 #include "DSP2833x_Examples.h" 3 4 #define LED1 GpioDataRegs.GPADAT.bit.GPIO0 5 #define LED2 GpioDataRegs.GPADAT.bit.GPIO1 6 #define LED3 GpioDataRegs.GPADAT.bit.GPIO2 7 #define LED4 GpioDataRegs.GPADAT.bit.GPIO3 8 #define LED5 GpioDataRegs.GPADAT.bit.GPIO4 9 10 void configtestled(void); 11 12 void main(void) 13 { 14 InitSysCtrl(); 15 configtestled(); 16 InitXintf16Gpio(); 17 DINT; 18 InitPieCtrl(); 19 IER = 0x0000; 20 IFR = 0x0000; 21 InitPieVectTable(); 22 23 LED1=1; 24 DELAY_US(10); 25 LED2=0; 26 DELAY_US(10); 27 LED3=0; 28 DELAY_US(10); 29 LED4=0; 30 DELAY_US(10); 31 LED5=0; 32 DELAY_US(10); 33 while(1) 34 { 35 //LED1=~LED1; 36 DELAY_US(100000); 37 LED2=~LED2; 38 DELAY_US(100000); 39 LED3=~LED3; 40 DELAY_US(100000); 41 LED4=~LED4; 42 DELAY_US(100000); 43 LED5=~LED5; 44 DELAY_US(100000); 45 } 46 47 } 48 49 50 void configtestled(void) 51 { 52 EALLOW; 53 GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0; 54 GpioCtrlRegs.GPADIR.bit.GPIO0 = 1; 55 GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 0; 56 GpioCtrlRegs.GPADIR.bit.GPIO1 = 1; 57 GpioCtrlRegs.GPAMUX1.bit.GPIO2 = 0; 58 GpioCtrlRegs.GPADIR.bit.GPIO2 = 1; 59 GpioCtrlRegs.GPAMUX1.bit.GPIO3 = 0; 60 GpioCtrlRegs.GPADIR.bit.GPIO3 = 1; 61 GpioCtrlRegs.GPAMUX1.bit.GPIO4 = 0; 62 GpioCtrlRegs.GPADIR.bit.GPIO4 = 1; 63 EDIS; 64 }
以上是关于(DSP28335) 初識DSP的主要内容,如果未能解决你的问题,请参考以下文章
DSP28335基础教程——系统定时器CPUTimer(定时中断)
DSP28335基础教程——系统定时器CPUTimer(定时中断)
DSP28335基础教程——SCI串口通信实验(上位机收发显示)