LLC数字控制TMS320F28034 1-工程创建


建好的工程例程

1 概述

1.1 项目概述

该项目基于TMS320F28034数字信号控制器,旨在实现LLC谐振拓扑的数字化控制方案。通过该方案,可以提高系统效率、稳定性和响应速度,同时减少电磁干扰和功率损耗。项目将利用TMS320F28034的强大控制功能和灵活性,结合LLC拓扑的特点,实现优化的数字控制算法和保护机制。该项目将为LLC拓扑的应用提供一种高效、可靠的数字控制解决方案,推动其在电源领域的发展和应用。

1.2 TMS320F28034简介

TMS320F28034是德州仪器(Texas Instruments)推出的一款基于C2000系列的数字信号控制器。该控制器具有强大的数字信号处理能力和丰富的外设功能,适用于各种实时控制和数字信号处理应用。TMS320F28034采用高性能的C28x核心,集成了多个模拟到数字转换器(ADC)、PWM模块、通信接口等关键功能模块,以支持复杂控制算法和系统集成。该型号的控制器在工业控制、电源管理、电机驱动等领域具有广泛的应用,为工程师提供了强大的工具和平台,以实现高效、精确的控制和处理任务。

在这里插入图片描述

2 开发环境

2.1 软件工具

对于软件开发工具,通常使用TI官网提供的CCS软件。我目前使用的是CCS 10.30版本,可以在TI官网或其他软件下载网站上正常获取。其他常用工具还包括C2000Ware、controlSUITE、C2Prog和UniFlash。我经常使用的是C2Prog烧录工具,版本为1.7,在生产过程中用于批量烧录固件。

2.2 硬件工具

我使用的硬件工具是XDS100V3,虽然有许多第三方烧录工具可供选择,但没有必要花费大笔费用购买XDS510。

2.3 CCS安装

有许多安装教程可在网上找到,因此这里不做详细阐述。需要注意的一点是,在安装时如果不确定如何选择选配安装,可以直接选择全部安装。同时,建议将安装路径设置在非C盘下。

3 工程创建

3.1 工程文件包

(1)在workspace文件夹下新建一个文件夹CSS024D_F28034

在这里插入图片描述

(2)在文件夹下创建几个子文件夹,创建4个子文件夹APP、cmd、include、source,将标准库或者例程中获取到的.c、.h、.cmd分别拷贝到对应文件夹中

在这里插入图片描述

在APP文件夹中:

在这里插入图片描述

Cmd文件家中存放cmd文件,我们建好工程后可以移动进来:

在这里插入图片描述

将.h文件放置在inlcude文件夹中

在这里插入图片描述

将依赖的.C文件放置在source文件夹中

在这里插入图片描述

至此,工程所需的文件就齐全了。

3.2 工程建立

(1)打开CCS10,双击打开,并选择刚建文件夹的工作空间

在这里插入图片描述

在这里插入图片描述

(2)选择新建项目

在这里插入图片描述

在这里插入图片描述

即可创建出一个空的工程:

在这里插入图片描述

(3)Cmd文件配置

在这里插入图片描述

(4)工程文件整理及引用文件的路径整理
现将main.c和cmd文件移动到APP和cmd文件夹中:

在这里插入图片描述

(5)我们自己创建includes,将以下代码复制到inlucdes.h中
//inlucdes.h

#ifndef APP_INCLUDES_H_
#define APP_INCLUDES_H_


#include "DSP28x_Project.h"
#include "DSP2803x_DefaultISR.h"
#include "DSP2803x_Adc.h"
#include "CLAmath.h"

//------------------------------------------
void MemCopy(Uint16 *SourceAddr, Uint16* SourceEndAddr, Uint16* DestAddr);

#endif

//Main.c文件中

#include "includes.h"

/********************************************************
函数名称:main
函数功能:主程序
入口参数:
出口参数:
修    改:
********************************************************/
void main(void)
{

//
	while(1)
	{
	   ;
	}
}

(6)工程配置

按照图示进行设置:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

点击apply and close
以下两个图 将工程中相关文件exclude from build

在这里插入图片描述

在这里插入图片描述

工程文件修改:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

到此为止,工程建立成功,rebuile project,编译通过。

4 实现一个点亮LED程序

原理图中所示:

在这里插入图片描述

在这里插入图片描述

实现简单代码:
宏定义引脚GPIO寄存器

#define LEDRGPIO        GPIO20
#define LEDRMUX         GpioCtrlRegs.GPAMUX2.bit.LEDRGPIO
#define LEDRDIR         GpioCtrlRegs.GPADIR.bit.LEDRGPIO
#define LEDRTOGGLE()    GpioDataRegs.GPATOGGLE.bit.LEDRGPIO = 1
#define LEDRON()        GpioDataRegs.GPASET.bit.LEDRGPIO =1
#define LEDRLOW()       GpioDataRegs.GPACLEAR.bit.LEDRGPIO =1


#define LEDYGPIO        GPIO21
#define LEDYMUX         GpioCtrlRegs.GPAMUX2.bit.LEDYGPIO
#define LEDYDIR         GpioCtrlRegs.GPADIR.bit.LEDYGPIO
#define LEDYTOGGLE()    GpioDataRegs.GPATOGGLE.bit.LEDYGPIO = 1
#define LEDYON()        GpioDataRegs.GPASET.bit.LEDYGPIO =1
#define LEDYLOW()       GpioDataRegs.GPACLEAR.bit.LEDYGPIO =1


#define LEDGGPIO        GPIO24
#define LEDGMUX         GpioCtrlRegs.GPAMUX2.bit.LEDGGPIO
#define LEDGDIR         GpioCtrlRegs.GPADIR.bit.LEDGGPIO
#define LEDGTOGGLE()    GpioDataRegs.GPATOGGLE.bit.LEDGGPIO = 1
#define LEDGON()        GpioDataRegs.GPASET.bit.LEDGGPIO =1
#define LEDGLOW()       GpioDataRegs.GPACLEAR.bit.LEDGGPIO =1

实现三个灯点亮:

//Main.c文件中

#include "includes.h"


/********************************************************
* 函数名称:Init_system
* 功 能:   系统初始化
* 入口参数:
* 出口参数:
* 修 改:
********************************************************/
void Init_system(void)
{
    InitSysCtrl();

    DINT;
    InitPieCtrl();
    IER = 0x0000;
    IFR = 0x0000;
    InitPieVectTable();

    EALLOW;
    Flash_CPUScaleFactor = SCALE_FACTOR;
    Flash_CallbackPtr=NULL;
    EDIS;

    MemCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd, &RamfuncsRunStart);

    InitFlash();
}
/********************************************************
* 函数名称:void Init_system_end(void)
* 功 能:   系统初始化结束
* 入口参数:
* 出口参数:
* 修 改:
********************************************************/
void Init_system_end(void)
{
    EALLOW;  // This is needed to write to EALLOW protected registers
    PieCtrlRegs.PIECTRL.bit.ENPIE = 1;   // Enable the PIE block
    EDIS;   // This is needed to disable write to EALLOW protected registers
    //================================================================================
    EINT;
    ERTM;

}

/********************************************************
函数名称:main
函数功能:主程序
入口参数:
出口参数:
修    改:
********************************************************/
void main(void)
{
    Init_system();

    GpioDataRegs.GPADAT.all = 0ul;
    //GPIO初始化

    EALLOW;

    LEDRMUX = 0;    //GPIO功能
    LEDRDIR = 1;    //GPIO输出型
    LEDYMUX = 0;    //GPIO功能
    LEDYDIR = 1;    //GPIO输出型
    LEDGMUX = 0;    //GPIO功能
    LEDGDIR = 1;    //GPIO输出型

    EDIS;

    LEDRLOW();
    LEDYLOW();
    LEDGLOW();
    LEDRON();
    LEDYON();
    LEDGON();

    Init_system_end();
//
    while(1)
    {
        LEDRON();
        LEDYON();
        LEDGON();
    }
}

建好的工程例程

5 TMS320F28034点亮LED总结

完整的开发环境及工程代码下:
在使用TMS320F28034控制器点亮LED时,通常需要以下步骤

  1. 引脚配置:确定将要连接LED的引脚以及引脚的工作模式(输入或输出)。
  2. 编程:使用适当的开发工具(如CCS)编写C语言程序,配置相应的引脚为输出模式,并设置适当的输出电平以点亮LED。
  3. 编译:将编写的程序进行编译,生成可在TMS320F28034控制器上运行的机器码。
  4. 烧录:使用烧录工具(如C2Prog)将编译后的程序烧录到TMS320F28034控制器中。
  5. 调试:连接硬件工具(如XDS100V3)进行调试,确保程序正常运行并LED能够点亮。
  6. 测试:在确认程序正常运行后,进行LED的功能测试,确保LED按预期亮起。
    通过以上步骤,可以成功利用TMS320F28034控制器点亮LED,展示控制器的基本功能和操作能力。

建好的工程例程

  • 29
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 46
    评论
评论 46
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值