DSP帮手(1)

TI公司的仿真器同SEED仿真器的区别?    4

DSP仿真器为什么必须连接目标系统(Target)?    4

SEED-XDS仿真器安装的常见问题?    4

仿真工作正常对于DSP的基本要求    4

CCS或Emurst运行时提示“Can't Initialize Target DSP”    4

为什么CCS需要安装Driver?    5

Driver安装的常见问题?    5

Link的cmd文件的作用是什么?    6

如何将OUT文件转换为16进制的文件格式?    6

DSP的C语言同主机C语言的主要区别?    7

为什么在CCS下编译工具工作不正常?    7

在CCS下,如何选择有效的存储器空间?    7

为什么要使用BIOS?    8

DSP发展动态    8

5V/3.3V如何混接?    9

为什么要片内RAM大的DSP效率高?    9

为什么DSP从5V发展成3.3V?    9

如何选择DSP的电源芯片?    9

软件等待的如何使用?    10

DSP的最高主频能从芯片型号中获得吗?    10

DSP可以降频使用吗?    11

如何选择外部时钟?    11

如何选择DSP的外部存储器?    12

DSP芯片有多大的驱动能力?    13

调试TMS320C2000系列的常见问题?    13

调试TMS320C3x系列的常见问题?    14

如何调试多片DSP?    14

在DSP系统中为什么要使用CPLD?    14

DSP系统构成的常用芯片有哪些?    14

什么是boot loader?    15

TMS320C3x如何boot?    15

DSP为什么要初始化?    15

DSP有哪些数学库及其它应用软件?    16

如何获得DSP专用算法?    16

eXpressDSP是什么?    16

为什么要用DSP?    16

如何选择DSP?    17

DSP同MCU相比的特点?    17

DSP同嵌入CPU相比的特点?    17

如何编写C2000片内Flash?    18

如何编写DSP外部的Flash?    18

对于C5000,大于48K的程序如何BOOT?    18

DSP外接存储器的控制方式    19

GEL文件的功能?    19

使用TI公司模拟器件与DSP结合使用的好处。    20

C语言中可以嵌套汇编语言?    20

在定点DSP系统中可否实现浮点运算    20

JTAG头的使用会遇到哪些情况    20

DSP中断向量的位置    21

有源晶振与晶体的区别,应用范围及用法    21

并行FLASH引导的一点经验-阿哲    21

关于LF2407A的FLASH烧写问题的几点说明    24

如何设置硬件断点?    25

时钟电路选择原则    25

C程序的代码和数据如何定位    26

为什么要设计CSL?  26

什么是CSL?  26

CSL的特点    27

为什么需要电平变换?  27

电平变换的方法    27


TI公司的仿真器同SEED仿真器的区别?

1)SEED-XDSTIXDS-510完全兼容,可以完全替代XDS-510

2)SEED-XDSPPTIXDS-510PP完全兼容,可以完全替代XDS-510PP

3)SEED-XDSUSBSEED-XDSPCI是合众达独创的产品,它们具有SEED-XDS的全部功能,更加便于使用。

4)SEED仿真器的JTAG/MPSD仿真电缆不同于TI,无需另外投资,可以方便更换。

5)SEED的仿真器同TI的仿真器一样,可以仿真所有TIDSPARM

DSP仿真器为什么必须连接目标系统(Target)?

DSP的仿真器同单片机的不同,仿真器中没有DSP,提供IEEE标准的JTAG口对DSP进行仿真调试,所以仿真器必须有仿真对象,及目标系统。目标系统就是你的产品,上面必须有DSP。仿真器提供JTAG同目标系统的DSP相接,通过DSP实现对整个目标系统的调试。

SEED-XDS仿真器安装的常见问题?

请认真阅读“安装手册”。常见问题是硬件的I/O口地址同主机的声卡或网卡有冲突,你可以改变仿真器的I/O口地址,也可以改变声卡或网卡的I/O口地址

仿真工作正常对于DSP的基本要求

1)DSP电源和地连接正确。

2)DSP时钟正确。

3)DSP的主要控制信号,如RSHOLD信号接高电平。

4)C2000watchdog关掉。

5)不可屏蔽中断NMI上拉高电平。

CCS或Emurst运行时提示“Can't Initialize Target DSP”

1)仿真器连接是否正常?

2)仿真器的I/O设置是否正确?

3)XDSPP仿真器的电源是否正确?

4)目标系统是否正确?

5)仿真器是否正常?

6)DSP工作的基本条件是否具备。

建议使用目标板测试。

为什么CCS需要安装Driver?

CCS是开放的软件平台,它可以支持不同的硬件接口,因此不同的硬件接口必须通过标准的DriverCCS连接。

Driver安装的常见问题?

请认真阅读“安装手册”和Driver盘中的Readme

1)对于SEED-XDS,安装Readme中的步骤,将I/O口设为240/280/320/340

2)对于SEED-XDSPP,安装Readme中的步骤,将I/O口设为378278

3)对于SEED-XDSUSB,必须连接目标板,安装Readme中的步骤,将I/O口设为AUSB连接后,主机将自动激活相应的Driver

4)对于SEED-XDSPCI,安装Readme中的步骤,将I/O口设为240PCI接口板插入主机后,主机将自动激活相应的Driver

5)对于Simulator,需要选择不同的CFG文件,以模拟不同的DSP

6)对于C5402 DSK,将I/O口设为请认真阅读“安装手册”和Driver盘中的Readme

1)对于SEED-XDS,安装Readme中的步骤,将I/O口设为240/280/320/340

2)对于SEED-XDSPP,安装Readme中的步骤,将I/O口设为378278。注意主机BIOS中并口的型式必须同xds510pp.ini中一致。

3)对于SEED-XDSUSB,必须连接目标板,安装Readme中的步骤,将I/O口设为240/280/320/340USB连接后,主机将自动激活相应的Driver

4)对于SEED-XDSPCI,安装Readme中的步骤,将I/O口设为240/280/320/340PCI接口板插入主机后,主机将自动激活相应的Driver

5)对于Simulator,需要选择不同的CFG文件,以模拟不同的DSP

6)对于C5402 DSK,将I/O口设为378278

7)对于C6211/6711 DSK,将I/O口设为378278

8)对于C6201/C6701 EVM,将I/O口设为0

Link的cmd文件的作用是什么?

Linkcmd文件用于DSP代码的定位。由于DSP的编译器的编译结果是未定位的,DSP没有操作系统来定位执行代码,每个客户设计的DSP系统的配置也不尽相同,因此需要用户自己定义代码的安装位置。以C5000为例,基本格式为:

-o sample.out

-m sample.map

-stack 100

sample.obj meminit.obj

-l rts.lib

MEMORY {

PAGE 0: VECT: origin = 0xff80, length 0x80

PAGE 0: PROG: origin = 0x2000, length 0x400

PAGE 1: DATA: origin = 0x800, length 0x400

}

SECTIONS {

.vectors : {} >PROG PAGE 0

.text : {} >PROG PAGE 0

.data : {} >PROG PAGE 0

.cinit : {} >PROG PAGE 0

.bss : {} >DATA PAGE 1

}

如何将OUT文件转换为16进制的文件格式?

DSP的开发软件集成了一个程序,可以从执行文件OUT转换到编程器可以接受的格式,使得编程器可以用次文件烧写EPROMFlash。对于C2000的程序为DSPHEX;对于C3x程序为HEX30;对于C54x程序为HEX500;对于C55x程序为HEX55;对于C6x程序为Hex6x

 

C32为例,基本格式为:

 

sample.out

-x

-memwidth 8

-bootorg 900000h

-iostrb 0h

-strb0 03f0000h

-strb1 01f0000h

-o sample.hex

ROMS {

EPROM: org = 0x900000,len=0x02000,romwidth=8

}

SECTIONS {

.text: paddr=boot

.data: paddr=boot

}

DSP的C语言同主机C语言的主要区别?

1)DSPC语言是标准的ANSI C,它不包括同外设联系的扩展部分,如屏幕绘图等。但在CCS中,为了方便调试,可以将数据通过prinf命令虚拟输出到主机的屏幕上。

2)DSPC语言的编译过程为,C编译为ASM,再由ASM编译为OBJ。因此CASM的对应关系非常明确,非常便于人工优化。

3)DSP的代码需要绝对定位;主机的C的代码有操作系统定位。

4)DSPC的效率较高,非常适合于嵌入系统。

为什么在CCS下编译工具工作不正常?

CCS下有部分客户会碰到编译工具工作不正常,常见错误为:

1)autoexec.bat的路径“out of memory”。修改autoexec.bat,清除无用的PATH路径。 2)编译的输出文件(OUT文件)写保护,无法覆盖。删除或修改输出文件的属性。 3)Windows有问题。重新安装windows

4)Windows下有程序对CCS有影响。建议用一“干净”的计算机。

CCS下,如何选择有效的存储器空间?

 

CCS下的存储器空间最好设置同你的硬件,没有的存储器不要有效。这样便于调试,CCS会发现你调入程序时或程序运行时,是否访问了无效地址。 1)GEL文件中设置。参见CCS中的示例。 2)Option菜单下,选择Memory Map选项,根据你的硬件设置。注意一定要将Enable Memory Mapping置为使能。

 

CCS下,OUT文件加载时提示“Data verification failed...”的原因?

LinkCMD文件分配的地址同GEL或设置的有效地址空间不符。中断向量定位处或其它代码、数据段定位处,没有RAM,无法加载OUT文件。解决方法: 1)调整LinkCMD文件,使得定位段处有RAM 2)调整存储器设置,使得RAM区有效。

为什么要使用BIOS?

1)BIOSBasic I/O System的简称,是基本的输入、输出管理。

2)用于管理任务的调度,程序实时分析,中断管理,跟踪管理和实时数据交换。

3)BIOS是基本的实时系统,使用BIOS可以方便地实现多任务、多进程的时间管理。

4)BIOSeXpress DSP的标准平台,要使用eXpress DSP技术,必须使用BIOS

DSP发展动态

1.TMS320C2000 TMS320C2000系列包括C24xC28x系列。C24x系列建议使用LF24xx系列替代C24x系列,LF24xx系列的价格比C24x便宜,性能高于C24x,而且LF24xxA具有加密功能。 C28x系列主要用于大存储设备管理,高性能的控制场合。

2.TMS320C3x TMS320C3x系列包括C3xVC33,主要推荐使用VC33C3x系列是TI浮点DSP的基础,不可能停产,但价格不会进一步下调。

3.TMS320C5x TMS320C5x系列已不推荐使用,建议使用C24xC5000系列替。

4.TMS320C5000 TMS320C5000系列包括C54xC55x系列。 其中VC54xx还不断有新的器件出现,如:TMS320VC5471DSPARM7)。

C55x系列是TI的第三代DSP,功耗为VC54xx1/6,性能为VC54xx5倍,是一个正在发展的系列。 C5000系列是目前TI DSP的主流DSP,它涵盖了从低档到中高档的应用领域,目前也是用户最多的系列。

5.TMS320C6000 TMS320C6000系列包括C62xxC67xxC64xx。此系列是TI的高档DSP系列。 其中C62xx系列是定点的DSP,系列芯片种类较丰富,是主要的应用系列。 C67xx系列是浮点的DSP,用于需要高速浮点处理的领域。 C64xx系列是新发展,性能是C62xx10倍。

6.OMAP系列 TI专门用于多媒体领域的芯片,它是C55ARM9,性能卓越,非常适合于手持设备、Internet终端等多媒体应用。

5V/3.3V如何混接?

TI DSP的发展同集成电路的发展一样,新的DSP都是3.3V的,但目前还有许多外围电路是5V的,因此在DSP系统中,经常有5V3.3VDSP混接问题。在这些系统中,应注意: 1)DSP输出给5V的电路(如D/A),无需加任何缓冲电路,可以直接连接。 2)DSP输入5V的信号(如A/D),由于输入信号的电压>4V,超过了DSP的电源电压,DSP的外部信号没有保护电路,需要加缓冲,如74LVC245等,将5V信号变换成3.3V的信号。 3)仿真器的JTAG口的信号也必须为3.3V,否则有可能损坏DSP

为什么要片内RAM大的DSP效率高?

目前DSP发展的片内存储器RAM越来越大,要设计高效的DSP系统,就应该选择片内RAM较大的DSP。片内RAM同片外存储器相比,有以下优点: 1)片内RAM的速度较快,可以保证DSP无等待运行。 2)对于C2000/C3x/C5000系列,部分片内存储器可以在一个指令周期内访问两次,使得指令可以更加高效。 3)片内RAM运行稳定,不受外部的干扰影响,也不会干扰外部。 4)DSP片内多总线,在访问片内RAM时,不会影响其它总线的访问,效率较高。

为什么DSP从5V发展成3.3V?

超大规模集成电路的发展从1um,发展到目前的0.1um,芯片的电源电压也随之降低,功耗也随之降低。DSP也同样从5V发展到目前的3.3V,核心电压发展到1V。目前主流的DSP的外围均已发展为3.3V5VDSP的价格和功耗都价格,以逐渐被3.3VDSP取代。

如何选择DSP的电源芯片?

 

TMS320LF24xxTPS7333QD5V3.3V,最大500mA

TMS320VC33 TPS73HD318PWP5V3.3V1.8V,最大750mA

TMS320VC54xxTPS73HD318PWP5V3.3V1.8V,最大750mA TPS73HD301PWP5V3.3V和可调,最大750mA

TMS320VC55xxTPS73HD301PWP5V3.3V和可调,最大750mA

TMS320C6000 PT6931TPS56000,最大3A

软件等待的如何使用?

DSP的指令周期较快,访问慢速存储器或外设时需加入等待。等待分硬件等待和软件等待,每一个系列的等待不完全相同。

 

1)对于C2000系列: 硬件等待信号为READY,高电平时不等待。 软件等待由WSGR寄存器决定,可以加入最多7个等待。其中程序存储器和数据存储器及I/O可以分别设置。

2)对于C3x系列: 硬件等待信号为/RDY,低电平是不等待。 软件等待由总线控制寄存器中的SWWWTCNY决定,可以加入最多7个等待,但等待是不分段的,除了片内之外全空间有效。

3)对于C5000系列: 硬件等待信号为READY,高电平时不等待。 软件等待由SWWCRSWWSR寄存器决定,可以加入最多14个等待。其中程序存储器、控制程序存储器和数据存储器及I/O可以分别设置。

4)对于C6000系列(只限于非同步存储器或外设): 硬件等待信号为ARDY,高电平时不等待。 软件等待由外部存储器接口控制寄存器决定,总线访问外部存储器或设备的时序可以设置,可以方便的同异步的存储器或外设接口。

中断向量为什么要重定位?

为了方便DSP存储器的配置,一般DSP的中断向量可以重新定位,即可以通过设置寄存器放在存储器空间的任何地方。 注意:C2000的中断向量不能重定位。

DSP的最高主频能从芯片型号中获得吗?

TIDSP最高主频可以从芯片的型号中获得,但每一个系列不一定相同。

1)TMS320C2000系列:

TMS320F206-最高主频20MHz

TMS320C203/C206-最高主频40MHz

TMS320F24x-最高主频20MHz

TMS320LF24xx-最高主频30MHz

TMS320LF24xxA-最高主频40MHz

TMS320LF28xx-最高主频150MHz

2)TMS320C3x系列:

TMS320C30:最高主频25MHz

TMS320C31PQL80:最高主频40MHz

TMS320C32PCM60:最高主频30MHz

TMS320VC33PGE150:最高主频75MHz

3)TMS320C5000系列:

TMS320VC54xx:最高主频160MHz

TMS320VC55xx:最高主频300MHz

4)TMS320C6000系列:

TMS320C62xx:最高主频300MHz

TMS320C67xx:最高主频230MHz

TMS320C64xx:最高主频720MHz

DSP可以降频使用吗?

可以,DSP的主频均有一定的工作范围,因此DSP均可以降频使用。

如何选择外部时钟?

DSP的内部指令周期较高,外部晶振的主频不够,因此DSP大多数片内均有PLL。但每个系列不尽相同。

1)      TMS320C2000系列:

 

TMS320C20xPLL可以÷2,×1,×2和×4,因此外部时钟可以为5MHz40MHz

TMS320F240PLL可以÷2,×1,×1.5,×2,×2.5,×3,×4,×4.5,×5和×9,因此外部时钟可以为2.22MHz40MHz

TMS320F241/C242/F243PLL可以×4,因此外部时钟为5MHz TMS320LF24xxPLL可以由RC调节,因此外部时钟为4MHz20MHz

TMS320LF24xxAPLL可以由RC调节,因此外部时钟为4MHz20MHz

2)      TMS320C3x系列:

 

TMS320C3x:没有PLL,因此外部主频为工作频率的2倍。

TMS320VC33PLL可以÷2,×1,×5,因此外部主频可以为12MHz100MHz

3)TMS320C5000系列:

TMS320VC54xxPLL可以÷4,÷2,×1-32,因此外部主频可以为0.625MHz50MHz

TMS320VC55xxPLL可以÷4,÷2,×1-32,因此外部主频可以为6.25MHz300MHz

 

3)      TMS320C6000系列:

 

TMS320C62xxPLL可以×1,×4,×6,×7,×8,×9,×10和×11,因此外部主频可以为11.8MHz300MHz

TMS320C67xxPLL可以×1和×4,因此外部主频可以为12.5MHz230MHz

TMS320C64xxPLL可以×1,×6和×12,因此外部主频可以为30MHz720MHz

如何选择DSP的外部存储器?

 DSP的速度较快,为了保证DSP的运行速度,外部存储器需要具有一定的速度,否则DSP访问外部存储器时需要加入等待周期。

1)对于C2000系列: C2000系列只能同异步的存储器直接相接。 C2000系列的DSP目前的最高速度为150MHz。建议可以用的存储器有:

CY7C199-1532K×815ns5V

CY7C1021-1264K×1615ns5V CY7C1021V33-1264K×1615ns3.3V

2)对于C3x系列: C3x系列只能同异步的存储器直接相接。 C3x系列的DSP的最高速度,5V的为40MHz3.3V的为75MHz,为保证DSP无等待运行,分别需要外部存储器的速度<25ns<12ns。建议可以用的存储器有:

ROM AM29F400-70256K×1670ns5V,加入一个等待;

AM29LV400-55(SST39VF400)256K×1655ns3.3V,加入两个等待(目前没有更快的Flash)。

SRAM CY7C199-1532K×815ns5V

CY7C1021-1564K×1615ns5V

CY7C1009-15128K×815ns5V

CY7C1049-15512K×815ns5V

CY7C1021V33-1564K×1615ns3.3V

CY7C1009V33-15128K×815ns3.3V

CY7C1041V33-15256k×1615ns3.3V

 

3)对于C54x系列: C54x系列只能同异步的存储器直接相接。 C54x系列的DSP的速度为100MHz160MHz,为保证DSP无等待运行,需要外部存储器的速度<10ns<6ns。建议可以用的存储器有:

ROM AM29LV400-55(SST39VF400)256K×1655ns3.3V,加入59个等待(目前没有更快的Flash)。

SRAM CY7C1021V33-1264K×1612ns3.3V,加入一个等待;

CY7C1009V33-12128K×812ns3.3V,加入一个等待。

 

4)对于C55xC6000系列: TIDSP中只有C55xC6000可以同同步的存储器相连,同步存储器可以保证系统的数据交换效率更高。

ROM AM29LV400-55(SST39VF400)256K×1655ns3.3V

SDRAM HY57V651620BTC-10S64M10ns

SBSRAM CY7C1329-133AC64k×32

CY7C1339-133AC128k×32

FIFOCY7C42x5V-10ASC32k/64k×18

DSP芯片有多大的驱动能力?

DSP的驱动能力较强,可以不加驱动,连接8个以上标准TTL门。

调试TMS320C2000系列的常见问题?

1)单步可以运行,连续运行时总回0地址: Watchdog没有关,连续运行复位DSP回到0地址。

2)OUT文件不能load到片内flash中: Flash不是RAM,不能用简单的写指令写入,需要专门的程序写入。CCSC Source Debugger中的load命令,不能对flash写入。 OUT文件只能load到片内RAM,或片外RAM中。

3)flash中如何加入断点: flash中可以用单步调试,也可以用硬件断点的方法在flash中加入断点,软件断点是不能加在ROM中的。硬件断点,设置存储器的地址,当访问该地址时产生中断。

4)中断向量: C2000的中断向量不可重定位,因此中断向量必须放在0地址开始的flash内。在调试系统时,代码放在RAM中,中断向量也必须放在flash内。

你可能感兴趣的:(c,工作,Flash,存储,express,语言)