基于Matlab的TMS320LF2407程序快速设计

技术分类: 微处理器与DSP  | 2006-08-11
来源:21IC中国电子网 | 西安交通大学 陈大科 韩九强

 
    步骤3,将图形文件生成C程序。在图4中,运行Simulation菜单下的Configuration Parameters项,弹出配置对话框,选择其中的Real-Time WorkShop项,点击Build按钮,则将图4的框图转化为TI C2000DSP的C语言代码,并自动调用CCS2软件编译运行该程序。生成的C语言程序包括:中断向量文件vectors.asm、中断服务程序MW_c24xx_csl.C、ADC转换控制testADC.c、主程序TestADC_main.c等。

    3 修改及完善程序

    由Matlab直接生成的程序能够实现ADC转换及数字滤波功能,但是由于程序中使用了许多缺省设置,在运行过程中还存在一些问题。用上述方法生成的程序中,中断处理程序中只对定时器中断进行处理。当由于干扰信号引起其他中断时,会造成DSP停机,因此要在中断向量定义无效中断(_nothing),并在中断响应程序中添加中断服务程序。修改后的程序中,斜体部分是修改的代码。修改程序如下:

    中断向量文件vectors.asm:

    中断向量文件vectors

点击看原图


   

点击看原图

    在ADC转换处理程序中,每次ADC转换结束后没有复位DSP的排序器指针。虽然程序中设定的是只进行一个通道的A/D转换,但结果却是16个通道的循环转换,造成数字滤波器的输人数据不正确,因此程序要作修改,在testadc_c中添加:

    TestADC_B.C24xADC=MMREGS[RESULT0]>>6;/*A/D转换结果右移6位*/
    MMREGS[ArN2TRL2]=MMREGS[ADCTRL2]l0X4242;/*复位排序器指针并清除A/D中断标志*/

    如果需要通过t/o端口输出结果,则可以在testadc_c中定义一个I/o(portl00),然后将FIR滤波后的数据rtb-Gainl输出,程序如下:

    将FIR滤波后的数据rtb

点击看原图


    4 试验结果及结论

    由上述方法设计的程序在TMS3201LF2407A处理器上能正常运行。试验结果证明,采用FIR滤波后,ADC转换的抗干扰能力有了明显的提高。用Matlab快速建立TI DSP模型及直接生成C语言程序的方法,简化了DSP软件的开发。在Embedded target for TI C2000工具箱中还包含其他工具,如PWM控制、CAN总线控制及通用I/O控制等。利用这些工具与Simulink中的其他工具相结合,能够完成复杂功能的DSP程序设计,并且只需进行少量的修改,就可以实现功能正确的C语言程序的设计,节省程序的编写及输入时间。

0
0
(请您对文章做出评价)
1】【2
加载中

对文章的评论

更多评论

剩余字数:  

相关在线研讨会

我要参加

泰克串行数据网络分析

时间:2008-09-18 10:00:00-12:00:00
简介:泰克串行数据网络分析在线研讨会,为您提供通用、省时、经济的串行数据网络分析解决方案.

浏览该文章的用户还看过...

  • 文 章

  • 论 坛

  • 博 客

  • 小 组

设计资源与分销

  • 博客推荐

  • 论坛推荐

  • 在线研讨会