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学习的初学者,还有许多不明白的地方。这篇文章主要为了方便日后自我回顾。如有任何错误之处,请各位前辈不吝赐教,让我们相互学习进步。

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
TMS320F2833x TMS320F2823x DSC .................................................................................. 10 1.1 特性 ......................................................................................................................... 10 1.2 开始使用 .................................................................................................................... 11 2 .................................................................................................................................. 12 2.1 引脚分配 .................................................................................................................... 14 2.2 信号说明 .................................................................................................................... 23 3 ............................................................................................................................ 33 3.1 内存映射 .................................................................................................................... 34 3.2 简要说明 .................................................................................................................... 41 3.2.1 C28x CPU ....................................................................................................... 41 3.2.2 内存总线(哈弗总线架构) .................................................................................... 41 3.2.3 外设总线 ......................................................................................................... 41 3.2.4 实时 JTAG 和分析 .............................................................................................. 42 3.2.5 外部接口(XINTF) ................................................................................................ 42 3.2.6 闪存 ............................................................................................................... 42 3.2.7 M0,M1 SARAM ............................................................................................... 42 3.2.8 L0, L1, L2, L3, L4, L5, L6, L7SARAM ........................................................................ 43 3.2.9 引导 ROM ........................................................................................................ 43 3.2.9.1 引导加载器使用的外设引脚 ....................................................................... 44 3.2.10 安全性 ............................................................................................................ 44 3.2.11 外设中断扩展 (PIE) 块 ......................................................................................... 46 3.2.12 外部中断 (XINT1-XINT7,XNMI) ............................................................................. 46 3.2.13 振荡器和锁相环 (PLL) .......................................................................................... 46 3.2.14 安全装置 ......................................................................................................... 46 3.2.15 外设时钟 ......................................................................................................... 46 3.2.16 低功率模式 ....................................................................................................... 46 3.2.17 外设帧 0,1,2,3 (PFn) ...................................................................................... 47 3.2.18 通用输入/输出 (GPIO) 复用器 ................................................................................. 47 3.2.19 32 位 CPU 定时器 (0,1,2) .................................................................................. 47 3.2.20 控制外设 ......................................................................................................... 48 3.2.21 串行端口外设 .................................................................................................... 48 3.3 寄存器映射 ................................................................................................................. 49 3.4 器件仿真寄存器 ............................................................................................................ 51 3.5 中断 .......................................................................................................................... 52 3.5.1 外部中断 ......................................................................................................... 56 3.6 系统控制 .................................................................................................................... 57 3.6.1 OSC 和 PLL 块 .................................................................................................. 58 3.6.1.1 外部基准振荡器时钟选项 .......................................................................... 59 3.6.1.2 基于 PLL 的时钟模块 .............................................................................. 60 3.6.1.3 输入时钟损失 ....................................................................................... 61 3.6.2 安全装置块 ....................................................................................................... 62 3.7 低功率模式块 .....................................................................................
很高兴您对 TMS320F280039C 感兴趣!TMS320F280039C 是德州仪器(Texas Instruments)推出的一款高性能数字信号处理器(DSP)芯片。它具有超高速运算能力和丰富的外设,适用于各种实时控制和数字信号处理应用。 如果您想学习关于 TMS320F280039C 的知识,以下是一些学习笔记的建议: 1. 了解基本概念:首先,您可以查阅 TMS320F280039C 的官方文档和用户手册,了解其架构、特性和功能。这将帮助您熟悉该芯片的基本知识。 2. 学习编程语言:TMS320F280039C 可以使用 C 语言或者汇编语言进行编程。如果您不熟悉这些编程语言,建议您学习一些基础知识,例如掌握 C 语言的语法和常用函数。 3. 掌握开发工具:TMS320F280039C 使用 Code Composer Studio (CCS) 作为开发工具。您可以下载安装 CCS,并学习如何在该平台上进行代码编写、调试和仿真。 4. 学习实例代码:德州仪器提供了大量的示例代码和应用案例,您可以通过这些代码了解如何使用 TMS320F280039C 实现各种功能和应用。尝试运行这些示例代码,并对其进行修改和优化,以加深对芯片的理解。 5. 参考资料和社区支持:除了官方文档,还可以查阅教材、参考书籍和在线论坛等资源,获取更多关于 TMS320F280039C 的学习资料和经验分享。与其他开发者进行交流和讨论,获取帮助和解决问题。 请注意,这只是一些建议,具体的学习路径和深度可以根据您的实际需求和时间安排进行调整。祝您在学习 TMS320F280039C 的过程中取得好成果!如果您有其他问题,我很乐意为您解答。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值