分享

DSP入门-TI DSP 论坛 - 21ic电子技术论坛

 guitarhua 2015-03-04


如何学习DSP技术
1)DSP
的速度较快,DSP的硬件系统需要考虑时序。
2)DSP
的指令较复杂,如果需要较高效率的程序,需要从DSP的硬件结构出发,优化你的程序。
开发DSP并不难,选择好的技术支持厂家最为关键。SEED以给您提供从方案论证、器件选择、开发工具、产品调试、编程技巧的全面支持。
开发入门需要看的文档
1
)讲述DSPCPUmemoryprogram memory addressing, data memory addressing的资料都需要看、外设资源的资料可以只看自己用到的部分
2
C和汇编的编程指南需要看
3
)汇编指令和C语言的运行时间支持库、DSPLIB、程序员向导、优化手册等资料
如何开始软件开发
1
)看CCS的使用指南
2
)明白CMD文件的编写
3
)明白中断向量表文件的编写,并定位在正确的地方
4
)运行一个纯simulator的程序,了解CCS的各个操作
5
)到TI网站下相关的源码,参考源码的结构进行编程
6
)取得一块评估板进行实际系统的软件调试
DSPC语言同主机C语言的主要区别
1)DSP
C语言是标准的ANSI C,它不包括同外设联系的扩展部分,如屏幕绘图等。但在CCS中,为了方便调试,可以将数据通过printf命令虚拟输出到主机的屏幕上。
2)DSP
C语言的编译过程为:C编译为ASM,再由ASM编译为OBJ。因此CASM的对应关系非常明确,非常便于人工优化。
3)DSP
的代码需要绝对定位;主机的C的代码由操作系统定位。
4)DSP
C的效率较高,非常适合于嵌入系统。
如何能够相对较快地掌握DSP的硬件和软件的设计
建议选择合适的EVM,如SEED提供的DEC系列,提供客户完整的原理图,示例程序,是学习的很好的工具,是设计很好的参考。
什么是DSP/BIOS
作为CCS强大开发工具的一个集成,DSP/BIOS是一个简易的嵌入式操作系统,它能大大方便用户编写多任务应用程序同时还能增强对代码执行效率的监控。DSP/BIOS工具已经具有实时操作系统的很多功能,如任务调度管理、任务间的同步和通信、内存管理、实时时钟管理、中断服务管理、外设驱动程序的管理等。使用DSP/BIOS开发DSP2个重要的特点:1.所有与硬件相关的操作都必须借助DSP/BIOS本身提供的函数完成,开发者应避免直接控制硬件。2.带有DSP/BIOS功能的程序在运行时与传统开发的程序有所不同。在传统开发中程序是顺序执行,基于DSP/BIOS开发的程序由BIOS来调度,不再按照编写的顺序来执行。File-NEW-DSP/BIOS Configuration。建立新的配置文件,根据开发的DSP不同芯片,对BIOS进行配置,如下图1所示:
附件: 您需要登录才可以下载或查看附件。没有账号?注册
PCI同ISA的区别?

1)PCI是同步总线;ISA是异步总线。 2)PCI的传输率较高。
3)PCI可以即插即用。
4)PCI的成本较高。
何为USB?

USB是通用串行总线的简称。它具有以下特点:
1)传输速度快。
2)连接方便。
3)成本低。接口简单。
4)兼容性好。可以适应于不同的计算机平台。
5)开发容易。
CPLD同FPGA的区别?

1)CPLD的逻辑单元较大。
2)CPLD的容量较小。
3)CPLD的时序确定,延时可预测。
4)CPLD适合于组合逻辑和计算器设计。
USB的有哪些种类?

1)按种类分有: 接口型:只提供接口。较便宜;使用复杂。 芯片型:本身是一个单片机。使用简单。
2)按用途分有: Hub型:为了构成USB Hub。 设备型:设备端接口。 主机型:主机端接口。
3)按速度分有: 低速型:1.5M。用于鼠标、键盘等慢速计算机外设。 全速型:12M。用于数据传输。 高速型:480M。开发中。
5V/3.3V如何混接?

TI DSP的发展同集成电路的发展一样,新的DSP都是3.3V的,但目前还有许多外围电路是5V的,因此在DSP系统中,经常有5V和3.3V的DSP混接问题。在这些系统中,应注意:
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.3V,5V的DSP的价格和功耗都价格,以逐渐被3.3V的DSP取代。
如何选择DSP的电源芯片?

TMS320LF24xx:TPS7333QD,5V变3.3V,最大500mA。 TMS320VC33: TPS73HD318PWP,5V变3.3V和1.8V,最大750mA。 TMS320VC54xx:TPS73HD318PWP,5V变3.3V和1.8V,最大750mA; TPS73HD301PWP,5V变3.3V和可调,最大750mA。 TMS320VC55xx:TPS73HD301PWP,5V变3.3V和可调,最大750mA。 TMS320C6000: PT6405B,PT6407E,最大3A
如何选择外部时钟?

DSP的内部指令周期较高,外部晶振的主频不够,因此DSP大多数片内均有PLL。但每个系列不尽相同。
1)TMS320C2000系列: TMS320C20x:PLL可以÷2,×1,×2和×4,因此外部时钟可以为5MHz-40MHz。 TMS320F240:PLL可以÷2,×1,×1.5,×2,×2.5,×3,×4,×4.5,×5和×9,因此外部时钟可以为2.22MHz-40MHz。 TMS320F241/C242/F243:PLL可以×4,因此外部时钟为5MHz。 TMS320LF24xx:PLL可以由RC调节,因此外部时钟为4MHz-20MHz。 TMS320LF24xxA:PLL可以由RC调节,因此外部时钟为4MHz-20MHz。
2)TMS320C3x系列: TMS320C3x:没有PLL,因此外部主频为工作频率的2倍。 TMS320VC33:PLL可以÷2,×1,×5,因此外部主频可以为12MHz-100MHz。
3)TMS320C5000系列: TMS320C54x:PLL可以÷2,×1-32,因此外部主频可以为0.25MHz-200MHz。 TMS320VC54xx:PLL可以÷4,÷2,×1-32,因此外部主频可以为0.625MHz-50MHz。 TMS320VC55xx:PLL可以÷4,÷2,×1-32,因此外部主频可以为6.25MHz-200MHz。
4)TMS320C6000系列: TMS320C62xx:PLL可以×1,×4,×6,×7,×8,×9,×10和×11,因此外部主频可以为11.8MHz-75MHz。 TMS320C67xx:PLL可以×1和×4,因此外部主频可以为12.5MHz-41.7MHz。 TMS320C64xx:PLL可以×1,×6和×12,因此外部主频可以为30MHz-75MHz。


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

DSP的速度较快,为了保证DSP的运行速度,外部存储器需要具有一定的速度,否则DSP访问外部存储器时需要加入等待周期。
1)对于C2000系列: C2000系列只能同异步的存储器直接相接。 C2000系列的DSP目前的最高速度为30MHz,为保证DSP无等待运行,需要外部存储器的速度<30ns。建议可以用的存储器有: CY7C199-15:32K×8,15ns,5V; CY7C1021-15:64K×16,15ns,5V; CY7C1021V33-15:64K×16,15ns,3.3V。
2)对于C3x系列: C3x系列只能同异步的存储器直接相接。 C3x系列的DSP的最高速度,5V的为40MHz,3.3V的为75MHz,为保证DSP无等待运行,分别需要外部存储器的速度<25ns和<12ns。建议可以用的存储器有: ROM: AM29F400-70:256K×16,70ns,5V,加入一个等待; AM29LV400-55:256K×16,55ns,3.3V,加入两个等待(目前没有更快的Flash)。 SRAM: CY7C199-15:32K×8,15ns,5V; CY7C1021-15:64K×16,15ns,5V; CY7C1009-15:128K×8,15ns,5V; CY7C1049-15:512K×8,15ns,5V; CY7C1021V33-15:64K×16,15ns,3.3V; CY7C1009V33-15:128K×8,15ns,3.3V。
3)对于C54x系列: C54x系列只能同异步的存储器直接相接。 C54x系列的DSP的速度为100MHz或160MHz,为保证DSP无等待运行,需要外部存储器的速度<10ns或<6ns。建议可以用的存储器有: ROM: AM29LV400-55:256K×16,55ns,3.3V,加入5或9个等待(目前没有更快的Flash)。 SRAM: CY7C1021V33-12:64K×16,12ns,3.3V,加入一个等待; CY7C1009V33-12:128K×8,12ns,3.3V,加入一个等待。
4)对于C55x和C6000系列: TI的DSP中只有C55x和C6000可以同同步的存储器相连,同步存储器可以保证系统的数据交换效率更高。 ROM: AM29LV400-55:256K×16,55ns,3.3V。 SDRAM: HY57V651620BTC-10S:64M,10ns。 SBSRAM: CY7C1329-133AC,64k×32; CY7C1339-133AC,128k×32。 FIFO: CY7C42x5V-10ASC,32k/64k×18。
DSP芯片有多大的驱动能力?

DSP的驱动能力较强,可以不加驱动,连接8个以上标准TTL门。
调试TMS320C2000系列的常见问题?

1)单步可以运行,连续运行时总回0地址: Watchdog没有关,连续运行复位DSP回到0地址。
2)OUT文件不能load到片内flash中: Flash不是RAM,不能用简单的写指令写入,需要专门的程序写入。CCS和C Source Debugger中的load命令,不能对flash写入。 OUT文件只能load到片内RAM,或片外RAM中。
3)在flash中如何加入断点: 在flash中可以用单步调试,也可以用硬件断点的方法在flash中加入断点,软件断点是不能加在ROM中的。硬件断点,设置存储器的地址,当访问该地址时产生中断。
4)中断向量: C2000的中断向量不可重定位,因此中断向量必须放在0地址开始的flash内。在调试系统时,代码放在RAM中,中断向量也必须放在flash内。
如何将USB同DSP相接?

USB是正在发展的一种高速串行总线。DSP同USB的连接有以下方法: 1)利用USB接口芯片同DSP连接,通过DSP的程序实现USB的协议。此种方式,程序设计较复杂,但数据交换速度可以有保障。
2)利用USB控制芯片同DSP连接,USB控制芯片实现USB的连接,同时通过I/O口或FIFO同DSP交换数据。此种方式,程序简单,但由于USB控制芯片的速度有限,数据交换速度同硬件选择有关。
在DSP系统中为什么要使用CPLD?

DSP的速度较快,要求译码的速度也必须较快。利用小规模逻辑器件译码的方式,已不能满足DSP系统的要求。 同时,DSP系统中也经常需要外部快速部件的配合,这些部件往往是专门的电路,有可编程器件实现。 CPLD的时序严格,速度较快,可编程性好,非常适合于实现译码和专门电路。
DSP系统构成的常用芯片有哪些?

1)电源: TPS73HD3xx,TPS7333,TPS56100,PT64xx...
2)Flash: AM29F400,AM29LV400...
3)SRAM: CY7C1021,CY7C1009,CY7C1049...
4)FIFO: CY7C425,CY7C42x5...
5)Dual port: CY7C136,CY7C133,CY7C1342...
6)SBSRAM: CY7C1329,CY7C1339...
7)SDRAM: HY57V651620BTC...
8)CPLD: CY37000系列,CY38000系列,CY39000系列... 9)PCI: PCI2040,CY7C09449...
10)USB: AN21xx,CY7C68xxx...
DSP为什么要初始化?

DSP在RESET后,许多的寄存器的初值一般同用户的要求不一致,例如:等待寄存器,SP,中断定位寄存器等,需要通过初始化程序设置为用户要求的数值。 初始化程序的主要作用:
1)设置寄存器初值。
2)建立中断向量表。
3)外围部件初始化。

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

1)在使用TI公司的DSP的同时,使用TI公司的模拟可以和DSP进行无缝连接。器件与器件之间不需要任何的连接或转接器件。这样即减少了板卡的尺寸,也降低了开发难度。
2)同为TI公司的产品,很多器件可以固定搭配使用。少了器件选型的烦恼
3)TI在CCS中提供插件,可以用于DSP和模拟器件的开发,非常方便。
如何判断DSP能正常的工作。

最简单的办法是测量它的clkout脚输出是否正常。
JTAG头的使用会遇到哪些情况

1)CLKOUT没有输出。
2)Emu0,Emu1需要上拉。
3)TCK的频率为10M。
4)在3.3V DSP中,PD脚为3.3V 供电,但是仿真器上需要5V电压供电,所以仿真器盒上需要单独供电。
5)仿真多片DSP。在使用菊花链的时候,第一片DSP的TDO接到第二片DSP的TDI即可。注意当串联DSP比较多的时候,信号线要适当的增加驱动。
有源晶振与晶体的区别,应用范围及用法

1)晶体需要用DSP片内的振荡器,在datasheet上有建议的连接方法。晶体没有电压的问题,可以适应于任何DSP,建议用晶体。
2)有源晶振不需要DSP的内部振荡器,信号比较稳定。有源晶振用法:一脚悬空,二脚接地,三脚接输出,四脚接电压。
程序经常跑飞的原因

1)程序没有结尾或不是循环的程序。
2)nmi管脚没有上拉。
3)在看门狗动作的时候程序会经常跑飞。
4)程序编制不当也会引起程序跑飞。 5)硬件系统有问题。
DSP系统中实现UART功能

1,C2000系列DSP片内已集成有UART功能;
2,用McBSP模拟实现UART功能
3,外部扩展UART器件1)通过SPI总线扩展:MAX3100(Maxim公司)通过8位异步存储器接口扩展PC UART: 单通道;TL16C450/550/750(TI公司); 双通道:TL16C452/552/752(TI公司); 四通道:TL16C454/554/754(TI公司)
为什么需要电平变换?

1)DSP系统中难免存在5V/3.3V混合供电现象;
2)I/O为3.3V供电的DSP,其输入信号电平不允许超过电源电压3.3V;
3)5V器件输出信号高电平可达4.4V;
4)长时间超常工作会损坏DSP器件;
5)输出信号电平一般无需变换
电平变换的方法

1,总线收发器(Bus Transceiver):
常用器件: SN74LVTH245A(8位)、SN74LVTH16245A(16位)
特点:3.3V供电,需进行方向控制,延迟:3.5ns,驱动:-32/64mA,输入容限:5V
应用:数据、地址和控制总线的驱动
2,总线开关(Bus Switch)
常用器件:SN74CBTD3384(10位)、SN74CBTD16210(20位)
特点:5V供电,无需方向控制,延迟:0.25ns,驱动能力不增加
应用:适用于信号方向灵活、且负载单一的应用,如McBSP等外设信号的电平变换
3,2选1切换器(1 of 2 Multiplexer)
常用器件:SN74CBT3257(4位)、SN74CBT16292(12位)
特点:实现2选1,5V供电,无需方向控制,延迟:0.25ns,驱动能力不增加
应用:适用于多路切换信号、且要进行电平变换的应用,如双路复用的McBSP
4,CPLD
3.3V供电,但输入容限为5V,并且延迟较大:>7ns,适用于少量的对延迟要求不高的输入信号
5,电阻分压
10KΩ和20KΩ串联分压,5V×20÷(10+20)≈3.3V
硬件调试要检查关键信号的状态是否正确?

这些信号有:EMU0/1、TRST;READY、RESET、HOLD、MP/MC;可屏蔽或不可屏蔽的中断.如果状态不正确,可能会挂起仿真器或调试软件
时钟电路选择原则

1,系统中要求多个不同频率的时钟信号时,首选可编程时钟芯片;
2,单一时钟信号时,选择晶体时钟电路;
3,多个同频时钟信号时,选择晶振;
4,尽量使用DSP片内的PLL,降低片外时钟频率,提高系统的稳定性;
5,C6000、C5510、C5409A、C5416、C5420、C5421和C5441等DSP片内无振荡电路,不能用晶体时钟电路;
6,VC5401、VC5402、VC5409和F281x等DSP时钟信号的电平为1.8V,建议采用晶体时钟电路
一个完整的单DSP应用系统包括那些方面
DSP芯片:DSPs的核心运算单元
电源模块:给DSP以及外围元件提供电压和监控的功能模块
时钟电路:给DSP提供CLK输入;驱动其他需要时钟的元件
存储器:存储数据和程序(SRAM/SDRAM/SBSRAM/ZBTRAM/FLASH)
输入输出模块:执行数据的传输(串口/USB/CAN/Ethernet/AD/DA)
多处理器接口:多CPU协同工作的接口(HPI/PCI/双口RAM)


如何开始调试一个DSP系统
先不焊接器件,用万用表量电源和地看是否短路
先焊电源部分,看电源输出是否正常
焊晶振和复位电路、调试。焊接DSP并对其进行调试
加RAM,调试
加FLASH,调试
如何开始TI DSP的硬件开发
根据应用领域选择TI推荐的DSP类型。
参考对应的DSP之EVM板,DSK等原理图,完成DSP最小系统的搭建。
根据具体应用需要,选择外围电路的扩展,一般如语音、视频、控制等领域均有成熟的电路可以从TI网站得到。外围电路与DSP的接口可参看EVM或DSK,以及所选外围电路芯片的典型接口设计原理图;最好外围电路芯片也选择TI的,这样的话不管硬件接口有现成原理图、很多连DSP与其接口的基本控制源码都有。
地址译码、IO扩展等用CPLD或者FPGA来做,将DSP的地址线、数据线、控制信号线如IS/PS/DS等都引进去有利于调试。
DSP的上电顺序
F2812:I/O先上电,核后上电
其他:Core先上电,IO后上电
在Vcore和Vio之间可以添加二极管来保护
Flash编程电压和PLLV有什么特殊要求
Flash编程电压跟PLLV对电压的稳定以及干净有严格的要求,在设计电路板的时候需要正确的按照DATASHEET推荐来做。
模拟电路/数字电路的隔离
为了提高系统的稳定性,数字部分和模拟部分必须独立供电,最后模拟的跟数字的单点连接。
存储器的地址线、数据线等效交换
为了保证PCB布线时的流畅以及防止打过多的过孔,可以利用存储器特性进行等效交换,原则如下:
DSP外部存储器接口的数据总线为DD[i]
存储器芯片的数据总线为MD[J]
DSP外部存储器接口的地址总线为DA[K]
存储器芯片的地址总线为MA[L]
数据总线可以等效交换时:I不等于J
地址总线可以等效交换时:K不等于J
SRAM的数据可以等效交换
SDRAM:数据线字节对应,字节内可以打乱
ZBTSRAM:地址线[1:0]必须对应,其余地址线可打乱。数据线字节对应,其他可打乱
DSPs的异步串口扩展
LF2407/F2812:片内集成SCI通信接口
SPI总线扩展:MAX3100
MCBSP模拟扩展UART接口
DSP端接口:EMIF(存储扩展接口)
UART扩展芯片:TL16C750、TL16C752、TL16C754、SC28L91、SC28L92
如何让DSPs不同输入输出电压要求的器件协同工作
一般一个DSP系统都会存在5V/3.3V的现象,为了让不同输入输出电压协调工作,不损坏器件,需要在某些输入端加入电平转换电路。
总线收发器:LVTH245、LVTH16245。数据、地址和控制总线的驱动。
总线开关:CBT3384、CBTD16210。适用于信号方向灵活、负载单一的应用。
2选1切换器:CBT3257,多路切换。
电阻分压。
DSP主板设计的一般步骤是什么?需要特别注意的问题有哪些
选择芯片;设计时序,设计PCB。
需要特别注意的是时序和布线。
DSP系统如何消除信号干扰、静电干扰等问题
消除干扰:模拟和数字分开,多层板,电容滤波。
静电干扰:一般情况下,机壳接大地,即能满足要求。特殊情况下,电源输入、数字量输入串接专用的防静电器件。
如何降低和克服PCB布线对模拟信号失真和串音的影响
1)模拟信号与模拟信号之间的干扰:布线时模拟信号尽量走粗一些,如果有条件,2个模拟信号之间用地线间隔。
2)数字信号对模拟信号的干扰:数字信号尽量远离模拟信号,数字信号不能穿越模拟地。
JTAG接头的设计
DSP内部有EMU0/EMU1有弱上拉,如果走线过远则需要额外接10K~30K的电阻进行上拉。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多