C2000_DSP调试指南
- 格式:doc
- 大小:295.50 KB
- 文档页数:6
简单dsp设置方法简介数字信号处理(DSP)是指通过对信号进行数学运算和数字滤波等处理,改变信号的特性或提取信号中的有用信息的一种技术。
目前,DSP广泛应用于音频、图像、视频等领域。
本文将介绍一些简单的DSP 设置方法,帮助初学者更好地理解和使用DSP。
DSP 设置的基本步骤在开始介绍具体的DSP 设置方法之前,先了解一下DSP 设置的基本步骤:1. 设定DSP 硬件参数:包括采样率、量化位数、输入输出通道等,根据具体设备的功能进行设置。
2. 选择合适的DSP 算法:根据需要处理的信号类型和要实现的功能,选择适合的DSP 算法。
3. 设置算法参数:根据具体需求,设置相应的算法参数,如滤波器的截止频率、增益等。
4. 调试和优化:通过实时观察输出信号,并根据需要微调参数,直至满足预期要求。
DSP 设置方法1. 信号采样率设置选择合适的采样率对于DSP 处理非常重要。
通常情况下,采样率需要满足奈奎斯特采样定理,即采样率要大于信号中最高频率的两倍。
一般来说,音频信号的采样率为44.1kHz,视频信号的采样率为25Hz或30Hz。
2. 声音增强设置声音增强是DSP 中常见的应用之一,例如提高音量、音频均衡器等。
对于提高音量,可以通过调节增益参数实现。
对于音频均衡器,可以通过设置不同频段的增益来调节各频段的音量。
3. 滤波器设置滤波器是DSP 中常用的功能之一,它可以过滤掉不需要的频率分量或波形。
常见的滤波器类型包括低通滤波器、高通滤波器、带通滤波器等。
设置滤波器时需要注意截止频率和增益等参数的选择。
4. 噪声消除设置噪声消除是DSP 中常见的应用之一,它可以从输入信号中过滤掉噪声成分,使输出信号更加清晰。
常用的噪声消除方法包括降噪滤波器、自适应滤波器等。
设置噪声消除参数时需要注意选择合适的降噪程度和稳定性。
5. 实时音频处理设置实时音频处理是DSP 中非常常见的应用之一,例如实时音频特效、音频降噪等。
在进行实时音频处理时,需要注意控制延迟,否则会造成明显的声音延迟。
调试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内。
TMS320C2000系列DSP寄存器及初始化 TMS320LF240X系列DSP使用时,在掌握了其工作原理和过程之后,就要熟练使用DSP自带的一些资源如:IO口、DSRM、SRAM、EVA、,EVB、SCI、SPI、ADC和WD等等;对这些资源的使用很重要的一点就是对其合理配置和初始化,初始化的关键就是对其相关寄存器的设置,设置寄存器必须了解各位的含义,记住每位的含义是不大现实的;为此,我们专门设计了DSP初始化子程序,注明每个模块所用到的寄存器以及每位的含义,以方便设计。
;Init_DSP.asm .text ;---------------------------------------------------------- ; function: Init DSP DSP初始化子程序 ; input: ------ ; output: ------ ; usege:aCC ;========================================================== DSP_Init: ;======================================================= === ; DSP系统初始化 ;---------------------------------------------------------- ;ST0------ ;15~~13 12 11 10 9 8~~0 ;ST0 ARP OV OVM 1 INTM DP ; 15~13 12 11 10 9 8~5 4 3~2 1~0 ;ST1 ARB CNF TC SXM C 1 XF 1 PM ; ARB---辅助寄存器指针缓冲器:当ARP 被加载到ST0,除了使用LST指令外,原有的 ; ARP值被复制到ARB中;当通过LST#1指令加载ARB时,也把相同的ARB ; 值复制到ARP ; ; ARP----辅助寄存器指针:ARP选择间接寻址时当前的辅助寄存器AR;当ARP被加载 ; 时,原有的ARP值被复制到ARB寄存器中;在间接寻址时,ARP可由存储器 ; 相关指令改变,也可由LARP,MAR,和LST指令改变;当执行LST#1指令 ; 时,ARP也可加载每ARB相同的值 ; C---- 进位位:此位在加法结果产生进位时被置为1,或在减法结果产生借位时被清0 ; 否则,除了执行带有16 位移位的ADD或SUB指令外,C 在加法后被清除或在减 ; 法后被设置;在ADD或USB指令时,ADD仅可对进位位进行置位而SUB仅可 ; 对进位位进行清除,而不会对进位位产生其他影响;移1位和循环指令也可影响 ; 进位位C,以及SETC、CLRC和LST指令也可影响C;条件转移、调用和返回 ; 指令可以根据C的状态进行执行;复位时C被置1 ; CNF----片内DARAM配置位:若CNF=0,可配置的双口RAM区被映射到数据存储空 ; 间;若CNF=I,可配置的双口RAM区被映射到程序存储空间;CNF位可通过 ; SETC CNF,CLRC CNF和LST指令修改;R/S/复位时CNF置为0 ; DP---- 数据存储器页指针:9位的DP寄存器与一个指令字的低七位一起形成一个16 ; 位的直接寻址地址 ; INTM---中断模式位:当INTM被置为0时,所有的未屏蔽中断使能;当它被置1, ; 所有可屏蔽中断禁止; ; OV---- 溢出标志位:该位保存一个被锁存的值,用以指示CALU中是否有溢出发生; ; 一旦发生溢出,OV位保持为1直到下列条件中的一个发生时才能被清除 ; OVM----溢出方式位:当OVM=0时,累加器中结果正常溢出;当OVM=1时,根据 ; 遇到溢出的情况,累加器被设置为它的最大正值或负值;SETC指令和 ; CLRC指令分别对该位进行置位和复位; ; PM----乘积移位方式: ; 若PM=00,乘法器的32位乘积结果不移位直接装入CALU; ; 若PM=01,PREG输出左移1位后装入CALU,最低位LSB以0填充; ; 若PM=10,PREG输出左移4位后装入CALU,最低位LSB以0填充; ; 若PM=11,时PREG输出进行符号扩展右移六位 ; SXM----符号扩展方式位:当SXM一1时,数据通过定标移位器传送到累加器时将产 ; 生符号扩展;SXM=0将抑制符号扩展;SXM位对某些指令没有影响; ; TC---- 测试/控制标志位:在下述情况之一,TC位被置1:由BIT或BITT指令测 ; 试的位为1;当利用NORM指令测试时,累加器的两个最高有效位"异或" ; 功能为真;条件转移、调用和返回指令可根据TC位的条件来执行; ; BIT、BITT、CMPR、LST和NORM指令影响TC位 ; XF---- XF引脚状态位:该位决定XF引脚的状态;SETCXF指令可对位XF进行置位, ; 而CLRCXF指令可对其进行清0;复位时XF置1 ;SCSR1------系统控制和状态寄存器1---地址7018H ; D15---保留位 ; D14---CLKSRC。
干货DSP技术芯片C2000上电引导模式解析
DSP技术目前已经被广泛的应用在了集成芯片研发过程中,这一类新产品的出现,为工程师的电路设计工作带来了极大的革新和帮助。
C2000作为一种比较常见的DSP技术集成芯片产品,应用范围广泛,但在使用过程中却常常会出现仿真运行正常但单机程序跑不起来的情况,今天我们将会就这种问题进行详细解析。
其实就DSP集成芯片C2000而言,之所以会在调试时出现单机程序无法运行的情况,其根本原因还是因为工程师没有正确的完成C2000的引导模式设置。
以C2000Piccolo系列的引导模式为例,尽管这一系列的芯片与delfino稍微有点区别,而concerto系列的芯片在引导模式设置方面更复杂。
但是Piccolo系列是最基础的DSP集成芯片类型,理解了Piccolo的引导原理对我们在日后工作中使用其余两个系列的芯片有非常大的帮助。
首先我们需要了解的,是C2000DSP技术集成芯片的代码执行程序运行问题。
下图中,图1是C2000的芯片复位流程图,从图中我们可以看到,当芯片在接收到一个复位信号后,会到0x3FFFC0去复位向量,该复位向量跳到BootROM0x3FF75C中去执行bootloader的程序,这里主要有进入引导和选择启动模式,以及一些外设引导的函数。
选择启动模式根据芯片的硬件或软件设置来判断芯片该去哪里寻找程序入口,其直接目的是如何找到main,然后执行应用程序。
图1 DSP技术芯片C2000的复位流程图
在了解了这种C2000集成芯片的复位流程之后,接下来我们再来看一下这。
二、TI公司三大系列内部结构的简介 1、C2000系列的内部结构1,C2000系列基于改进的哈佛结构,支持分开的程序空间和数据空间。
还有第三个空间,即I/O空间,用于片外总线接口。
外设总线映射到数据空间,因此,运行在数据空间的所有指令,都可以运行于所有的外设寄存器。
C2000系列的CPU包括:一个32位的中心算术逻辑单元(CALU)、一个32位的累加器(ACC)、CALU具有输入和输出数据定标移位器、一个16x16位乘法器、一个乘积定标移位器、数据地址产生逻辑:包括8个辅助寄存器和1个辅助寄存器算术单元(ARAU)、程序地址产生单元C2000系列采用2xLPASIC核,其内部设有6组16位的数据与程序总线。
这6组总线是:PAB(ProgramAddr.Bus)程序地址总线DRAB(Data-ReadAddr.Bus)数据读地址总线; DWAB(Data-WriteAddr.Bus)数据写地址总线; PRDB(ProgramReadBus)程序读总线;DRDB(DataReadBus)数据读总线;DWEB(DataWriteBus)数据写总线。
将数据读地址总线(DRAB)和数据写地址总线(DWAB)分开,CPU就可以在同一个机器周期内读和写数据。
C2000系列具有以下类型的片内存储器:双访问RAM(DARAM),即一个机器周期内可以访问两次的存器;FlashEEPROM或工厂掩模的ROM。
C2000系列的存储器分为单独可选择的4个空间,总共的地址范围为224K字:程序存储器(64K字);局部数据存储器(32K字);全局数据存储器(64K字);输入/输出(64K字)。
2、C5000系列的内部结构C5000系列中央处理单元CPU包括算术逻辑单元、乘法器、累加器、移位寄存器、各种专门用途的寄存器、地址发生器、比较选择单元、指数编码器。
具体内容如下①先进的多总线结构,具有1条程序存储器数据总线、3条数据存储器数据总线和4条地址总线;②40位算术逻辑单元(ALU),包括40位的桶形移位寄存器和2个独立的40位的累加器;③17位乘17位的并行乘法器与一个40位的专用加法器结合在一起,用于单周期乘/累加操作;④比较、选择和存储单元(CSSU),用于Viterbi操作(一种通信的编码方式)中的加/比较选择;⑤指数编码器用于在单周期内计算40位累加器的指数值;⑥2个地址生成器,包括8个辅助寄存器和2个辅助寄存器算术单元[6]。
DSP初学者入门教程从零学DSPC5000C2000C6000OMAPDSP入门教程1、TI DSP的选型主要考虑处理速度、功耗、程序存储器和数据存储器的容量、片内的资源,如定时器的数量、I/O口数量、中断数量、DMA通道数等。
DSP的主要供应商有TI,ADI,Motorola,Lucent 和Zilog等,其中TI占有最大的市场份额。
TI公司现在主推四大系列DSP1)C5000系列(定点、低功耗):C54X,C54XX,C55X相比其它系列的主要特点是低功耗,所以最适合个人与便携式上网以及无线通信应用,如手机、PDA、GPS等应用。
处理速度在80MIPS--400MIPS之间。
C54XX和C55XX一般只具有McBSP同步串口、HPI 并行接口、定时器、DMA等外设。
值得注意的是C55XX提供了EMIF 外部存储器扩展接口,可以直接使用SDRAM,而C54XX则不能直接使用。
两个系列的数字IO都只有两条。
2)C2000系列(定点、控制器):C20X,F20X,F24X,F24XX,C28x该系芯片具有大量外设资源,如:A/D、定时器、各种串口(同步和异步),W ATCHDOG、CAN总线/PWM发生器、数字IO脚等。
是针对控制应用最佳化的DSP,在TI所有的DSP中,只有C2000有FLASH,也只有该系列有异步串口可以和PC的UART相连。
3)C6000系列:C62XX,C67XX,C64X该系列以高性能著称,最适合宽带网络和数字影像应用。
32bit,其中:C62XX和C64X是定点系列,C67XX是浮点系列。
该系列提供EMIF 扩展存储器接口。
该系列只提供BGA封装,只能制作多层PCB。
且功耗较大。
同为浮点系列的C3X中的VC33现在虽非主流产品,但也仍在广泛使用,但其速度较低,最高在150MIPS。
4)OMAP系列:OMAP处理器集成ARM的命令及控制功能,另外还提供DSP的低功耗其他系列的DSP曾经有过风光,但现在都非TI主推产品了,除了C3X系列外,其他基本处于淘汰阶段,如:C3X的浮点系列:C30,C31,C32C2X和C5X系列:C20,C25,C50每个系列的DSP都有其主要应用领域.2、设计中如何得到技术参考资料以及如何得到相关源码原则是碰到问题就去/doc/cb15462718.html 1)在TI网站的搜索中用keyword搜索资料,主要要注意的就是Application Notes,user guides 比如不知道怎样进行VC5402的McBSP编程,搜McBSP和VC5402如果不知道如何设计VC5402和TLV320AIC23的接口以及编程,搜TLV320AIC23和VC5402;这样可以搜到一堆的资料,这些资料一般均有PDF文档说明和相应的源程序包提供,download后做少许改动即可2)版上发问hellodsp 欢迎每一位有需要的提问者3)google搜4)再不济,找技术支持,碰运气了3、如何看待TI DSP庞杂的技术文档新手进行DSP开发学习之时,常常感觉技术文档太多,哪本都有用,哪本都想看,无从下手。
第六章 DSP的寻址方式和汇编指令当硬件执行指令时,寻找指令所指定的参与运算飞操作数的方式——寻址方式。
根据程序的要求采用不同的寻址方式,可以有效地缩短程序的运行时间和提高代码执行效率。
汇编指令是可执行指令,每一条指令对应一条机器码,用来控制处理器仲的执行部分进行各种操作。
在本章节当中将主要以基于C28x的DSP芯片为例,为读者讲解DSP的寻址方式和汇编指令系统,其中大部分内容也可适用于其他Ti公司的DSP产品。
6.1汇编语言指令集概述在学习C28x系列DSP的寻址方式和汇编指令指令之前,先来对一些基础的知识进行讲解一下先,在汇编程序当中开发人员会常常使用到许多的特殊符号和标志,它们都具有特殊的含义,在学习汇编之前读者们必须先理解这些符号和标志含义,在这里会对其中最常用最重要的操作数符号和寄存器经行详细说明。
在进行汇编讲解之前先来了解一下开发的核心——CPU。
在TMS320C2000系列中,CPU 内核为:C20x/C24x/C240x:C2xLP:C27x/C28x:C27x、C28x这些CPU的硬件结构有一定差别,指令集也不相同,但是,在C28x芯片中可以通过选择兼容特性模式,使C28xCPU与C27xCPU及C2xLPCPU具有最佳兼容性。
可通过状寄存器STl的位OBJMODE和位AMODE的组合,选定模式。
C28x芯片具有3种操作模式:1.C28x模式:在该模式中,用户可以使用C28x的所有有效特性、寻址方式和指令系统,因此,一般应使C28x芯片工作于该种模式。
2.C27x目标——兼容模式:在复位时,C28x的CPU处于C27x目标-兼容模式。
在该模式下,目标码与C27xCPU完全兼容,且它的循环—计数也与C27xCPU兼容。
3.C2xLP源——兼容模式:该模式允许用户运行C2xLP的源代码,这些源代码是用C28x代码生成工具编译生成的。
在下面的讲解当中会牵涉到模式的转换,希望读者要搞清楚每一个模式的对应关系。
TMS320C2000系列DSP寄存器及初始化TMS320LF240X系列DSP使用时,在掌握了其工作原理和过程之后,就要熟练使用DSP自带的一些资源如:IO口、DSRM、SRAM、EVA、,EVB、SCI、SPI、ADC和WD等等;对这些资源的使用很重要的一点就是对其合理配置和初始化,初始化的关键就是对其相关寄存器的设置,设置寄存器必须了解各位的含义,记住每位的含义是不大现实的;为此,我们专门设计了DSP初始化子程序,注明每个模块所用到的寄存器以及每位的含义,以方便设计。
=================================================DSP系统初始化=================================================ARB---辅助寄存器指针缓冲器:当ARP被加载到ST0,除了使用LST指令外,原有的ARP值被复制到ARB中当通过LST#1指令加载ARB时,也把相同的ARB值复制到ARPARP---辅助寄存器指针:ARP选择间接寻址时当前的辅助寄存器AR当ARP被加载时,原有的ARP值被复制到ARB 寄存器中在间接寻址时,ARP可由存储器相关指令改变,也可由LARP,MAR,和LST指令改变当执行LST#1指令时,ARP也可加载每ARB相同的值C---- 进位位:此位在加法结果产生进位时被置为1,或在减法结果产生借位时被清0否则,除了执行带有16 位移位的ADD或SUB指令外,C在加法后被清除或在减法后被设置在ADD或USB指令时,ADD仅可对进位位进行置位而SUB仅可对进位位进行清除,而不会对进位位产生其他影响移1位和循环指令也可影响进位位C,以及SETC、CLRC和LST指令也可影响C条件转移、调用和返回指令可以根据C的状态进行执行复位时C 被置1CNF---片内DARAM配置位:若CNF=0,可配置的双口RAM区被映射到数据存储空间若CNF=I,可配置的双口RAM 区被映射到程序存储空间CNF位可通过SETC CNF,CLRC CNF和LST指令修改R/S/复位时CNF置为0 DP----数据存储器页指针:9位的DP寄存器与一个指令字的低七位一起形成一个16位的直接寻址地址INTM---中断模式位:当INTM被置为0时,所有的未屏蔽中断使能当它被置1,所有可屏蔽中断禁止OV----溢出标志位:该位保存一个被锁存的值,用以指示CALU中是否有溢出发生一旦发生溢出,OV位保持为1直到下列条件中的一个发生时才能被清除OVM---溢出方式位:当OVM=0时,累加器中结果正常溢出当OVM=1时,根据遇到溢出的情况,累加器被设置为它的最大正值或负值SETC指令和CLRC指令分别对该位进行置位和复位PM----乘积移位方式:若PM=00,乘法器的32位乘积结果不移位直接装入CALU若PM=01,PREG输出左移1位后装入CALU,最低位LSB以0填充若PM=10,PREG输出左移4位后装入CALU,最低位LSB以0填充若PM=11,时PREG输出进行符号扩展右移六位SXM----符号扩展方式位:当SXM=1时,数据通过定标移位器传送到累加器时将产生符号扩展SXM=0将抑制符号扩展SXM位对某些指令没有影响TC---- 测试/控制标志位:在下述情况之一,TC位被置1:由BIT或BITT指令测试的位为1当利用NORM指令测试时,累加器的两个最高有效位"异或"功能为真条件转移、调用和返回指令可根据TC位的条件来执行BIT、BITT、CMPR、LST和NORM指令影响TC位XF---- XF引脚状态位:该位决定XF引脚的状态SETCXF指令可对位XF进行置位,而CLRCXF指令可对其进行清0复位时XF置1SCSR1--系统控制和状态寄存器1---地址7018HD15---保留位D14---CLKSRC。