CCS 6 新建TMS320F28335工程(可移植))

合集下载

TMS320F28335核心板:Core28335软件调试指南

TMS320F28335核心板:Core28335软件调试指南

如果出现下图所示,则表示仿真器和开发板已连接成功。
第三步: 新建一个工程,如下图
第四步: 选择路径,输入工程项目名,并确定,则如下图所示
第五步: 添加源文件,添加 CMD 文件,如下图所示: 注意:源文件有*.c 文件,也有*.asm 文件
添加 CMD 文件跟添加源文件的方法相似,在这里不在赘述。添加完成后整个工程如下所示:
版权© 2013,株洲市索思达电子有限公司
前言
阅前必读
简介:
本 用 户指 南是 TMS320F28335 DSP 处 理 模板 硬 件使 用说 明书 ,详 细描 述 了
28335实用版 的硬件构成、原理,以及它的使用方法和编程指导。
保修:
所有由株洲市索思达电子有限公司生产制造的硬件和软件产品, 保修期为从发货 之日起一 年。 在保修期内由于产品质量原因引起的损坏, 株洲市索思达电子有限公司负责免费维修。当在 保修期内软件进行了升级, 株洲市索思达电子有限公司将免费提供。
参考资料:
TMS320F28x DSP CPU and Instruction Set Reference Guide (文献号 SPRU430) : 介 绍 TMS320F28x 系列 DSP 的 CPU 结构、指令组、流水线及中断。 TMS320C28x Floating Point Unit and Instruction Set Reference Guide (文献号 SPRUEO2)介绍浮点单元和FPU指令集。 TMS320x28xx, 28xxx Peripheral Reference Guide(文献号 绍 TMS320F28x 系列 DSP 的外设。 TMS320x2833x 献 号 System Control and Interrupts Reference Guide ( 文 SPRU566):介

ccs3.3(28335)如何新建并且配置工程

ccs3.3(28335)如何新建并且配置工程

1、新建工程2、拷贝常用文件3、配置工程特别注意的是,头文件.h 文件是不需要专门添加的,在编译时CCS会自动添加涉及到的头文件。

最后,需要添加主文件main.c。

首先点击CCS左上角的新建按钮新建空白源文件并保存到工程目录下,文件名为:main.c。

并按上述操作将该文件添加到工程中。

对于28335,需要添加的c文件如下图所示,如有需要请按需求添加外设库文件:4、配置工程选项通过Project->Build Option菜单进入设置编译选项窗口。

Include search path路径为..\..\DSP2833x_headers\include;..\..\DSP2833x_common\include ..\..\意思为此文件的上上级目录search path路径为..\..\DSP2833x_headers\includelibraries为rts2800_fpu32.lib为了使工程被编译后自动加载.out文件到仿真平台,所以需要进行一些设置,点击Option->Custom菜单进入自定义设置窗口。

如图4.2所示,在“Program/Project/CIO”分页中勾选“Load Program After Build”。

然后再次编译,这时编译完成后将立即出现如图4.3所示程序加载进度指示窗口。

装载完成后会自动进入仿真状态。

在main.c 文件中添加用户代码,点击按钮或菜单项Project->Build 开始增量编译。

编译成功后,窗口如图4.1所示。

因为上述章节在“build option”中已经指定了新的程序入口点,所以此处出现这个警告是正常的,可以忽略。

CCS.6创建一个工程

CCS.6创建一个工程

CCS6新建工程(28335)最近几天,研究了一下如何在CCS6里面新建工程文件,在这里总结一下,以备不时之需。

一、需要准备的东西1、软件CCS62、Ti的controlSUITE软件,这个软件比较大(压缩包就有2G),它里面有我们需要的库文件。

3、一块开发板,我用的是28335。

二、建立工程的步骤新建空的工程1、点击File》new》CCS Project图1 点击新建工程2、如图2配置图2 配置然后点击Finish。

这是我的工程文件是这样的(图3):图34、新建两个文件夹:source文件夹和include文件夹。

这个是写代码的一种比较好习惯,我们把头文件(.h文件)放在include文件夹里面,把c文件(.c文件)放在source文件夹里面,便于管理。

文件夹建好后如图4:(我把main函数也放进source文件夹了)图45、点击“build”图标(一只锤子),编译一下。

我的这里显示编译成功,但是会有三个建议信息,提示你一些参数应该怎么配置,这里可以不用去管。

图5 编译成功图6 三个建议信息但是现在的工程还没有任何功能,我们需要为它添加一些文件。

6、为工程添加文件、添加头文件在controlSUITE\device_support\f2833x\v142中有DSP2833x_common和DSP2833x_headers两个文件夹,这两个文件夹里面有我们需要的库函数以及相应的头文件,将这两个文件夹中的子文件夹“include”文件夹中的所有h文件拷贝到我们刚刚建立的include文件夹中。

添加完后的工程界面如图7:图7、添加源文件在每一个工程中,有一些源文件(c文件,asm文件,cmd文件)是必须添加的:1、DSP2833x_headers\source目录下的文件,该文件可以指定所有结构体的储存位置,所以只要需要使用定义好的结构体,都必须添加该c文件。

2、DSP2833x_common\source目录下的文件,该文件可以初始化系统的控制选项(PLL、看门狗、预分频)。

[原]TMS320F28335项目开发记录2_CCS与JTAG仿真器连接问题汇总

[原]TMS320F28335项目开发记录2_CCS与JTAG仿真器连接问题汇总

[原]TMS320F28335项目开发记录2_CCS与JTAG仿真器连接问题汇总CCS与仿真器连接问题实际使用过程中,仿真器和CCS连接可能出现这样或那样的问题,也许你的连接很成功,没碰到过什么问题,但我的问题的确不少,可能与电脑配置有关吧,也可能与人品有关吧;下面的自己的一些错误和解决方法总结,不一定对,但也算是一种解决方法,分享给大家:问题:1. jtag连接不上,报错:The controller has detected a dead JTAG clock.The user must turn-on or connect the JTAG clock for the target.连接dm8147没有问题,连接dsp f28335出现此问题;通过不接仿真器测试发现jtag的复位引脚11脚持续的发出低电平,该脚输入WID信号,WID信号输入有问题;所以,还是硬件28335板子硬件上的问题;最后得出:芯片没有问题,是JTAG硬件电路或其他电路的问题;看门狗的复位是由于Flash中没有程序,而复位的低电平脉冲不是造成仿真器连接不了的直接原因;仿真器连接不了,大部分原因是因为JTAG电路的问题,也不排除28335、虚焊、上电顺序等问题;最后查出JTAG上的引脚(TCK、RTCK)有问题!2. The controller has detected a target power loss.The user must turn-on or connect the power supply for the target.看看板子有没有上电。

3. Device is held in reset. Take the device out of reset, and retry the operation.不明原因。

4. The requested TCLK PLL frequency option is invalid.The utility or debugger has requested a selection ofthe JTAG PLL frequency or clock source that is invalid.The value of USCIF.TCLK_FREQUENCY is probably bad.手工设置jtag频率为0后报错5. Failure due to the controller command-finish taking too long.重启ccs或板子看看,一般可以解决。

基于TMS320F28335的程序从FLASH到RAM的移植与运行

基于TMS320F28335的程序从FLASH到RAM的移植与运行
摘 要:在 T 3 0 2 3 5DS MS 2 F 8 3 P里,代码在 片上 F AS 内运行比在 R L H AM 内运行慢得 多,因此对于实时性要 求高的算
法程序的运行是 需要 DS P在 上 电时将这部分代码搬移到 片上 R M 内并在 R M 内运行.本文分析 了 T 3 0 2 3 5DS A A MS 2 F 8 3 P
a o i m r ga whc e n sra— mers o s s e d d t o y tec d M rm L H a d r ni M. hs l r h p o rm ih d ma d e l i ep n ei n e e c p h o e t R g t t o oA f o F AS n R u nA Ti
第 2 卷 第 4期 4
2 1年 1 月 01 2
湖南理工学院学报( 然科学版) 自
Jun l f u a stt o Sine n eh ooy( trl cecs orao H nnI tue f c c dTcn lg Na aSine) ni e a u
V0 .4NO 4 I . 2 De . 0 1 c 2 1

Hale Waihona Puke ( . l g fn oma o n C mmu i t nE gn e ig H n nI s tt o S i c n e h oo y Y e a g 4 4 0 , hn ; 1 Co e e Ifr t na d o l o i nc i n ie r , u a n t ue f c n e dT c n lg , u y n , 1 0 6 C ia ao n i e a 2 C ar nE e t nc o L do Y e a g Y e a g 4 4 0 ) . hi ma l r is . t f u y n , u y n , 1 0 0 co C

DSP28335建工程

DSP28335建工程

CCS 3.3 新建TMS320F28335 工程使用CCS3.3 新建一个空的工程,以工程名Test 为例。

注意路径Location 中不能含有中文。

然后将DSP2833x_common 文件夹和DSP2833x_headers 文件夹拷到工程文件夹Test 中。

这两个文件夹TI 官方有提供。

main.c 文件是自己新建的。

之后,怎么进行接下来的配置呢?下面给大家来详细讲解一下。

右击工程名,选择Build Options,进入设置页面:1、Complier 栏,左列中选择Advanced,最下面的Floating Point Support 中选择fpu32。

2、Complier 栏,左列中选择Preprocessor,在Include Search Path 中,填写$(Proj_dir)\DSP2833x_headers\include;$(Proj_dir)\DSP2833x_common\i nclude 这里是设置头文件索引路径。

3、Linker 栏,左列中选择Basic,在Stack Size(-stack)中填写堆栈大小,可设为0x200 在Code Entry Point(-e)中,填写codestart4、Linker 栏,左列中选择Libraries,在Incl. Libraries中填写rts2800_fpu32.lib5、右击Source,添加所需的.c 文件、.asm 文件和.cmd 文件这里是根据自己的需要添加的,但是一般DSP2833x_common\source 中的DSP2833x_CodeStartBranch.asm DSP2833x_DefaultIsr.c DSP2833x_SysCtrl.cDSP2833x_MemCopy.c DSP2833x_Gpio.c 以及DSP2833x_headers\source 中的DSP2833x_GlobalVariableDefs.c 是都需要用到的。

TMS320F28335中文资料

TMS320F28335中文资料

TMS320F28335中文资料TMS320F28335采用176引脚LQFP四边形封装,其功能结构参见参考文献。

其主要性能如下:高性能的静态CMOS技术,指令周期为6.67 ns,主频达150 MHz;高性能的32位CPU,单精度浮点运算单元(FPU),采用哈佛流水线结构,能够快速执行中断响应,并具有统一的内存管理模式,可用C/C++语言实现复杂的数学算法;6通道的DMA控制器;片上256 Kxl6的Flash存储器,34 Kxl6的SARAM存储器.1 Kx16 OTPROM 和8 Kxl6的Boot ROM。

其中Flash,OTPROM,16 Kxl6的SARAM均受密码保护;控制时钟系统具有片上振荡器,看门狗模块,支持动态PLL调节,内部可编程锁相环,通过软件设置相应寄存器的值改变CPU的输入时钟频率;8个外部中断,相对TMS320F281X系列的DSP,无专门的中断引脚。

GPI00~GPI063连接到该中断.GPI00一GPI031连接到XINTl,XINT2及XNMI外部中断,GPl032~GPI063连接到XINT3一XINT7外部中断;支持58个外设中断的外设中断扩展控制器(PIE),管理片上外设和外部引脚引起的中断请求;增强型的外设模块:18个PWM输出,包含6个高分辨率脉宽调制模块(HRPWM)、6个事件捕获输入,2通道的正交调制模块(QEP);3个32位的定时器,定时器0和定时器1用作一般的定时器,定时器0接到PIE模块,定时器1接到中断INTl3;定时器2用于DSP/BIOS的片上实时系统,连接到中断INTl4,如果系统不使用DSP/BIOS,定时器2可用于一般定时器;串行外设为2通道CAN模块、3通道SCI模块、2个McBSP(多通道缓冲串行接口)模块、1个SPI模块、1个I2C主从兼容的串行总线接口模块;12位的A/D转换器具有16个转换通道、2个采样保持器、内外部参考电压,转换速度为80 ns,同时支持多通道转换;88个可编程的复用GPIO引脚;低功耗模式;1.9 V内核,3.3 V I/O供电;符合IEEEll49.1标准的片内扫描仿真接口(JTAG);TMS320F28335的存储器映射需注意以下几点:片上外设寄存器块0~3只能用于数据存储区,用户不能在该存储区内写入程序.OTP ROM区(0×38 0000~0×38 03FF)为只读空间,存储A/D转换器的校准程序,用户不能对此空间写入程序。

新建ccs6_0与目录无关的工程的方法

新建ccs6_0与目录无关的工程的方法

Ccs6.0下新建工程的方法(与目录无关)(寄语:建立一个ccs工程对于初学者很难,因为初学者还不熟悉ccs的架构,建议不要一上来就建立工程。

这样会导致陌生、畏惧。

建议初学者先在三兄弟提供的例子上改,等对ccs工程架构和常用的文件都熟悉了后再来看本文当,建立自己的工程)1、打开ccs6.0如下图:2、单击:File->New->ccs Project,如下图:在Target标题栏中,我们选择如下图所示在下面的图中,我们选择TMS320F28335;有中文和特殊字符)。

我们不钩选Use default location。

这样,我们可以手动指定我们自己的工程目录。

我们选择Browse...按钮,选择我们的工程要放置的目录。

在这里我们在我们提供的工程目录下添加我们要建的工程文件夹,方法是选择“新建文件夹(M)”,并给文件夹起个名字新起的名字如下:我们选择一个空的工程,方法如下:这样一个空的工程就建立完毕了,在工程目录下只有如下的内容接下来,我们要具备如下四个文件夹首先我们找到我们新建的工程目录,并在目录下面新建如下两个文件夹,一个用来放头文件,一个用于将来数字信号处理时放库文件。

现在用一个比较懒的方法(大家见谅了,不是本人比较懒,注意是大部分客户都还不太熟悉dsp28335的文件构架,还不知道要选哪些文件,索性都选上),我们把SXD28335_common 下的include里面的所有头文件都复制到我们刚建的工程下的include下。

同样的方法,我们把SXD28335B_headers下的include里的头文件都复制到我们新建的工程目录下的include里面;到目前为止,我们的工程目录下面就有很多头文件了这些头文件都是我们刚才复制过来的;接下来,我们要选择我们可能用到的c文件。

首先,我们在SXD28335_common下的source 文件夹下选择我们要用的c文件(每个工程都不一样,可以参考一下我们的《SXD28335固件开发使用说明书》里面有每个工程都用到了哪些文件)。

如何新建一个TMS320F28335的CCS4.0工程

如何新建一个TMS320F28335的CCS4.0工程

如何新建一个TMS320F28335的CCS4.0工程TI官方例程版本:// $TI Release: 2833x/2823x Header Files and Peripheral Examples V133 $// $Release Date: June 8, 2012 $(这些官方例程和下面需要复制过来的文件都是来自TI官方免费提供下载的controlSUITE套件中,这个套件还包括其它很多使用手册,非常好用,非常推荐下载!!!)总览如下图,红框中就是需要我们自己建立的文件夹或是需要自己复制过来的文件1、头文件:从TI官方例程中复制所需要的头文件,放到我们自己的工程下放头文件的文件夹中,有很多,如下图:(要求包含的头文件是根据源文件来的,打开各个源文件都可以看到要求包含的源文件) Example_2833xXXXX.c这个例程源文件中要求要有:DSP28x_Project.hDSP28x_Project.h这个头文件中要求要有:DSP2833x_Device.hDSP2833x_Examples.hDSP2833x_Device.h这个头文件中要求要有:DSP2833x_Adc.hDSP2833x_CpuTimers.hDSP2833x_DevEmu.hDSP2833x_DMA.hDSP2833x_ECan.hDSP2833x_ECap.hDSP2833x_EPwm.hDSP2833x_EQep.hDSP2833x_Gpio.hDSP2833x_I2c.hDSP2833x_Mcbsp.hDSP2833x_PieCtrl.hDSP2833x_PieVect.hDSP2833x_Sci.hDSP2833x_Spi.hDSP2833x_SysCtrl.hDSP2833x_Xintf.hDSP2833x_XIntrupt.hDSP2833x_Examples.hDSP2833x_Examples.h这个头文件中要求要有:DSP2833x_GlobalPrototypes.hDSP2833x_ePwm_defines.hDSP2833x_Dma_defines.hDSP2833x_I2C_defines.hDSP2833x_DefaultISR.h除了将头文件复制过来之外,还需要把放头文件的文件夹路径包含到编译设置中(如下图)路径包含成功后,会显示如下:2、源文件从TI官方例程中复制所需要的源文件,放到我们自己的工程下放源文件的文件夹中,也有很多,如下图所示:Example_2833xCpuTimer.c是我从TI官方例程中拷过来的要做的实验,包含:Main()函数(这个自己写就行,与TI的其它源文件无关)InitSysCtrl()函数(在Example_2833xCpuTimer.c源文件中)被包含于DSP2833x_SysCtrl.c源文件中InitPieCtrl()函数(在Example_2833xCpuTimer.c源文件中)被包含于DSP2833x_PieCtrl.c源文件中InitCpuTimers()函数(在Example_2833xCpuTimer.c源文件中)被包含于DSP2833x_CpuTimers.c源文件中CpuTimer0Regs、CpuTimer1Regs、CpuTimer2Regs等寄存器变量(在Example_2833xCpuTimer.c 源文件中)定义在DSP2833x_GlobalVariableDefs.c源文件中(其它很多全局变量也都定义在这个源文件中)InitPieVectTable()函数(在Example_2833xCpuTimer.c源文件中)被包含于DSP2833x_PieVect.c 源文件中ADCINT_ISR、XINT2_ISR、INT13_ISR……(在DSP2833x_PieVect.c源文件中)定义在DSP2833x_DefaultIsr.c源文件中DELAY_US()函数(在DSP2833x_SysCtrl.c源文件中)被包含于DSP2833x_usDelay.asm源文件中ADC_cal()函数(在DSP2833x_SysCtrl.c源文件中)被包含于DSP2833x_ADC_cal.asm源文件中 DSP2833x_MemCopy.c用于烧入Flash中用到的,一般放在里面也没事,备用3、CMD文件,有两个需要复制过来,第一个是:(定义了一些外设寄存器的内存映射)不使用BIOS则用这个:DSP2833x_Headers_nonBIOS.cmd使用BIOS则用这个:DSP2833x_Headers_BIOS.cmd第二个是:(定义了一些C语言中已经定义的数据段)烧入RAM则用这个:28335_RAM_lnk.cmd烧入Flash则用这个:F28335.cmd4、链接xml(自己预先配置好)到自己的工程中查看已经建立的target Configuration的方法是,点击View‐>Target Configuration,如下图:再右键单击那个ccxml文件,选择Link File to Project,再选择要链接到的工程即可,如下图:5、复制rts2800_fpu32.lib库文件,暂时使用这个,其它的没试过6、经常出现“warning: creating .stack section with default size of 400 (hex) words.”的警告,解决办法是:在刚才新建的工程里对Build Options里面的选项设置一下,将Set C system stack size(‐‐stack_size,‐stack)设置为0x120即可(如下图)。

使用CCS10新建TMS320F28335工程并闪烁LED(流水灯)程序

使用CCS10新建TMS320F28335工程并闪烁LED(流水灯)程序

使⽤CCS10新建TMS320F28335⼯程并闪烁LED(流⽔灯)程序学习TMS320F28335使⽤Code Composer Studio 10.4.0下载和安装本⽂不再叙述。

1、新建⼯程1.1选择⽬录新建⼯作区1.2打开软件界⾯如下图所⽰:1.3选择新建⼯程第⼀步选择芯⽚TMS320F28335;第⼆步选择仿真器类型,本⽂选择XDS100V2第三步新建⼯程名称。

第四步选择新建⼀个空⼯程。

1.4配置⼯程选项添加头⽂件访问路径:将这些头⽂件复制过来:源⽂件复制过来。

这⾥⾯main.c是新建的⽂件。

其余⽂件都可以在C2000Ware⽂件包中找到。

配置LINk选项:1.5 main.c添加代码,硬件使⽤GPIO18作为LED驱动⼝。

#include "DSP28x_Project.h"void main(void){Uint32 delay;InitSysCtrl();EALLOW;GpioCtrlRegs.GPAMUX2.bit.GPIO18 = 0;GpioCtrlRegs.GPADIR.bit.GPIO18 = 1;EDIS;while(1){GpioDataRegs.GPATOGGLE.bit.GPIO18 = 1;for(delay = 0; delay < 1000000; delay++){}GpioDataRegs.GPATOGGLE.bit.GPIO18 = 1;for(delay = 0; delay < 1000000; delay++){}}}1.6⼯程右键编译下载程序:下载完成后⾃动运⾏。

1.7 ⾃此⼀个新建⼯程和LED流⽔灯就欢快的跑起来了。

嵌入式操作系统在TMS320F28335平台上的移植

嵌入式操作系统在TMS320F28335平台上的移植

( No r t h w e s t I n s i t t u t e o f N u c l e a r T e c h n o l o g y , Xi ’ a n 7 1 0 0 2 4, C h i n a )
Ab s t r a c t : Wi t h he t i mp ov r ng i c a p a b i l i t y o f DSP, i t i s mo f e c o mp l e x i n p r o c e s s i n g a fa i r s , mu c h h i g h e r f r e qu e n c y i n a d d i t i o n s a nd a me n d — me n t s o ff un c t i o n s a n dmu h l c a r g 盯s c a l e o f s o f t wa r e. Ho wt Oi mp ov r e e f f i c i e n c y o fl  ̄U e, s h o wt o a s s I l l  ̄r e a l — i t me a n dr ed u c et h ed if ic u l — t i e s o f s o f t wa r e d e v e l o p me n t a e r pr o b l e ms ha t t e a c h DS P d e v e l o p e r mu s t f a c e o. t Th e r e f o r e, he t i n t r o d u c io t n o f r e a l —t i me o p e r a i t n g s y s t e m i s a g o o d s ol u io t n f o r DS P s y s t e m.An a l y z e he t e mb e d d e d s y s t e ms a t p es r e n t , nd a d e s i g n he t ig d i t a l p r o c e s s i n g p l a fo t r m b a s e d o n TM S 3 2 0 F 2 8 3 3 5, nd a o n t h i s p l a f t o m r t r a n s p l n t ̄ a C/OS-H r e l —t a i me o er p a t i n g s ys t e m. Gi v e t h e d e t a i l e d s t e p s o f t r a n  ̄l n mf a i o n nd a t e s — i t n g me ho t ds , s a we l l s a p a r t o f he t s o u r c e c o de . Fi na ll y, a c c o r d i n g o t he t p ob r l e ms i n he t c o u r s e o f t r a n s p l nt a a t i o n p r e en s t s o me d e t a i l s n e e dt o p a y a t t e n t i o nt o. Ke y wo r d s: e mb e dd d e s y s t e m; TM S 3 2 0F 2 8 3 3 5; t r ns a p l nt a a i t o n;  ̄C/OS一 Ⅱ

TMS320F28335资料

TMS320F28335资料

TMS320F28335TechV_28335目录1 DSP的PWM信号 (1)1.1简介 (1)1.2端口对应关系 (2)1.3初始化程序注释 (2)2 DSP的CAN通信 (4)2.1CAN2.0B协议简述 (4)2.2CAN总线电平 (5)2.3CAN总线上的120欧电阻 (6)2.4DSP的CAN时钟模块 (6)2.5邮箱初始化例程注解 (7)2.6消息发送和接收 (8)2.7CAN的适配器存在的一些问题 (9)3 DSP的32位浮点运算测试 (10)4 DSP定时器中断 (11)4.1 DSP28335的定时器 (11)4.2定时器分频 (11)4.3 计数器计数 (12)4.4定时器时钟周期 (12)5 DSP看门狗复位 (12)5.1看门狗时钟 (12)5.2看门狗系统控制和状态寄存器(SCSR) (13)5.3看门狗计数寄存器(WDCNTR) (13)5.4看门狗重启管理器(WDKEY) (14)5.5看门狗控制寄存器(WDCR) (14)6 软件报错与处理 (15)6.1CCS Setup中仿真器的配置 (15)6.2Connect报错——1145——换仿真器解决 (17)6.3CAN口测试A发B收,数据发不出去 (19)6.4编译Pwm测试文件出错 (19)6.5could not open source file "DSP2833x_Device.h (20)7 备注与注意事项 (22)8 附录 C源程序 (22)8.1PWM初始化及脉冲产生函数 (22)8.2邮箱初始化函数 (33)8.3浮点运算测试函数 (36)8.4定时器中断初始化函数 (38)8.5采用定时器的延时函数 (39)8.6看门狗初始化函数 (40)1 DSP的PWM信号1.1简介DSP28335共12路16位的ePWM,能进行频率和占空比控制。

ePWM的时钟TBCLK=SYSCLKOUT/(HSPCLKDIV×CLKDIV):PWM信号频率由时基周期寄存器TBPDR和时基计数器的计数模式决定。

TMS320F28335教程

TMS320F28335教程

低功耗模式和省电模式
支持IDLE,STANDBY,HALT模式
禁止外设独立时钟
179引脚BGA封装或176引脚LQFP封装
DSP技术应用
DSP技术应用
SEED-DEC28335
DSP技术应用
原理框图
片上存储器: FLASH:256K x 16 SRAM:34K x 18 Boot ROM:8K x 16 OTP ROM:1K x 16 片上外设 PWM脉冲输出 GAP/QEP输入 A/D模拟输入 RS232/RS485 CAN总线 RTC+EEPROM EPWM输出:12通道 HRPWM:6通道
简化软件开发,加快上手速度
无需再将程序转换为定点,节省开发时间 提供完善的用户手册和源程序,缩短新芯片的学习时间
DSP技术应用
处理器性能
300 MFLOPS at 150MHz Single-cycle 32-bit MAC 6-channel DMA support for EMIF, ADC, McBSP Code security 68 存储器 512 KB KB Flash 512KB flash and 68KB RAM RAM Configurable 16- or 32-bit EMIF Memory Bus 控制外设 DMA PWM outputs interfaces for three
使用
• 最佳的代码密度 • 兼容C54x™ DSP软件
• 兼容C62x™ DSP软件
DSP技术应用
C2000系列DSP
子系列
C2xx子系列:16位定点DSP、20MIPS
代表器件:TMS320F206PZ C24x子系列:16位定点DSP、20MIPS

我的首个DSP (TMS320F28335) LED灯闪烁 项目实验 总结知识讲解

我的首个DSP (TMS320F28335) LED灯闪烁 项目实验 总结知识讲解

买视频资料、买书、买开发板(F28335)、各种版本开发环境安装,导入工程、创建工程、了解controlSUITE,终于创建了一个工程,且是按照自己的意愿将代码在开发板上跑起来,现总结如下:实验目的:将开发板上可控的两个LED灯LD3、LD4实现交替闪烁,并在RAM中仿真实验;实验步骤:1、创建工程、且包含main.c文件按照上面的五步操作,然后点击【finish】。

word可编辑遇到的问题:在第四步如果设置新的工作空间文件夹,在点击【finish】后,应实际的去工作空间文件夹下去看一下,是否确实创建好了。

建议:在点击完【finish】后,项目框架基本创建完成,然后关闭CCS,再次进去看看是否直接进入刚刚创建好的工程。

如果不能最好分析一下原因,重建一次。

我在这里反复了3次,也就是重建3次才成功。

如果可以进入,进入后面的步骤。

2、复制controlSUITE下C:\ti\controlSUITE\device_support\f2833x下面的DSP2833x_common和DSP2833x_headers两个文件夹到所创建的工程目录;复制完成后最好仔细浏览一下每个目录下都有哪些文件。

3、在项目的属性设置对话框中设置include路径如下:word可编辑4、在main.c添加如下头文件:#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File#include "DSP2833x_Examples.h" // DSP2833x Examples Include File word可编辑5、这是可以编译一下,肯定会出错,需要删除一些文件。

如下以上红圈内的文件全部删除6、然后再编译一下,看看有什么问题就自己处理吧,呵呵。

7、现在已经有了基本的函数库、头文件,剩下就是实现LED灯的控制了。

代码如下:word可编辑word可编辑#include"DSP2833x_Device.h"// DSP2833x Headerfile Include File#include"DSP2833x_Examples.h"// DSP2833x Examples Include File#define LD3_ON() GpioDataRegs.GPACLEAR.bit.GPIO0 = 1#define LD3_OFF() GpioDataRegs.GPASET.bit.GPIO0 = 1#define LD4_ON() GpioDataRegs.GPBCLEAR.bit.GPIO34 = 1#define LD4_OFF() GpioDataRegs.GPBSET.bit.GPIO34 = 1/** main.c*/int main(void) {InitSysCtrl();DINT;IER = 0x0000;IFR = 0x0000;InitPieCtrl();InitPieVectTable();InitGpio();EALLOW; //这里是DSP对寄存器的安全访问控制成对出现//引脚工作在IO模式GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0;// 0 gpio modeGpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0;// 0 gpio mode//IO引脚方向设置word可编辑GpioCtrlRegs.GPADIR.bit.GPIO0 = 1;//1 output 0 inputGpioCtrlRegs.GPBDIR.bit.GPIO34 = 1;//1 output 0 input//IO引脚上下拉设置GpioCtrlRegs.GPAPUD.bit.GPIO0 = 0;//1 enable pullup 0 disable pullup GpioCtrlRegs.GPBPUD.bit.GPIO34 = 0;//1 enable pullup 0 disable pullup EDIS; //这里是DSP对寄存器的安全访问控制while(1){EALLOW;LD3_ON();LD4_OFF();EDIS;//delay functionEALLOW;LD3_OFF();word可编辑LD4_ON();EDIS;//delay function }}word可编辑。

(完整)[原]TMS320F28335项目开发记录2_CCS与JTAG仿真器连接问题汇总,推荐文档

(完整)[原]TMS320F28335项目开发记录2_CCS与JTAG仿真器连接问题汇总,推荐文档

[原]TMS320F28335项目开发记录2_CCS与JTAG仿真器连接问题汇总CCS与仿真器连接问题实际使用过程中,仿真器和CCS连接可能出现这样或那样的问题,也许你的连接很成功,没碰到过什么问题,但我的问题的确不少,可能与电脑配置有关吧,也可能与人品有关吧;下面的自己的一些错误和解决方法总结,不一定对,但也算是一种解决方法,分享给大家:问题:1. jtag连接不上,报错:The controller has detected a dead JTAG clock.The user must turn-on or connect the JTAG clock for the target.连接dm8147没有问题,连接dsp f28335出现此问题;通过不接仿真器测试发现jtag的复位引脚11脚持续的发出低电平,该脚输入WID信号,WID信号输入有问题;所以,还是硬件28335板子硬件上的问题;最后得出:芯片没有问题,是JTAG硬件电路或其他电路的问题;看门狗的复位是由于Flash中没有程序,而复位的低电平脉冲不是造成仿真器连接不了的直接原因;仿真器连接不了,大部分原因是因为JTAG电路的问题,也不排除28335、虚焊、上电顺序等问题;最后查出JTAG上的引脚(TCK、RTCK)有问题!2. The controller has detected a target power loss.The user must turn-on or connect the power supply for the target.看看板子有没有上电。

3. Device is held in reset. Take the device out of reset, and retry the operation.不明原因。

4. The requested TCLK PLL frequency option is invalid.The utility or debugger has requested a selection ofthe JTAG PLL frequency or clock source that is invalid.The value of USCIF.TCLK_FREQUENCY is probably bad.手工设置jtag频率为0后报错5. Failure due to the controller command-finish taking too long.重启ccs或板子看看,一般可以解决。

CCS10.0下TMS320F28335使用Printf函数的问题

CCS10.0下TMS320F28335使用Printf函数的问题

CCS10.0下TMS320F28335使⽤Printf函数的问题使⽤Code Composer Studio Version: 10.1.0.00010 ,建⽴TMS320F28335⼯程。

/** main.c*/#include <stdio.h>int fputc(int ch, FILE *f){while(ScibRegs.SCICTL2.bit.TXRDY == 0);ScibRegs.SCITXBUF=ch;return ch;}int main(void) {printf("Hello DSP!\r\n");return0;}编译出错"../CMD/F28335.cmd", line 66: error: program will not fit into availablememory, or the section contains a call site that requires a trampoline thatcan't be generated for this section. run placement with alignment/blockingfails for section ".stack" size 0x400page 1. Available memory ranges:RAMM1 size: 0x400 unused: 0x0 max hole: 0x0查看F28335.cmd⽂件PAGE 1 : /* Data Memory *//* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE0 for program allocation *//* Registers remain on PAGE1 */BOOT_RSVD : origin = 0x000000, length = 0x000050/* Part of M0, BOOT rom will use this for stack */RAMM0 : origin = 0x000050, length = 0x0003B0/* on-chip RAM block M0 */RAMM1 : origin = 0x000400, length = 0x000400/* on-chip RAM block M1 */RAML4 : origin = 0x00C000, length = 0x001000/* on-chip RAM block L1 */RAML5 : origin = 0x00D000, length = 0x001000/* on-chip RAM block L1 */RAML6 : origin = 0x00E000, length = 0x001000/* on-chip RAM block L1 */RAML7 : origin = 0x00F000, length = 0x001000/* on-chip RAM block L1 */PAGE1 为数据存储区/* Allocate uninitalized data sections: */.stack : > RAMM1 PAGE = 1.ebss : > RAML5 PAGE = 1.esysmem : > RAMM1 PAGE = 1stack段空间不够,修改为/* Allocate uninitalized data sections: */.stack : > RAML4 PAGE = 1.ebss : > RAML5 PAGE = 1.esysmem : > RAML4 PAGE = 1修改Printf⽀持,Level of printf/scanf support required(--printf_support)选择minimal堆栈设置编译通过,可以正常使⽤printf函数打印字符串,但还是⽆法使⽤%d等格式化输出功能,即使Level of printf/scanf support required(--printf_support)选择full也不⾏。

TMS320F28335的uC-OSⅡ移植

TMS320F28335的uC-OSⅡ移植

TMS320F28335的uC-OSⅡ移植TMS320F28335的uC-OSⅡ移植1、 uC-OSII 的原理uC-OSII 包括任务调度、时间管理、内存管理、资源管理(信号量、邮箱、消息队列)四大部分,没有文件系统、网络接口、输入输出界面。

它的移植只与4 个文件相关:汇编文件(OS_CPU_A.ASM)、处理器相关C 文件(OS_CPU.H、OS_CPU_C.C)和配置文件(OS_C FG.H)。

有64 个优先级,系统占用8 个,用户可创建56 个任务,不支持时间片轮转。

它的基本思路就是“近似地每时每刻总是让优先级最高的就绪任务处于运行状态”。

为了保证这一点,它在调用系统API 函数、中断结束、定时中断结束时总是执行调度算法。

原作者通过事先计算好数据,简化了运算量,通过精心设计就绪表结构,使得延时可预知。

任务的切换是通过模拟一次中断实现的。

uC-OSII 工作核心原理是:近似地让最高优先级的就绪任务处于运行状态。

操作系统将在下面情况中进行任务调度:调用API 函数( 用户主动调用), 中断( 系统占用的时间片中断OsTimeTick(),用户使用的中断)。

其整体整体思路如下。

(1)、在调用API 函数时,有可能引起阻塞,如果系统API 函数察觉到运行条件不满足,需要切换就调用OSSched()调度函数,这个过程是系统自动完成的,用户没有参与。

OSSched()判断是否切换,如果需要切换,则此函数调用OS_TASK_SW()。

这个函数模拟一次中断,好象程序被中断打断了,其实是OS 故意制造的假象,目的是为了任务切换。

既然是中断,那么返回地址(即紧邻OS_TASK_SW()的下一条汇编指令的PC 地址)就被自动压入堆栈,接着在中断程序里保存CPU寄存器(PUSHALL)……。

堆栈结构不是任意的,而是严格按照uC-OSII 规范处理的。

OS 每次切换都会保存和恢复全部现场信息(POPALL),然后用RETI 回到任务断点继续执行。

CCSV4.2环境中建立DSP28335工程及配置

CCSV4.2环境中建立DSP28335工程及配置

CCSV4.2编译环境下DSP28335工程的新建及配置注:本文由华南理工大学电力学院冯自成同学综合各种资料整理所得,整个过程经过经过实际验证,所使用的编译软件为CCSV4.2.4,采用的DSP型号为DSP28335。

由于安装目录的不同,文中有些项目需要自行调整,欢迎在本文基础上进行补充。

1.点击File→New→CCS Project,弹出如图1所示对话框,输入工程名字test,选择工程存放路径,本文选择默认路径,一直Next直到图2,在Device Variant中选择2833x和TMS320F28335,点击Finish。

图1图22.复制图3所示文件夹到安装目录中的Workspace文件夹,这两个文件夹可以从购买的DSP资料中获取或者安装图4所示程序获得。

图3图43.右键单击项目名称,选择Build Properties弹出图5所示对话框,点击加号添加以下三个目录的文件夹,具体的路径根据安装路径的不同而不同,本文中CCS软件安装在D:\Texas Instruments中。

D:\Texas Instruments\workspace\DSP2833x_common\includeD:\Texas Instruments\workspace\DSP2833x_headers\includeD:\Texas Instruments\xdais_7_10_00_06\packages\ti\xdais图54.复制图6所示必备文件到test文件夹内,如果test内已经还有某文件,则不必复制,如果需要其他文件可以自行添加,本文中需要添加DSP2833x_Adc.c和DSP2833x_DMA.c两个源文件。

(建议将所有必备文件实现复制到一个文件夹内保存,以便使用。

)图67.选中test项目,点击File→New→Source File,弹出如图所示对话框输入主程序的名字,并且添加后缀,如test.c。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用CCS 6新建TMS320F28335工程
本例程以CCS 6.0下新建TMS320F28335工程为例。

用CCS 5,或者新建TI的其它处理器工程的区别也不大,参考本例即可。

所建工程能够实现完全的可移植,即任意拷贝到其他位置或其他电脑都能够直接编译运行,非常方便。

一、CCS 6.0安装
一路Next即可,在处理器支持页面,选择C2000系列即可。

根据需要选择。

仿真器也是根据实际选择,XDS100是TI官方的,便宜又实在。

跳出是否安装的页面,均选择安装。

安装完成后,CCS5的大学版的license能够继续用。

将其复制到C:\ti\ccsv6\ccs_base\DebugServer\license 即可。

打开软件后,会跳出页面要求设置Workspace路径,注意不能有中文。

Workspace路径也可以更改,如下即可:
二、新建TMS320F28335工程
1)在Workspace文件下,建立Project format for CCS6文件夹,这个文件夹就是我们接下来要建立的工程模板文件夹,需要移植或者拷贝程序,拷贝该文件夹即可。

在Project format for CCS6文件夹下,新建Project文件夹,该文件夹用于存放我们的工程文件。

拷贝以下四个文件夹到Project format for CCS6文件夹下。

DSP2833x_common
DSP2833x_headers
FPUfastRTS
IQmath
注:这四个文件夹可以从TI官方文件得到,需要安装 controlSUITE,TI官网可免费下载。

安装好controlSUITE之后,可以在
C:\ti\controlSUITE\libs\math\
C:\ti\controlSUITE\device_support\f2833x\v141\
中找到上面的四个文件夹。

(v141为版本号,实际不一定是这个版本,可能有更新)
2)新建工程
点击Project New CCS Project
以工程名Test为例。

注意路径Location选择到刚建立的Project文件夹。

点击Finish。

得到的工程如下:
3)从DSP2833x_headers\cmd中拷贝DSP2833x_Headers_nonBIOS.cmd到Project文件夹。

并在Project文件夹下,新建一个 src文件夹,该文件夹将用于存放我们需要用到的源文件。

现在Project文件夹中的文件如下:
4)设置头文件索引路径。

右键点击工程名,选择Properties
选择C2000 Compiler下的Include Options
添加
"${PROJECT_ROOT}\..\DSP2833x_common\include"
"${PROJECT_ROOT}\..\DSP2833x_headers\include"
"${PROJECT_ROOT}\..\FPUfastRTS\V100\include"
"${PROJECT_ROOT}\..\IQmath\v160\include"
添加后如下图所示:
注:V100和V160是版本号,大家根据自己得到的文件夹修正即可。

点击 OK。

我们可以看到Includes栏中,有我们所添加的索引路径,而且不是灰色的,说明添加正确。

5)配置仿真器
右键点击工程名,选择New Target Configuration File
输入名字,这边取为 xml。

点击Finish。

出现以下页面:
选择仿真器型号,这边选的是XDS100V3,器件型号选择28335,点击右侧的Save。

当所选为TI的仿真器,可以点击Test Connection,测试下仿真器是否成功连接。

到现在为止,工程列表如下:
6)添加源文件
这个和CCS 3.3差不多。

将我们需要的 .c文件、.asm文件,复制到src文件夹中。

(源文件用链接的方式导入也可以,但这边选择在src文件夹下拷贝源文件,是为了良好的可移植性考虑的,这样我们整个工程重要文件都在Project文件夹下。


源文件是根据自己的需要添加的,但是一般DSP2833x_common\source中的
DSP2833x_CodeStartBranch.asm
DSP2833x_DefaultIsr.c
DSP2833x_SysCtrl.c
DSP2833x_Gpio.c
以及DSP2833x_headers\source中的DSP2833x_GlobalVariableDefs.c 都是需要用到的。

如果用的ADC,则需添加:
DSP2833x_ADC_cal.asm
DSP2833x_usDelay.asm
DSP2833x_Adc.c
用到中断,需添加:
DSP2833x_PieCtrl.c
DSP2833x_PieVect.c
这边给出我添加的文件示例,如下图所示:
复制到src的文件会显示在工程列表中,如下:
7)如果程序里有三角函数或者开根号等运算,推荐用fastRTS库或者IQmath库来计算。

需要配置如下:
选择C2000 Linker下的File Search Path
在C2000 Linker->File Search Path右边的Include library file or command file中,添加 "rts2800_fpu32.lib"
"rts2800_fpu32_fast_supplement.lib"
在Add <dir> to library search parh中添加索引路径:
"${PROJECT_ROOT}\..\FPUfastRTS\V100\lib"
"${PROJECT_ROOT}\..\IQmath\v160\lib"
然后将最下面的 Disable automatic RTS selection 选中。

添加后如下图所示:
点击Build,在Link Order中,添加两个库文件,并将rts2800_fpu32_fast_supplement.lib 移动到前面,这样该库将被优先索引。

在main.c文件前面,需要添加头文件
#include "math.h"
#include "C28x_FPU_FastRTS.h"
这样,就能使用fastRTS库了。

如果需要用到IQmath库,思路类似,大家自己添加相应的库文件和cmd文件即可。

8)注:要打开我们建立的Test工程, 需要选择到Project文件夹,这是我们工程所在文件夹,上层目录的DSP2833x_common等4个文件夹是为了完全的可移植行准备的。

8)其他说明
cmd文件的选择则根据运行模式选择:
在线仿真模式:添加28335_RAM_lnk.cmd
Flash烧写模式:添加 F28335.cmd
在main.c文件开头,需要引用头文件:
#include "DSP28x_Project.h" //包含所有的外设头文件及宏定义 如果运行在烧写模式,即将程序烧进Flash里,程序里需要包含以下部分:
//重要函数需要在RAM里运行
#pragma CODE_SECTION(函数名1, "ramfuncs");
#pragma CODE_SECTION(函数名2, "ramfuncs");
……
#define RunInFlash //程序烧写标志
在InitPieVectTable(); 后面加入
#ifdef RunInFlash
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
#endif
若编译时若提示内存分配不足,则需根据提示在cmd文件中修改相应内存分配。

通过修改CMD文件能够将整个程序在上电时从Flash拷贝到RAM里运行,这样和在线仿真的运行工况可以说完全一致。

也就无需再写#pragma CODE_SECTION(函数名, "ramfuncs")了,这边就先不展开,大家可以自行百度,我以后有时间再写吧。

By felly77
2016.7.04。

相关文档
最新文档