DSP28335的自学之路:梦开始的地方,点亮LED

 DSP28335介绍

        它是德州仪器(Texas Instruments)推出的一款数字信号处理器(Digital Signal Processor,DSP),属于C2000系列。C2000系列DSP广泛应用于工业控制、汽车电子、太阳能逆变器、数码电源控制和其他需要高性能实时信号处理的应用。

DSP28335的一些主要特性和功能:

  1. 核心处理器:DSP28335采用了TMS320C28x核心,支持定点DSP运算。它拥有高性能的算术单元和控制单元,可处理复杂的数字信号处理算法。

  2. 时钟频率:DSP28335通常运行在高频时钟下,最高频率可以达到数十兆赫兹(MHz),这使得它能够高效地处理实时信号。

  3. 存储器:DSP28335配备了片内Flash存储器,用于存放程序代码和常量数据。此外,它还有片内RAM,用于存放变量数据和堆栈操作。

  4. 通信接口:DSP28335支持多种通信接口,如SPI(串行外设接口)、I2C(串行总线接口)、SCI(串行通信接口)和CAN(控制器局域网)等。这些接口能够方便地与外部设备进行通信和数据交换。

  5. 定时器:DSP28335拥有多个高精度定时器,可用于生成精确的定时事件,适用于实时控制和定时触发任务。

  6. ADC和PWM:DSP28335还集成了模数转换器(ADC)和脉宽调制器(PWM),使其成为处理模拟信号和控制电机驱动等应用的理想选择。

  7. 外设接口:DSP28335还提供了丰富的外设接口,包括GPIO(通用输入/输出口)、中断控制器、DMA(直接内存访问)控制器等,以满足不同应用的需求。

  8. 开发环境:为了便于开发,德州仪器提供了Code Composer Studio(CCS)集成开发环境,这是一个功能强大的IDE,可用于编写、编译、调试和下载DSP28335的应用程序。

LED点亮原理

        如上图所示,DSP28335原理图上的LED左边接入高平电压,右边接入GPIO端口。如果点亮LED就需要左边高电平,右边低电平。 

创建CCS工程

        首先打开CCS并创建项目,需要配置芯片类型和后续需要连接的仿真器类型,这一步也可以在项目中修改。具体配置如图所示: 

        创建完成的文件内容如下:

         第二步,我们需要在网上或者TI官网下载DSP28335的系统文件,没有这一步就无法控制DSP28335。项目系统文件(不是作者本人的项目,只是个样例)。

        在自己项目中创建APP、include、source三个文件夹。如下图所示:

        然后对我们自己的项目进行配置。将系统文件项目下载到本地, 打开项目,将该目录下的include、src、CMD中的文件复制到自己的项目中,下图为系统文件的一些文件:

        将上面的文件放到我们项目中,头文件放在APP/include下,点C文件放在APP/source下。 

       

        复制CMD文件在粘贴到自己项目中,删除自己的28335_RAM_lnk.cmd文件,然后将CMD文件夹中的F28335.cmd屏蔽。

        右键点击项目,选择Properties(属性)打开,添加include路径。

        在include界面选择下图中1位置添加我们项目中APP/include路径,点击2位置进行应用。

        点击小锤子进行编译。

        编译通过就可以下一步了,如果是使用我推荐的链接的话,编译之后发生报错,这是因为我使用的项目确实其他文件,只需要删掉就行了。

        上图的错误是说我们这个ADC_cal没有定义,找到该函数所在位置删除即可。

编写点灯代码

#include "DSP2833x_Device.h"     // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h"   // DSP2833x Examples Include File

#define	  LED4	GpioDataRegs.GPADAT.bit.GPIO0
#define	  LED3	GpioDataRegs.GPADAT.bit.GPIO1
#define	  LED1	GpioDataRegs.GPADAT.bit.GPIO2
#define	  LED2	GpioDataRegs.GPADAT.bit.GPIO3

void configtestled(void);

void main(void)
{
   InitSysCtrl();

   //InitGpio();
   InitXintf16Gpio();

   DINT;

   InitPieCtrl();

   IER = 0x0000;
   IFR = 0x0000;

   InitPieVectTable();
   configtestled();
 
      LED1=1;
   DELAY_US(10);
      LED2=1;
   DELAY_US(10);
      LED3=1;
   DELAY_US(10);
      LED4=1;
   DELAY_US(10);
 
   while(1){
      LED1=~LED1;
      DELAY_US(100000);
      LED2=~LED2;
      DELAY_US(100000);
      LED3=~LED3;
      DELAY_US(100000);
      LED4=~LED4;
      DELAY_US(100000);

   }

}

void configtestled(void)
{
   EALLOW;
   GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0; // GPIO0复用为GPIO功能
   GpioCtrlRegs.GPADIR.bit.GPIO0 = 1;  // GPIO0设置为输出
   GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 0; //
   GpioCtrlRegs.GPADIR.bit.GPIO1 = 1;
   GpioCtrlRegs.GPAMUX1.bit.GPIO2 = 0; //
   GpioCtrlRegs.GPADIR.bit.GPIO2 = 1;
   GpioCtrlRegs.GPAMUX1.bit.GPIO3 = 0; //
   GpioCtrlRegs.GPADIR.bit.GPIO3 = 1;
   EDIS;
}

        DSP28335的LED被点亮。 

 

  • 4
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值