打印

TMS320VC5509工作基本条件以及过程

[复制链接]
1923|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhangmangui|  楼主 | 2013-7-26 10:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zhangmangui 于 2013-7-26 10:33 编辑

TMS320VC5509工作基本条件包括电源电路、时钟电路、JTAG(调试用)接口电路等。

    电源电路:模拟、数字、内核电源的纯净。一般使用TPS73HD301提供。

    时钟电路:晶振要尽量靠近DSP,内部有倍频电路,外部可以使用12MHz的有源或者无源元件。

    JTAG电路:对DSP通用系统来说要求不要超过6英寸,超过此距离要提高驱动能力。

    对于不使用的外部中断接上拉电阻到DVDD。
    复位信号不要用简单的RC电路,用门电路或者专门的复位芯片产生。
    GPIO[0:3]的电平决定上电引导方式,需要根据自己需要设置。

    对于外部引导,建议使用串行flash,布线简单(省去很多地址与数据线)。

    电路参考TI提供的EVM。

TMS320VC5509的工作流程:
    5509上电复位后从0xffff00开始执行程序(因为复位后IVPD的值是0xffff),在0xffff00处是指令:.ivec 0xff8000,程序转入0xff8000处执行,从0xff8000处开始就是5509内部固化的bootloader程序,在这段程序里通过读取GPIO口的状态来转入不同的boot方式。

    假设用户的程序存片外flash中,5509内部固化的bootloader程序从片外的flash中按照一定格式读取数据并搬入片内RAM中,搬完后转入片内RAM的程序入口执行程序。

    对于中断,需要自己定义一个中断向量表放入RAM中,并通过修改IVPD和IVPH的值来指向中断向量表的入口位置;寄存器IER0和IER1是各个中断的使能位,ST1的INTM位是总的中断使能位。中断向量表中应该放入中断服务程序的入口地址,也可以先不放入,在程序运行后通过调用CSL的IRQ_plug()函数在中断向量表插入中断服务程序入口。


相关帖子

沙发
zhangmangui|  楼主 | 2013-7-26 10:31 | 只看该作者
DSP程序中断中使用XF管脚误区

学习DSP,当然是从一些简单的测试程序开始。使一个LED的闪亮是经常用的,但这其中有一个误区,现分析如下,以定时器控制LED灯为例:

void main()
   {
    init_5509();
    init_timer();
    while(1)
         {
         asm(" NOP");
         }
   }

interrupt void int_timer0()
{
         Flag=Flag+1;
         if   (Flag>10)

              asm(" SSBX XF");

         else

              asm(" RSBX XF");
         if (Flag>20)

               Flag=0;
}

    这个程序不能实现控制的。使用XF的时候要注意一下,XF是ST1的一个bit,但是在中断中,首先把ST1压入堆栈,出中断前才弹出堆栈,所以在中断中改变XF没有实际的意义。所以在C/C++加如汇编要谨慎。修改后的程序如下:

void main()
{
    init_5509();
    init_timer();
    while(1)
    {
           asm(" NOP");
           if (Flag>10)

              asm(" SSBX XF");

          else

             asm(" RSBX XF");
    }
}

interrupt void int_timer0()
{
       Flag=Flag+1;
       if (Flag>20)

       Flag=0;
}

这个程序就好使。


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:欢迎进入【TI DSP 论坛】 & 【DSP 技术】           TI忠诚粉丝!

935

主题

26376

帖子

589

粉丝