(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串口通信实验(上位机收发显示)

DSP28335基础教程——SCI串口通信实验(上位机收发显示)

DSP28335基础教程——GPIO输出(流水灯实验)

DSP28335基础教程——EQEP实验(直流电机转速检测)