TMS320F28034学习笔记(一)

TMS320F28034学习笔记(一)

TMS320F28034工程模板建立及LED测试程序编写


前言

在对学习F28034过程中发现网上很少有对其工程模板配置以及使用F28034驱动其他模块的教程。并且考虑创建一个F28034通用的CCS工程模板,以简化新项目的创建过程。通过制作一个模板,可以节省时间和减少繁琐的工程搭建步骤。在需要新项目时,只需复制模板并进行相应配置即可快速启动开发工作。所以笔者在这对F28034工程模板的配置进行记录并且使用F28034点亮LED进行程序测试。
(本文仅供学习交流,如有错误或有更好的解决方案,欢迎相互交流讨论。)


一、TMS320F28034是什么?

TMS320F28034指的是德州仪器(Texas Instruments)推出的一款数字信号处理器(Digital Signal Processor,DSP)型号(后称F28034)。它属于TI的C2000系列,是专门设计用于实时控制应用的DSP芯片。

F28034具有高性能、低功耗、丰富的外设接口等特点,适用于各种需要高精度实时控制的场合,比如电机控制、逆变器、电源管理等应用领域。它采用了先进的处理器内核和数字信号处理器技术,具备强大的计算能力和灵活的控制功能。

这款DSP通常会配合TI提供的开发工具和软件库来进行程序开发和调试,以满足各种实时控制系统的需求。


二、所做准备工作

1、所需软硬件

(1)Code Composer Studio 7.2.0

(2)TMS320F28034核心板或开发板

2、所需配置文件

(1)TI官方提供的配置文件


三、操作流程

1、打开CCS进行工程建立

(1)工程建立(路径应当不包含中文)

①路径选择

在这里插入图片描述路径选择好了以后点击OK。

②新建工程

在这里插入图片描述点击File→New→CCS Project或者键盘按下快捷键Shift+Alt+N→CCS Project效果一样

③工程配置

在这里插入图片描述

按照如图①-⑤顺序进行选择,其中①②③型号尽量选对,这里开发板我以TMS320F28034芯片,仿真器以Texas Instruments XDS100v2 USB Debug Probe型号为例。
⑤可以选择带有main.c的那个选项(Empty Project(with main.c)
然后点击Finish。(这里我已经建立过工程,所以Finish无法点击)

(2)工程模板配置

①文件夹建立

在这里插入图片描述在前文创建的工程文件夹F28034_Learn下建立一个文件夹F28034_Lib(也可以是其他英文字符组成的名字)
在这里插入图片描述在F28034_Lib文件夹下创建文件夹cmd、include、source(也可以是其他英文字符组成的名字)。其中,include放.h文件、source放.c文件。
在这里插入图片描述在工程中可以看到已经有该文件夹。

②文件导入

在这里插入图片描述将提供的DSP2803x_headers文件夹下的cmd文件夹中的DSP2803x_Headers_nonBIOS.cmd文件放入我们创建的cmd文件夹中。

在这里插入图片描述打开DSP2803x_headersDSP2803x_common文件夹中的include文件夹,选中所有的.h文件导入我们创建的include文件夹中,总共31个.h文件。
在这里插入图片描述同样,选中DSP2803x_headersDSP2803x_common文件夹中的source文件夹将,其中所有的.c文件导入我们创建的source文件夹中,总共25个.c文件。

③工程选项配置

在这里插入图片描述
鼠标右击工程F28034_LearnProperties
在这里插入图片描述按照图片中在最左侧选中Include Options→…→选中include(导入放.h文件的文件夹路径)按照图片步骤进行最后点击OK

④最后需要更改下下载.cmd文件

在这里插入图片描述和③一样鼠标右击工程F28034_LearnProperties
在这里插入图片描述选中General→在Linker command file选中DSP型号,我这里需要下到Flash中所以选中F28034.cmd

⑤在main.c文件写入程序
#include "DSP2803x_Device.h"     // DSP2803x Headerfile Include File
#include "DSP2803x_Examples.h"   // DSP2803x Examples Include File

int main(void)
{
    while(1)
    {
        ;
    }

}

然后Ctrl+B编译通过
在这里插入图片描述

(3)编写LED测试程序

①文件夹建立

与(2)中①步同级文件夹建立HardWare文件夹(跟STM32单片机类似,用于存放IO配置的文件夹)
在这里插入图片描述HardWare中建立LED文件夹
在这里插入图片描述

②工程中.c、.h文件建立

在这里插入图片描述这里选中需要添加.c、.h的文件夹,我们这里以LED为例,右击在工程下的LED文件夹NewHeader File
在这里插入图片描述这里建立的是.h文件,命名为LED.h
在这里插入图片描述

重复上述操作再建立一个LED.c文件

③LED.c、LED.h程序编写

我这里用的是GPIO23,可以根据自己需要进行更改。

LED.c文件代码
#include "LED.h"

void LED_Init()
{
    EALLOW;
    GpioCtrlRegs.GPAPUD.bit.GPIO23 = 1;
    GpioCtrlRegs.GPAMUX2.bit.GPIO23 = 0x0;
    GpioCtrlRegs.GPADIR.bit.GPIO23 = 1;
    EDIS;
}

LED.h文件代码
#include "DSP2803x_Device.h"     // DSP2803x Headerfile Include File
#include "DSP2803x_Examples.h"   // DSP2803x Examples Include File

#ifndef LED_H_
#define LED_H_

void LED_Init();

#endif /* HARDWARE_LED_LED_H_ */
main.c文件代码

程序中注释的部分是使用Ram时候,在断电后仍能读取Flash中代码。

#include "DSP2803x_Device.h"     // DSP2803x Headerfile Include File
#include "DSP2803x_Examples.h"   // DSP2803x Examples Include File
#include <string.h>
#include <stdint.h>
#include "LED.h"

//extern Uint16 RamfuncsLoadStart;
//extern Uint16 RamfuncsLoadEnd;
//extern Uint16 RamfuncsRunStart;

void delay_loop()
{
    long      i;
    for (i = 0; i < 1000000; i++) {}
}

int main(void)
{
//    InitPieVectTable();
//    memcpy((uint16_t *)&RamfuncsRunStart, (uint16_t *)&RamfuncsLoadStart, (unsigned long)&RamfuncsLoadEnd);
//    InitFlash();

    LED_Init();

    while(1)
    {
        delay_loop();
        GpioDataRegs.GPASET.bit.GPIO23 = 1;

        delay_loop();
        GpioDataRegs.GPACLEAR.bit.GPIO23 = 1;
    }
}

四、实验现象

LED闪烁
在这里插入图片描述


五、问题

1、还不太明白main.c文件中RAM部分代码是不是为了在外接RAM后可以断电保存程序使用,在使用F28335时因为有RAM可以使用,我焊的这块板子没有RAM,是不是不需要这部分代码断电也可以保存程序。

2、刚烧入程序LED灯闪烁频率和断电以后再上电闪烁频率不一致,不知道是什么原因导致。


总结

以上是今天要分享的内容。本文简要介绍了TMS320F28034工程模板的创建以及LED测试程序的编写过程。鉴于我也是DSP学习的初学者,还有许多不明白的地方。这篇文章主要为了方便日后自我回顾。如有任何错误之处,请各位前辈不吝赐教,让我们相互学习进步。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值