一种新型的TMS320F28069M微控制器开发平台*

2018-03-01 00:36
单片机与嵌入式系统应用 2018年2期
关键词:仿真器开发板微控制器

(1.广东工业大学 信息工程学院,广州 510006;2.广东工业大学 实验教学部)

引 言

随着数字信息化时代的迅速发展,微计算机和数字控制处理芯片的计算以及处理数据能力得到大大提高,全数字化控制系统逐渐成为主流。数字信号处理(DSP)是一门涉及广泛领域的科学,基于各种数字信号处理理论提供各种算法,DSP芯片完成其所需要的各种运算,以完成对数字信号进行处理的目标。DSP芯片无论是在性能上还是在价格上,都具有很明显的优势。且拥有快速、灵活、可编程、易于操作连接、功耗低等特点,在图像处理、音频处理、测量分析控制中都发挥着重要作用。

TI实现信号处理技术的快速发展,提供了创新的DSP芯片。主要有三大系列的DSP芯片,分别是C2000、C5000、C6000。其中C2000系列主要在自动控制中使用较多,在电机、数字电源、无人机实时控制等相关领域中应用。C5000系列多用于语音、音频、数字蜂窝电话、指纹识别以及调制解调器等相关的领域。C6000系列主要用于测试与测量、医疗、军事以及更高级的成像处理中。

本文介绍一种新型TMS320F28069M微控制器开发平台,即微控制器开发板LAUNCHXL-F28069M,它体积小、便于携带、操作简单、可编程性强,能够提供友好的学习平台,有利于初学者进行嵌入式开发。

图1 开发平台实物图

开发平台实物图如图1所示。开发板的微控制器是高效的32位CPU即TMS320F28069M,具有浮点运算单元,256 KB内存,90 MHz工作频率,96 KB随机存储器。其满足多种标准的通信外设,如SCI、UART、SPI、I2C、CAN、LIN等。板间带有控制律加速器(CLA),能加快系统间数据运算。更重要的是其本身内嵌XDS100V2仿真器,能够在编程、评估、调试、仿真的时候提高工作效率,还可以避免常规仿真器与PC端,以及仿真器与板间的连接带来的问题。

1 开发平台硬件介绍

1.1 TMS320F28069M微控制器

TMS320F28069M是具有电机解决方案的微处理器,是LAUNCHXL-F28069M开发平台的主控制器,该微控制器(MCU)由C28x内核和控制律加速器(CLA)供电,其单电源通过内部稳压器实现轨运行。内部有强大的脉冲宽度调制器模块(PWM),在频率调制的时候可进行双边沿控制,且拥有10位基准的模拟比较器,以控制ePWM的输出。MCU中ADC模块在固定量程范围内可实现0~3 V的电压转换,并且ADC模块的接口也对延迟进行了优化处理。

1.2 JTAG仿真器XDS100V2

XDS100V2仿真器用于对以微控制器、微处理器、DSP为中心的系统进行调试和控制,该仿真器内嵌于开发板中,具有较好的稳定性。它支持IEEE.1149.1标准的测试访问端口,且I/O端口电压在1.8~3.6 V之间。XDS100V2还支持端口外设的扩展,可增强系统的功能性,主要包括:GPIO、UART、I2C、SCI、CAN、ADC、定时器的输入等。

PC端通过USB数据线与仿真器完成连接通信,仿真器的电源来自于USB VBUS(+5V)模块,再通过电压转换器,将+5 V电压转换为+3.3 V电压,然后连接到目标系统或者设备中。XDS100仿真器系统框图如图2所示。

图2 XDS100仿真器框图

1.3 电源简介

TMS320F28069M芯片采用3.3 V单电源供电,能满足板间的仿真器XDS100V2的需电条件,且该种供电方式的功耗低。在LAUNCHXL-F28069M中有不同的电源域,它可以通过JTAG来启用电气隔离模块。跳针和电源域的配置如表1所列。

表1 跳针与电源域的配置说明

1.4 控制律加速器(CLA)

C28x控制律加速器是一个单精度32位的浮点运算单元,通过添加并行处理来拓展C28x CPU的处理数据的能力。控制律加速器(CLA)是一个自身带有总线结构、能获取机制和通道的独立处理器,且可以指定8个独立的CLA任务或者例程。每项任务都是通过软件或者外围设备进行启动,比如ADC、ePWM、eCAP、eQEP和CPU的定时器等。CLA执行完一项任务的时候马上进入下一执行任务。当一个任务执行完之后,CPU会收到一个中断信号,但是CLA依然会马上开始下一个最高优先级的等待任务。而且CLA可以直接访问ADC结果寄存器、eQEP、ePWM+HRPWM和eCAP寄存器,并且在CPU和CLA之间还可以传递额外的随机存储数据。

2 开发平台软件技术特点

2.1 集成开发环境IDE

开发平台主要使用Code Composer studio(CCS)集成开发环境(IDE)。该软件具有向下兼容的特点,可以兼容旧版本下的工程,并且可以使用C/C++、汇编语言单独编程或者联合编程,有利于开发者方便使用。软件的开发主要有以下步骤:在工程中编写/添加源文件、编译、汇编、链接,形成可执行的目标文件,最后在CCS集成开发环境中对可执行目标文件进行调试(Debug),将工程下载至目标板。流程图如图3所示。

图3 软件开发流程图

编译器对源文件进行编译,编译通过之后在汇编器中形成汇编语言,然后通过链接器在链接过程中将对象文件组合成一个静态可执行文件或动态对象文件。

链接步骤是可选的,因此可以独立编译和汇编多个模块,最后将它们链接起来。在汇编过程中会执行多个优化项以对程序进行优化,来提高执行速度。优化项主要通过简化循环、重新安排语句和表达式,将变量分配到寄存器,从而减小C/C ++程序或者汇编程序的大小。

在CCS的C/C++编译器和汇编语言工具中提供两种链接程序的方法:一种是当有多个源文件的时候,将模块进行编译、链接;另一种是当有单个源模块的时候,可以在单步中进行编译、链接。

当利用PC端进行开发板程序下载时,主要有以下步骤:

① 下载安装CCS7.2集成开发环境,在安装过程中注意选择仿真器驱动的下载。安装完成之后,通电进行目标板的Demo演示,看板子是否可以正常运行,在PC端设备管理器中看驱动是否安装成功。

② 建立新工程选择目标板的型号,如2806x piccolo、TMS320F28069,然后选择正确的仿真器型号XDS100V2,对工程进行命名,添加源文件(.c)。此过程中可将向下兼容版本的工程导入。如果使用开发辅助工具Control_SUITE,可在Control_SUITE中直接导入例程的工程。

③ 编写主程序源代码,在新建工程中添加主程序中使用的相关文件,如头文件(.h)和链接器命令文件(.cmd)等。

④ 工程建立完成之后,进行编译,生成可执行目标文件(.out),此文件用于调试下载中。

⑤ 对过程进行调试下载(Debug),可在主程序中设置断点,进行单步运行,观察存储器中数据的变化。

注意事项:开发前必须进行板间通电演示,确定开发板、仿真器驱动正常工作。选择正确的器件型号、仿真器型号。进行Debug的时候,将开发板上s1三个拨键,从左至右调至上→上→下,拨键功能主要确定使用仿真器连接主控制器,而且烧写过程中不能断开电源,否则芯片容易出现锁死情况。

2.2 实时JTAG分析

系统具有基于电路内部调试的JTAG标准IEEE1149.1接口,它还支持实时操作模式,允许在处理器运行、代码执行和服务中断时修改内存、外围设备以及寄存器内容。开发者还可以在非时域的代码中进行单步操作,同时还能在不受外界干扰的情况下实现临界时间中断服务。该设备实现了CPU内部硬件的实时模式,不需要软件监视器。此外,还为分析提供了特殊的硬件,允许设置硬件断点或数据、地点的监视点,并在匹配时生成用户想要使用的中断事件。

3 开发平台的应用

基于TMS320F28069M设计了一个控制LED灯的基础实验来展示开发板的功能。利用CPU定时器的配置来控制一个LED灯,灯亮占空比为0.5。建立新工程,在工程中添加需要的文件,进行源代码的设计。部分主程序如下:

#include "DSP28x_Project.h"

interrupt void cpu_timer0_isr(void);

void main(void){

InitSysCtrl();

DINT;

InitPieCtrl();

IER = 0x0000;

IFR = 0x0000;

InitPieVectTable();

EALLOW;

PieVectTable.TINT0 = &cpu_timer0_isr;

EDIS;

InitCpuTimers();

ConfigCpuTimer(&CpuTimer0, 40, 500000);

CpuTimer0Regs.TCR.all = 0x4001;

EALLOW;

GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0;

GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1;

EDIS;

IER |= M_INT1;

PieCtrlRegs.PIEIER1.bit.INTx7 = 1;

EINT;

ERTM;

for(;;);

}

interrupt void cpu_timer0_isr(void){

CpuTimer0.InterruptCount++;

GpioDataRegs.GPBTOGGLE.bit.GPIO34 = 1;

PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;

}

对控制系统和GPIO端口进行初始化设置,配置CPU定时器,将GPIO端口配置为输出端口。在本设计中使用切换寄存器(GPBTOGGLE),其是一个只写寄存器,读为0。由于程序较小,复杂度低,使用28069m_RAM_lnk.cmd链接器命令文件,使主程序在RAM中运行而不在Flash中运行,这样可减少程序的读写时间。在CCS调试界面中可在反汇编窗口查看源代码与汇编代码混合模式、寄存器变量,如图4所示。

图4 查看汇编语言

结 语

[1] H Nene ,T Zaitsu. Bi-directional PSFB DC-DC converter with unique PWMcontrol schemes and seamless mode transitions using enhanced digital control[C]//2017 IEEE Applied Power Electronics Conference and Exposition (APEC), Tampa, FL:2017:3229-3233.

[2] C Cambini, L Giuseppi, M Calzolai, et al. Multichannel airborne ultrasonic ranging system based on the Piccolo C2000 MCU[C]. 2014 6th European Embedded Design in Education and Research Conference (EDERC), 2014, Milano:80-84.

[3] Texas Instruments.TMS320F28069MInstaSPINTM-MOTION Software,2014.

[4] Texas Instruments. LAUNCHXL-F28069M Overview User's Guide,2015.

[5] Texas Instruments. TMS320C28x Optimizing C/C++ Compilerv17.6.0.STS Reference Guide ,2017.

[6] 杨涛, 梁东, 杨金鹏. 基于TMS320F28-069的无人机舵系统控制器设计与实现[J]. 航空精密制造技术, 2017, 53(1):16-20.

[7] 吕红涛, 王国胜, 吕强,等. 基于TMS3-20F28069的自平衡机器人控制系统设计[J]. 单片机与嵌入式系统应用, 2012, 12(9):42-45.

[8] 于广, 孙汉青, 王志平,等. C2000系列DSP在线程序更新研究[J]. 单片机与嵌入式系统应用, 2013, 13(3):78-79.

[9] 武奇生,黄鹤,白璘.TMS320C55x DSP应用及实践[M].西安:西安电子科技大学出版社,2015.

[10] 任润柏,姜建民.TMS320F2802xDSC原理及源码解读——基于TI Piccolo系列[M].北京:北京航空航天大学出版社,2013.

李威、彭端(教授),主要研究方向为宽带移动通信系统。

猜你喜欢
仿真器开发板微控制器
AI仿真器将大大提高科学领域的仿真模拟速度
基于多用户无线仿真器系统的研究
物联网技术在微控制器实验教学中的应用
Microchip最新推出两款PIC32 Curiosity开发板
浅析单片机开发板的设计与制作
Mouser为您呈上开发关键之STMicroelectronics Nucleo开发板
Arduino和Atmel发布Arduino Zero开发板
Atmel针对新一代物联网应用发布全新32位微控制器
最新STM32设计工具增加对混合信号微控制器的支持
意法半导体(ST)推出世界首款基于ARM Cortex-M7的STM32 F7系列微控制器