【DSP入门】一文带你跨过TI TMS320F2803x 首个学习门槛

摘要

对于德州仪器(TI)这家公司,相信大家再熟悉不过了,它是全球知名的半导体公司,为现实世界的信号处理提供数字信号处理(DSP)及模拟器件技术。除半导体业务外,还提供包括传感与控制、教育产品和数字光源处理解决方案。尤其是在数字开关电源和电机控制方面,C2000™系列的MCU应用尤其广泛。本文结合过往的经验,旨在帮助大家快速入门其中的TMS320F2803x 微控制器。

 

01 前期准备

前期准备分为以下几个方面。

1. 编译软件的获取和安装:

IDE使用CCS(Code Composer Studio) ,目前TI官网已经更新到了V7.4.x版本了,该IDE是免费的,可以从以下链接获取。

http://www.ti.com/tool/ccstudio

 

2. 调试下载工具准备

如果不需要Trace功能的话,仿真调试盒推荐使用xds100V2或者xds100V3,可以去某宝中淘一个,很便宜。如果没有实际的2803x硬件板子,可以顺带一起买个开发板。

下载工具除了CCS外,还可以下载Unitflash软件。这个软件还可以用于后续产品量产后,产线的烧录软件:

http://processors.wiki.ti.com/index.php/Category:CCS_UniFlash 

 

3. 芯片参考手册收集

入门最初免不了进行底层驱动开发,官网的参考手册必不可少。不像其他家将所有外设介绍汇总在一份参考手册,TI将各个外设单独成册,好在这些文档的最前面章节都有汇总了所有参考手册的下载链接:

http://www.ti.com.cn/product/cn/TMS320F28035/technicaldocuments

另外有点需要注意的是,flash,GPIO,PLL的介绍汇总在了TMS320F2803x Piccolo System Control and Interrupts.pdf中。害我当初好一阵找。

 

4. 外设例程

这个就不用再去各种论坛求爷爷告奶奶问别人要。这边提供两种方式获取。一种是你安装好CCS以后,主页有Browse Examples选项,点击进去以后选择相应的芯片信号即可查看各种外设例程。

另外一种就是去TI官网下载Control Suit软件,里面有各种资源,包括源码和一些培训资料。

 

 

02 开始学习

有了前面的准备后,入门就很轻松了。如果还没熟悉CCS的使用和工程的搭建,不妨导入上面第四点中已经下载的工程,查看下工程配置,然后实际下载到目标板子上看看。无论是何种IDE,原理都一样,如果你之前使用过其他IDE,这个就不在话下了。

外设学习的话,前期你可以先从例程入手,看看例程中是如何进行工程配置的:cmd文件的选择,编译选项的设置等。然后对照着外设的总体框图和寄存器的实际含义,阅读具体的代码,理清各个外设原理和配置流程即可。

学习过程中,如果碰到问题,不妨多看几次参考手册,确保理解没有偏差。实在解决不了的问题,可以去TI的官方论坛咨询。TI的官方论坛分为中文和英文的,建议优先去英文的论坛咨询,那边给予的回复专业一些。https://e2e.ti.com/ 

 

03 分享几个注意事项

分享几个自己在使用这款芯片过程中碰到的问题。

  1.  DSP C2000系列的DSP的最小存储单位是16bit,即便你定义一个Uint8的变量,实质上它也是占用了16bit。所以在使用联合体,计算空间大小等一些涉及到存储的地方,需要格外注意。

  2. 为了加快代码在Flash中的运行速度,记得enable flash的Pipeline模式,使不使能这个模式运行速度相差了好几倍。详情可以参考例程代码文件:DSP2803x_SysCtrl.c,里面提供了如何配置的代码。

  3. 部分外设的初始化有用到了__DSP28x_usDelay函数进行延时等待,但是这个函数是放在RAMfunction区域,所以生效的前提是RAMfunction的备份代码已经copy到了RAM区。相应的copy函数为:memcpy((uint16_t *)&RamfuncsRunStart,(uint16_t *)&RamfuncsLoadStart, (unsigned long)&RamfuncsLoadSize)。 详情可以参考flash_f28035\Example_2803xFlash.c

  4. ADC中断对应通道是SOC序号,不是ADC通道的序号:例如ADCA0的通道序号是0,如果将其配置到SOC2,那么ADC中断进行绑定通道时,要用序号2.

  5. 进行CANID配置前,一定要记得先禁用此MB,否则更改不会生效。

  6. 如果按位进行配置寄存器,建议先定义影子寄存器,将想要配置的位配完以后,再一次性赋值给寄存器,例子如下。在使用过程中,发现CAN相关的寄存器如果不这样操作,有的时候会更新错误。

    struct ECAN_REGS ECanaShadow;

    EALLOW;

    ECanaShadow.CANMC.all = ECanaRegs.CANMC.all;

    ECanaShadow.CANMC.bit.STM = 1;    

    ECanaRegs.CANMC.all = ECanaShadow.CANMC.all;

    EDIS;

 

    除了上述的事项以外,其实还碰到其他坑,限于篇幅,就先列这些。改天弄个汇总贴,单独来一篇。

转载是一种动力 分享是一种美德,欢迎关注本公众号,可以扫码或者微信搜索公众号:芯连心嵌入式设计交流

 

TMS320F2803x综合例程是一个在CSDN上发布的用于TMS320F2803x系列微控制器的示例程序。TMS320F2803x是德州仪器(TI)推出的一款高性能数字信号处理器(DSP),主要用于实时控制应用。CSDN是一个开发者社区和知识分享平台,收集整理了很多程序开发相关的资源。 这个综合例程是为了帮助初学者快速上手TMS320F2803x系列微控制器而设计的。它包含了各种常见的功能和应用示例,如GPIO(通用输入输出)、PWM(脉宽调制)、ADC(模数转换器)等。通过阅读和理解这些例程,开发者可以学习和掌握TMS320F2803x系列微控制器的基本操作和应用开发技巧。 这个综合例程的代码是用C语言编写的,对于有一定C语言开发经验的开发者来说比较容易理解和使用。开发者可以根据自己的需求进行修改和扩展,以满足特定的应用需求。 除了代码之外,这个综合例程还包含了详细的注释和说明文档,用于帮助开发者理解代码的逻辑和功能。开发者可以根据这些文档进行学习和参考,快速上手TMS320F2803x系列微控制器的开发。 总之,TMS320F2803x综合例程是一个在CSDN上发布的用于TMS320F2803x系列微控制器的示例程序,适用于初学者通过学习和借鉴来快速上手该系列微控制器的开发。它包含了各种常见的功能和应用示例,并附了详细的注释和说明文档,帮助开发者理解和应用这些代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值