tag 标签: ti-dsp

相关博文
  • 热度 20
    2010-11-18 22:16
    1438 次阅读|
    1 个评论
    1、EMIF或XBUS异步读/写脉冲宽度 C6203B为了能与不同存取(Access)速度的异步设备(或器件)如SRAM、Flash等连接,可通过设置相关寄存器的参数来控制读/写脉冲的宽度,EMIF总线的寄存器为CECTL0~3,XBUS总线为XCECTL0~3,总线读/写脉冲的宽度由这些寄存器中的“Setup”和“Strobe”位值决定。 加电复位后,缺省值(最大值)为:Setup=1111(15),Strobe=111111(63),这样,Setup+Strobe=15+63=78,如果使用250MHz系统时钟,其周期T=4ns,那么78x4=312ns。也就是说,EMIF/XBUS总线最低可接300ns的异步设备(器件),好在一般SRAM、Flash等的存取速度均在100ns左右,故都可直接与EMIF/XBUS总线相连。 2、DMA传输问题 C6203B进行DMA传输时虽然可以字节(8bit)方式传输,但在DMA Config时,源/目的地址仍使用Uint32类型指针,因此,如果只传输1个字节,也要使用Uint21指针变量。如果确要使用Uint8型的,则必须定义一个元素是4的整数倍的数组,如: Uint8 buf ; 否则DMA传输数据不正确。 3、外部中断触发沿 C6023B的外部中断INT4~INT7缺省情况是“下降沿”触发的,但在BIOS配置中可以更改为“上升沿”触发,有些用户往往忽略了这一点,例如,初学者先是买一套开发板学习,然后参照开发板设计自己的硬件电路,再把开发板的源程序例子移植到自己的系统中,但在调式中断时发现总是不对却又找不到原因。其实原因很简单,就是开发板可能在BIOS配置时将某个中断改为“上升沿”触发了,而用户自己设计的电路仍是“下降沿”触发的。只要修改一下BIOS配置就可以了。 4、通用I/O口的复位状态和驱动电流 C6203B的缓冲串口(McBSP)可以配置成通用I/O口使用,系统加电复位后,未配置前所有缓冲串口引脚均处于“高阻”状态,用户可根据需要,对某个I/O口加4.7K"上拉“电阻或20K”下拉“电阻使其复位后固定在"高电平”或“低电平”;此外,缓冲串口作为普通I/O口使用时,其最大驱动电流为8mA,因此驱动负载时要注意,例如驱动光耦时,限流电阻要选择适当,以HCPL-181为例,电压为3.3V,限流电阻取510Ω就可以,驱动电流I=3.3/510=6mA,既达到181开关导通电流(5mA),又未超过最大驱动电流(8mA)。 5、C++地址指针增量重载运算符“++” 在一般的C++中,增量运算符“++”表示“加1”,在DSP C++(CCS)编译器中,对于普通变量,仍表示“加1”,但对于不同类型的地址指针变量,重载运算符“++”时有不同含义: 32位地址指针(unsigned int *):加4(一个双字); 16位地址指针(unsigned short *):加2(一个字); 8位地址指针(unsigned char *):加1(一个字节)。 同理,“--”运算符也有类似的情况。下面举一个例子来说明: 假设C6203B的EMIF总线上CE1(0x01400000)接的是8bit并行Flash(如:SST39VF080),且DSP的EA21~EA2接Flash的A19~A0。在程序中定义: Uint32 data,*dp=CE0; 那么指令:data=*dp++;第一次data取的是Flash的0~3单元的内容,然后dp指向Flash的4单元;第二次data取的是Flash的4~7单元内容... 如果定义:Uint8 data,*dp=CE0;由于EA2接A0,那么必须使用:data=*(dp++2);来读取Flash的0,1,2...单元的内容。
  • 热度 24
    2010-10-26 16:59
    3665 次阅读|
    4 个评论
    目前,最常用的TI DSP有C2000、C5000和C6000三大系列。 C2000是TI的入门级DSP,主要用在工业控制领域,如电机控制(变频调速)、数字电源等,以及计算机外设,如打印机、扫描仪等; C5000是TI高性价比、低功耗DSP,应用范围广,特别在通信领域,如路由器、交换机、嵌入式WEB服务器等; C6000是TI高性能DSP,主要用在各种高档数字信号处理领域,如数字图像处理(编码压缩)、频谱分析(FFT)、数字滤波器(FIR)等。 1、C2000DSP的F24xxA和F28xx系列使用片内Flash作为程序存储器,自带加密机制,128位密钥,要实现程序加密就很简单了,有两种加密方法: (1) “显式”密钥法,使用TI提供的Flash在线编程工具(On-chip Flash Programmer)时,在“Code Security Password”区域设置好128位密钥,然后点击“Program Password”确定密钥设置。在设置密钥的时候,注意不要将Key0-Key8全设置为0,如果全为0,则芯片将会永久“Lock”! 这种方式在产品批量生产时除设计者知道密钥外,编程写入的操作人员也知道。 (2) “隐式”密钥法,设计者将128位密钥用汇编代码方式嵌入源程序中,并在连接配置文件(命令文件)*.CMD中将其定位到DSP密钥存储区,最后编译生成.out文件一起写入Flash中。这种方式就只有设计者本人知道密钥了。 2、C5000和C6000均使用外部Flash,程序无法加密。这时可以采用内置大容量Flash、可加密的单片机(如性价比高的STC51系列单片机)来完成加密工作,具体做法是: 将DSP程序写入单片机的片内Flash中,单片机通过模拟SPI口将程序加载到DSP片内RAM中运行。这种方法程序被解密复制的可能性有2种:一是单片机被解密,唯一防解密的途径是采用最新型号(或版本)的单片机,增加解密难度和时间;二是用逻辑分析仪监视SPI总线上的加载数据流,但这种解密方法难度较大,一般人不易掌握,特别是DSP的C语言源程序编译后都比较大。