DSP入门教程(非常经典)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2)对于 C3x 系列: 硬件等待信号为/RDY,低电平是不等待。 软件等待由总线控制寄 存器 中的 SWW 和 WTCNY 决定,可以加入最多 7 个等待,但等待是不分段的,除 了片内之外 全空间有效。
3)对于 C5000 系列: 硬件等待信号为 READY,高电平时不等待。 软件等待由 SWWCR 和 SWWSR 寄存器决定,可以加入最多 14 个等待。其中程序存储器、控制程序存储器和 数据 存储器及 I/O 可以分别设置。
3)C6000 系列:C62XX,C67XX,C64X 该系列以高性能著称,最适合宽带网络和数字 影 像应用。32bit,其中:C62XX 和 C64X 是定点系列,C67XX 是浮点系列。该系列提供 EMIF 扩展 存储 器接口。该系 列只提供 BGA 封 装,只能制作 多层 PCB。且功耗较 大。同为浮点 系列的 C3X 中的 VC33 现在虽非主流产品,但也仍在广泛使用,但 其速度较低,最高在 150MIPS。
4、如何高效开始 TI DSP 的硬件开发
1)根据应用领域选择 TI 推荐的 DSP 类型
2)参考选定的 DSP 之 EVM 板,DSK 等原理图,完成 DSP 最小系统的搭建(包括外扩 内 存空间、电源复位系统、各控制信号管脚的连接、JTAG 口的连接等);
3)根据具体应用需要,选择外围电路的扩展,一般如语音、视频、控制等领域均有成熟的 电路可以从 TI 网站得到。外围电路与 DSP 的接口可参看 EVM 或 DSK,以及所选外围 电路 芯片的典型接口设计原理图;最好外围电路芯片也选择 TI 的,这样的话不管硬件接 口有现 成原理图、很多连 DSP 与其接口的基本控制源码都有。
为什么 CCS 需要安装 Driver?
CCS 是开放的软件平台,它可以支持不同的硬件接口,因此不同的硬件接口必须通过标准 的 Driver 同 CCS 连接。
Driver 安装的常见问题?
请认真阅读“安装手册”和 Driver 盘中的 Readme。
1)对于 SEED-XDS,安装 Readme 中的步骤,将 I/O 口设为 240/280/320/340。 2)对于 SEED-XDSPP,安装 Readme 中的步骤,将 I/O 口设为 378 或 278。 3)对于 SEED-XDSUSB,必须连接目标板,安装 Readme 中的步骤,将 I/O 口设为 A, USB连接后,主机将自动激活相应的 Driver。 4)对于 SEED-XDSPCI,安装 Readme 中的步骤,将 I/O 口设为 240,PCI 接口板插入主机后, 主机将自动激活相应的 Driver。 5)对于 Simulator,需要选择不同的 CFG 文件,以模拟不同的 DSP。 6)对于 C5402 DSK,将 I/O 口设为 378 或 278。 7)对于 C6211/6711 DSK,将 I/O 口设为 378 或 278。 8)对于 C6201/C6701 EVM,将 I/O 口设为 0。
2)TMS320C3x 系列: TMS320C3x:没有 PLL,因此外部主频为工作频率的 2 倍。 TMS320VC33:PLL 可以÷2,×1,×5,因此外部主频可以为 12MHz-100MHz。
3)TMS320C5000 系列: TMS320VC54xx:P LL 可以÷4,÷2,×1-32,因此外部主频可以为 0.625MHz-50MHz。 TMS320VC55xx:P LL 可以÷4,÷2,×1-32,因此外部主频可以为 6.25MHz-300MHz。
Link 的 cmd 文件的作用是什么?
Link 的 cmd 文件用于 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 }
7、选择什么仿真器 一般来说,买个并口的 EPP 就够了,价格便宜又稳定
8、关于 TI 54X 系列 DSP 的 bootloader 过程 请详细阅读 TI 文档 SPRA618A、SPRA571,这些文档对 boot 的机制进行了详细说明同时说 明了利用 hex500 将*.out 文件转化为*.hex 文件时,需要编写的 cmd 文件的写法。 如何选 择外部时钟?
2、设计中如何得到技术参考资料以及如何得到相关源码 原则是碰到问题就去 www.ti.com
1)在 TI 网站的搜索中用 keyword 搜索资料, 主要要注意的就是 Application Notes, user guides 比如不知道怎样进行 VC5402 的 McBSP 编程,搜 McBSP 和 VC5402 如果不知道如 何设计 VC5402 和 TLV320AIC23 的接口以及编程,搜 TLV320AIC23 和 VC5402; 这 样可以搜到一 堆的资料,这 些资料一般均有 PDF 文档说 明和相应的源 程序包提供, download 后做少许改 动即可
1)C5000 系列(定点、低功耗) :C54X,C54XX,C55X 相比其它系列的主要特点是低 功 耗,所以最适合个人与便携式上网以及无线通信应用,如手机、PDA、GPS 等应用。 处理 速度在 80MIPS--400MIPS 之间。C54XX 和 C55XX 一般只具有 McBSP 同步串口、 HPI 并行 接口、定时器、DMA 等外设。值得注意的是 C55XX 提供了 EMIF 外部存储 器扩展接口, 可以直接使用 SDRAM,而 C54XX 则不能直接使用。两个系列的数字 IO 都只有两条。
4)对于 C6000 系列(只限于非同步存储器或外设) : 硬件等待信号为 ARDY,高电平时 不 等待。 软件等待由外部存储器接口控制寄存器决定,总线访问外部存储器或设备的时 序可 以设置,可以方便的同异步的存储器或外设接口。
仿真工作正常对于 DSP 的基本要求
1)DSP 电源和地连接正确。 2)DSP 时钟正确。 3)DSP 的主要控制信号,如 RS 和 HOLD 信号接高电平。 4)C2000 的 watchdog 关掉。 5)不可屏蔽中断 NMI 上拉高电平。
4)地址译码、IO 扩展等用 CPLD 或者 FPGA 来做,将 DSP 的地址线、数据线、控制信 号 线如 IS/PS/DS 等都引进去有利于调试
5、如何高效开始 TI DSP 的软件开发 如果你不是纯做算法,而是在一个目标版上进行开发, 需要使用 DSP 的片上外设,需要控 制片外接口电路,那么建议在写程序前先好好将这个目标 版的电路设计搞清楚。最重要的是 程序、数据、I/O 空间的译码。不管是否纯做算法还是软硬结合, DSP 的 CPU,memory,program memory addressing, data mem.ory addressing 的资料都需要看.
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。
CCS 或 Emurst 运行时提示“Can't Initialize Target DSP”
1)仿真器连接是否正常? 2)仿真器的 I/O 设置是否正确? 3)XDSPP 仿真器的电源是否正确? 4)目标系统是否正确? 5)仿真器是否正常? 6)DSP 工作的基本条件是否具备。 建议使用目标板测试。
2)C 和汇编的编程指南需要看
3) 汇 编指 令 和 C 语 言 的运 行 时 间 支持 库 、 DSPLIB 等 资料 需 要 看其 他 的 如 : Applications Guide, Optimizing CC++ Compiler User's Guide, Assembly Language Tools User's Guide 等资 料留待入门之后再去看体会会更深一些。
4)OMAP 系列:OMAP 处理器集成 ARM 的命令及控制功能,另外还提供 DSP 的低功 耗 实时信号处理能力,最适合移动上网设备和多媒体家电。 其他系列的 DSP 曾经有过风光,但现在都非 TI 主推产品了,除了 C3X 系列外,其他 基本 处于淘汰阶段,如:C3X 的浮点系列:C30,C31,C32 C2X 和 C5X 系列:C20, C25,C50 每个系列的 DSP 都有其主要应用领域.
DSP 的指令周期较快,访问慢速存储器或外设时需加入等待。等待分硬件等待和软件等待, 每一个系列的等待不完全相同。
1)对于 C2000 系列: 硬件等待信号为 READY,高电平时不等待。 软件等待由 WSGR 寄 存器决定,可以加入最多 7 个等待。其中程序存储器和数据存储器及 I/O 可以分别设置。
2)C2000 系列(定点、控制器) :C20X,F20X,F24X,F24XX ,C28x 该系芯片具有大量 外设资源,如:A/D、定时器、各种串口(同步和异步) ,WATCHDOG、CAN 总线/PWM 发 生器、数字 IO 脚等 。是 针对控 制应用最佳化 的 DSP,在 TI 所有的 DSP 中,只有 C2000 有 FLASH,也只有该系列有异步串口可以和 PC 的 UART 相连。
2)版上发问
3)baidu或google 搜 4)再不济,找技术支持,碰运气了
3、如何看待 TI DSP 庞杂的技术文档 新手进行 DSP 开发学习之时,常常感觉技术文档太多,哪本都有用,哪本都想看,无从下 手。此时原则是只看入门必须的、只看和芯片相关的。根据经验,如下的资料必看不可:
1)讲述 DLeabharlann BaiduP 的 CPU,memory,program memory addressing,data memory addressing 的资料 都需要看、外设资源的资料可以只看自己用到的部分 ;
DSP 入门教程
1、TI DSP 的选型 主要考虑处理速度、功耗、程序存储器和数据存储器的容量、片内的资源,如定时器的数量、 I/O 口数量、中断数量、DMA 通道数等。DSP 的主要供应商有 TI,ADI, Motorola,Lucent 和 Zilog 等,其中 TI 占有最大的市场份额。
TI 公司现在主推四大系列 DSP
4)TMS320C6000 系列:
TMS320C62xx:P LL 可以×1,×4,×6,×7,×8,×9,×10 和×11,因此外部主频可以为 11.8MHz -300MHz。 TMS320C67xx:PLL 可以×1 和×4,因此外部主频可以为 12.5MHz-230MHz。 TMS320C64xx:PLL 可以×1,×6 和×12,因此外部主频可以为 30MHz-720MHz 软件等待的如何使用?
1)看 CCS 的使用指南
2)明白 CMD 文件的编写
3)明白中断向量表文件的编写,并定位在正确的地方
4)运行一个纯 simulator 的程序,了解 CCS 的各个操作
5)到 TI 网站下相关的源码,参考源码的结构进行编程
6)不论是 C 编程还是 ASM 编程,模块化是必须的
6、选择 C 还是选择 ASM 进行编程 记住一条原则,TI 的工程师在不断改进 CCS 的 C 程序优化编译器,现在 C 优化的效率可 达 到手工汇编的 90%甚至更高。当然有的时候如果计算能力和内存资源是瓶颈,ASM 还 是有 优势,比如 G.729 编解码。但是针对一般的应用开发,C 是最好的选择。 新手编程则选择 C 和汇编混合编程更有利一些
3)对于 C5000 系列: 硬件等待信号为 READY,高电平时不等待。 软件等待由 SWWCR 和 SWWSR 寄存器决定,可以加入最多 14 个等待。其中程序存储器、控制程序存储器和 数据 存储器及 I/O 可以分别设置。
3)C6000 系列:C62XX,C67XX,C64X 该系列以高性能著称,最适合宽带网络和数字 影 像应用。32bit,其中:C62XX 和 C64X 是定点系列,C67XX 是浮点系列。该系列提供 EMIF 扩展 存储 器接口。该系 列只提供 BGA 封 装,只能制作 多层 PCB。且功耗较 大。同为浮点 系列的 C3X 中的 VC33 现在虽非主流产品,但也仍在广泛使用,但 其速度较低,最高在 150MIPS。
4、如何高效开始 TI DSP 的硬件开发
1)根据应用领域选择 TI 推荐的 DSP 类型
2)参考选定的 DSP 之 EVM 板,DSK 等原理图,完成 DSP 最小系统的搭建(包括外扩 内 存空间、电源复位系统、各控制信号管脚的连接、JTAG 口的连接等);
3)根据具体应用需要,选择外围电路的扩展,一般如语音、视频、控制等领域均有成熟的 电路可以从 TI 网站得到。外围电路与 DSP 的接口可参看 EVM 或 DSK,以及所选外围 电路 芯片的典型接口设计原理图;最好外围电路芯片也选择 TI 的,这样的话不管硬件接 口有现 成原理图、很多连 DSP 与其接口的基本控制源码都有。
为什么 CCS 需要安装 Driver?
CCS 是开放的软件平台,它可以支持不同的硬件接口,因此不同的硬件接口必须通过标准 的 Driver 同 CCS 连接。
Driver 安装的常见问题?
请认真阅读“安装手册”和 Driver 盘中的 Readme。
1)对于 SEED-XDS,安装 Readme 中的步骤,将 I/O 口设为 240/280/320/340。 2)对于 SEED-XDSPP,安装 Readme 中的步骤,将 I/O 口设为 378 或 278。 3)对于 SEED-XDSUSB,必须连接目标板,安装 Readme 中的步骤,将 I/O 口设为 A, USB连接后,主机将自动激活相应的 Driver。 4)对于 SEED-XDSPCI,安装 Readme 中的步骤,将 I/O 口设为 240,PCI 接口板插入主机后, 主机将自动激活相应的 Driver。 5)对于 Simulator,需要选择不同的 CFG 文件,以模拟不同的 DSP。 6)对于 C5402 DSK,将 I/O 口设为 378 或 278。 7)对于 C6211/6711 DSK,将 I/O 口设为 378 或 278。 8)对于 C6201/C6701 EVM,将 I/O 口设为 0。
2)TMS320C3x 系列: TMS320C3x:没有 PLL,因此外部主频为工作频率的 2 倍。 TMS320VC33:PLL 可以÷2,×1,×5,因此外部主频可以为 12MHz-100MHz。
3)TMS320C5000 系列: TMS320VC54xx:P LL 可以÷4,÷2,×1-32,因此外部主频可以为 0.625MHz-50MHz。 TMS320VC55xx:P LL 可以÷4,÷2,×1-32,因此外部主频可以为 6.25MHz-300MHz。
Link 的 cmd 文件的作用是什么?
Link 的 cmd 文件用于 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 }
7、选择什么仿真器 一般来说,买个并口的 EPP 就够了,价格便宜又稳定
8、关于 TI 54X 系列 DSP 的 bootloader 过程 请详细阅读 TI 文档 SPRA618A、SPRA571,这些文档对 boot 的机制进行了详细说明同时说 明了利用 hex500 将*.out 文件转化为*.hex 文件时,需要编写的 cmd 文件的写法。 如何选 择外部时钟?
2、设计中如何得到技术参考资料以及如何得到相关源码 原则是碰到问题就去 www.ti.com
1)在 TI 网站的搜索中用 keyword 搜索资料, 主要要注意的就是 Application Notes, user guides 比如不知道怎样进行 VC5402 的 McBSP 编程,搜 McBSP 和 VC5402 如果不知道如 何设计 VC5402 和 TLV320AIC23 的接口以及编程,搜 TLV320AIC23 和 VC5402; 这 样可以搜到一 堆的资料,这 些资料一般均有 PDF 文档说 明和相应的源 程序包提供, download 后做少许改 动即可
1)C5000 系列(定点、低功耗) :C54X,C54XX,C55X 相比其它系列的主要特点是低 功 耗,所以最适合个人与便携式上网以及无线通信应用,如手机、PDA、GPS 等应用。 处理 速度在 80MIPS--400MIPS 之间。C54XX 和 C55XX 一般只具有 McBSP 同步串口、 HPI 并行 接口、定时器、DMA 等外设。值得注意的是 C55XX 提供了 EMIF 外部存储 器扩展接口, 可以直接使用 SDRAM,而 C54XX 则不能直接使用。两个系列的数字 IO 都只有两条。
4)对于 C6000 系列(只限于非同步存储器或外设) : 硬件等待信号为 ARDY,高电平时 不 等待。 软件等待由外部存储器接口控制寄存器决定,总线访问外部存储器或设备的时 序可 以设置,可以方便的同异步的存储器或外设接口。
仿真工作正常对于 DSP 的基本要求
1)DSP 电源和地连接正确。 2)DSP 时钟正确。 3)DSP 的主要控制信号,如 RS 和 HOLD 信号接高电平。 4)C2000 的 watchdog 关掉。 5)不可屏蔽中断 NMI 上拉高电平。
4)地址译码、IO 扩展等用 CPLD 或者 FPGA 来做,将 DSP 的地址线、数据线、控制信 号 线如 IS/PS/DS 等都引进去有利于调试
5、如何高效开始 TI DSP 的软件开发 如果你不是纯做算法,而是在一个目标版上进行开发, 需要使用 DSP 的片上外设,需要控 制片外接口电路,那么建议在写程序前先好好将这个目标 版的电路设计搞清楚。最重要的是 程序、数据、I/O 空间的译码。不管是否纯做算法还是软硬结合, DSP 的 CPU,memory,program memory addressing, data mem.ory addressing 的资料都需要看.
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。
CCS 或 Emurst 运行时提示“Can't Initialize Target DSP”
1)仿真器连接是否正常? 2)仿真器的 I/O 设置是否正确? 3)XDSPP 仿真器的电源是否正确? 4)目标系统是否正确? 5)仿真器是否正常? 6)DSP 工作的基本条件是否具备。 建议使用目标板测试。
2)C 和汇编的编程指南需要看
3) 汇 编指 令 和 C 语 言 的运 行 时 间 支持 库 、 DSPLIB 等 资料 需 要 看其 他 的 如 : Applications Guide, Optimizing CC++ Compiler User's Guide, Assembly Language Tools User's Guide 等资 料留待入门之后再去看体会会更深一些。
4)OMAP 系列:OMAP 处理器集成 ARM 的命令及控制功能,另外还提供 DSP 的低功 耗 实时信号处理能力,最适合移动上网设备和多媒体家电。 其他系列的 DSP 曾经有过风光,但现在都非 TI 主推产品了,除了 C3X 系列外,其他 基本 处于淘汰阶段,如:C3X 的浮点系列:C30,C31,C32 C2X 和 C5X 系列:C20, C25,C50 每个系列的 DSP 都有其主要应用领域.
DSP 的指令周期较快,访问慢速存储器或外设时需加入等待。等待分硬件等待和软件等待, 每一个系列的等待不完全相同。
1)对于 C2000 系列: 硬件等待信号为 READY,高电平时不等待。 软件等待由 WSGR 寄 存器决定,可以加入最多 7 个等待。其中程序存储器和数据存储器及 I/O 可以分别设置。
2)C2000 系列(定点、控制器) :C20X,F20X,F24X,F24XX ,C28x 该系芯片具有大量 外设资源,如:A/D、定时器、各种串口(同步和异步) ,WATCHDOG、CAN 总线/PWM 发 生器、数字 IO 脚等 。是 针对控 制应用最佳化 的 DSP,在 TI 所有的 DSP 中,只有 C2000 有 FLASH,也只有该系列有异步串口可以和 PC 的 UART 相连。
2)版上发问
3)baidu或google 搜 4)再不济,找技术支持,碰运气了
3、如何看待 TI DSP 庞杂的技术文档 新手进行 DSP 开发学习之时,常常感觉技术文档太多,哪本都有用,哪本都想看,无从下 手。此时原则是只看入门必须的、只看和芯片相关的。根据经验,如下的资料必看不可:
1)讲述 DLeabharlann BaiduP 的 CPU,memory,program memory addressing,data memory addressing 的资料 都需要看、外设资源的资料可以只看自己用到的部分 ;
DSP 入门教程
1、TI DSP 的选型 主要考虑处理速度、功耗、程序存储器和数据存储器的容量、片内的资源,如定时器的数量、 I/O 口数量、中断数量、DMA 通道数等。DSP 的主要供应商有 TI,ADI, Motorola,Lucent 和 Zilog 等,其中 TI 占有最大的市场份额。
TI 公司现在主推四大系列 DSP
4)TMS320C6000 系列:
TMS320C62xx:P LL 可以×1,×4,×6,×7,×8,×9,×10 和×11,因此外部主频可以为 11.8MHz -300MHz。 TMS320C67xx:PLL 可以×1 和×4,因此外部主频可以为 12.5MHz-230MHz。 TMS320C64xx:PLL 可以×1,×6 和×12,因此外部主频可以为 30MHz-720MHz 软件等待的如何使用?
1)看 CCS 的使用指南
2)明白 CMD 文件的编写
3)明白中断向量表文件的编写,并定位在正确的地方
4)运行一个纯 simulator 的程序,了解 CCS 的各个操作
5)到 TI 网站下相关的源码,参考源码的结构进行编程
6)不论是 C 编程还是 ASM 编程,模块化是必须的
6、选择 C 还是选择 ASM 进行编程 记住一条原则,TI 的工程师在不断改进 CCS 的 C 程序优化编译器,现在 C 优化的效率可 达 到手工汇编的 90%甚至更高。当然有的时候如果计算能力和内存资源是瓶颈,ASM 还 是有 优势,比如 G.729 编解码。但是针对一般的应用开发,C 是最好的选择。 新手编程则选择 C 和汇编混合编程更有利一些