DSP常会遇到的问题总结
DSP常见问题及解决
问:我测试你们的程序的时候,go main 进不去主函数,进入的是一段汇编。
是怎么回事?答:程序如果要进行设断点,观察变量等操作,要先调入project文件,然后再调入out文件。
如果是可以直接执行能看到结果的,就直接调入out文件,run就可以。
问:CY68013的固件程序怎么修改?答:在把QQ2812都研究清楚了,有精力有兴趣自己可以买一本EZ-USB的书好好看看。
在此之前,请不要随便更改固件代码,因为一旦出错,可能带来不必要的麻烦。
固件代码是通过USBControlPanel,使用USB接口进行下载的。
:2812的主频是最大150M,我如果想设为100M是在那里设置?答:打开工程,在Source文件夹下,打开DSP28_SysCtro.c文件,找到如下语句,修改即可。
// Initalize PLLSysCtrlRegs.PLLCR = 0x02;///锁相环产生的时钟频率定标,这里配置为30M问:为什么我的程序在SRAM中正常,烧入Flash后不对?答:1、请先确认你编译的时候使用了flash.cmd,推荐使用我们提供的flash.cmd,如果自己更改了这个文件,请先确认cmd文件的正确性;2、编译的时候,如果选择release模式,请检查一下build option,把其中的opt level改为none,即取消编译优化选项,很多语句在优化的时候可能会产生错误的优化结果。
或者选择debug模式编译,烧写正确后再改为release模式,通过对比两种模式的编译选项也能看出其中的区别。
3、程序在flash中运行会比在ram中运行大概慢20%,因此对于一些时序敏感的外设,比如usb总线,就有可能需要调整时序,否则就会有问题。
问:数码管LED显示的时候发送的数据是怎么规定和产生的?答:其实如果自己看程序和原理图自己就可以知道是怎么产生的。
数码管数据如下:Uint16SpiCode[]={0x7E7E,0x2929,0x2c2c,0x6666,0xa4a4,0xa0a0,0x3e3e,0x2020,0x2424,0x22 22,0xe0e0,0xb1b1,0x6868,0xa1a1,0xa3a3,0xffff,0xdfdf};数码管的笔画对应关系如下:63 742 01 5就是说0~7分别对应笔画的a~h,在原理图看就是分别连接的Q0~Q7这个数码管的型号是LG3611BH,是共阳级的,也就是说某个笔画为0的时候,这个笔画被点亮。
DSP常见问题及解决
问:我测试你们的程序的时候,go main 进不去主函数,进入的是一段汇编。
是怎么回事?答:程序如果要进行设断点,观察变量等操作,要先调入pro ject文件,然后再调入ou t文件。
如果是可以直接执行能看到结果的,就直接调入ou t文件,run就可以。
问:CY68013的固件程序怎么修改?答:在把QQ2812都研究清楚了,有精力有兴趣自己可以买一本EZ-USB的书好好看看。
在此之前,请不要随便更改固件代码,因为一旦出错,可能带来不必要的麻烦。
固件代码是通过USBCon trolPa nel,使用USB接口进行下载的。
:2812的主频是最大150M,我如果想设为100M是在那里设置?答:打开工程,在Source文件夹下,打开DSP28_SysCt ro.c文件,找到如下语句,修改即可。
// Initali ze PLLSysCtrl Regs.PLLCR = 0x02;///锁相环产生的时钟频率定标,这里配置为30M问:为什么我的程序在SRAM中正常,烧入Flash后不对?答:1、请先确认你编译的时候使用了flash.cmd,推荐使用我们提供的flas h.cmd,如果自己更改了这个文件,请先确认cmd文件的正确性;2、编译的时候,如果选择rel ease模式,请检查一下bu ild option,把其中的opt level改为none,即取消编译优化选项,很多语句在优化的时候可能会产生错误的优化结果。
或者选择deb ug模式编译,烧写正确后再改为relea se模式,通过对比两种模式的编译选项也能看出其中的区别。
3、程序在flas h中运行会比在ram中运行大概慢20%,因此对于一些时序敏感的外设,比如usb总线,就有可能需要调整时序,否则就会有问题。
DSP硬件开发常见问题
dsp硬件开发常见问题有源晶振与晶体的区别,应用范围及用法1) 晶体需要用DSP片内的振荡器,在datasheet上有建议的连接方法。
晶体没有电压的问题,可以适应于任何DSP,建议用晶体。
2)有源晶振不需要DSP的内部振荡器,信号比较稳定。
有源晶振用法:一脚悬空,二脚接地,三脚接输出,四脚接电压。
如何测量晶振频率?1 测量晶振频率的最简捷、准确的方法就是:“用频率计”。
2 如果手头没有,也可用示波器测量晶振输出信号的重复周期,再反算出来。
如:0.1uS-->10MHz,62. 5nS-->16MHz。
用示波器测量频率不会很准确,即使是带有电子卡尺功能的,通常也不如频率计准确。
3 OSC1与OSC2中至少有一点(对地仅有十几pF的电容)是负担不动示波器的探头(X1---1Mohm/ /20-45pF或X10---10Mohm//12-18pF)或频率计的电缆(100Kohm//20-45pF等)的。
连接以后不是停振,就是频率跑了(改变很大)。
而且被测频率越高,越严重(电容阻抗越小并严重衰减信号的幅度)。
因此,通常可以测量振荡放大器或振荡非门的(低阻)输出端或经过一两级缓冲后的输出端。
4 我们知道方波是由相同频率的基波与基波的高次正弦谐波叠加而成。
因示波器带宽不够高,很多高次正弦谐波被衰减掉了。
于是只能将基(频正弦)波显示出来。
但并不影响测量信号频率。
DSP的最高主频能从芯片型号中获得吗?TI的DSP最高主频可以从芯片的型号中获得,但每一个系列不一定相同。
1)TMS320C2000系列:TMS320F206-最高主频20MHz。
TMS320C203/C206-最高主频40MHz。
TMS320F24x-最高主频20MHz。
TMS320LF24xx-最高主频30MHz。
TMS320LF24xxA-最高主频40MHz。
TMS320LF28xx-最高主频150MHz。
2)TMS320C3x系列:TMS320C30:最高主频25MHz。
DSP面试常见问题
DSP常见问题1.DSP与普通的微处理器的不同?单周期指令:大多数DSP都拥有流水结构,即每条指令都由片内多个功能单元分别完成取指、译码、取数、执行等步骤,这样可以大大提高系统的执行效率。
它可以在一个时钟周期内执行一条语句。
快速乘法器:信号处理算法往往大量用到乘加(multiply-accumulate,MAC)运算。
DSP有专用的硬件乘法器,它可以在一个时钟周期内完成MAC运算。
硬件乘法器占用了DSP芯片面积的很大一部分。
(与之相反,通用微处理器采用一种较慢的、迭代的乘法技术,它可以在多个时钟周期内完成一次乘法运算,但是占用了较少了硅片资源)。
多总线:DSP有分开的代码和数据总线(一般用术语“哈佛结构”表示),这样在同一个时钟周期内可以进行多次存储器访问——这是因为数据总线也往往有好几组。
有了这种体系结构,DSP就可以在单个时钟周期内取出一条指令和一个或者两个(或者更多)的操作数。
地址发生器:DSP有专用的硬件地址发生单元,这样它可以支持许多信号处理算法所要求的特定数据地址模式。
这包括前(后)增(减)、环状数据缓冲的模地址以及FFT 的比特倒置地址。
地址发生器单元与主ALU和乘法器并行工作,这就进一步增加了DSP 可以在一个时钟周期内可以完成的工作量。
硬件辅助循环:信号处理算法常常需要执行紧密的指令循环。
对硬件辅助循环的支持,可以让DSP高效的循环执行代码块而无需让流水线停转或者让软件来测试循环终止条件。
数据格式:除了标准的整数型格式外,DSP一般支持定点和(或)浮点数。
对数据格式和精度的选择取决于应用程序所需,例如:16位定点DSP可以满足语音信号处理和控制所需24位和32位定点DSP可以满足高质量音频信号处理所需32位浮点DSP可以满足图形和图像处理所需1:DSP采用改进的Harvard结构,程序与数据存储空间分开,各有独立的地址总线和数据总线,取指和读数可以同时进行,而单片机多数采用的是冯•罗依曼结构,所有的操作都必须经过累加器A,很容易造成瓶颈效应。
学习DSP遇到的问题
1,什么是分页机制?2,typedef interrupt void(*PINT)(void);这句话完成了一个类型的定义,以后使用PINT 将定义一个函数的地址。
再来看TINT0 的位置,它位于该结构体的第39 个字节处,对照PIE 中断向量表,第39 个字节处正好是CPU 定时器0 的中断向量,因此完成了的定义之后,当CPU 定时器0的中断发生后,CPU 从中断向量表0x00000D4C处取中断向量,0x00000D4C 处正好放的是中断函数interrupt void ISRTimer0(void)的地址,因为interrupt 关键字的定义,执行该中断函数之前先保护寄存器,然后执行函数功能,执行完后弹出保护寄存器,实现了CPU 定时器0 的中断响应。
上面以CPU定时器0 的中断为例进行了详细的介绍,其他的中断可以参考以上的描述。
3,什么是双缓冲结构??4,0欧姆电阻指阻值为零的电阻。
电路板设计中两点不能用印刷电路连接,常在正面用跨线连接,这在普通板中经常看到,为了让自动贴片机和自动插件机正常工作,用零电阻代替跨线5,RPT #10 || NOP是否可以等价为RPT #10NOP;NOP;这样就是12个周期因||为双目运算符,从左至右执行,执行完RPT #10后还要再执行一次NOP不知我的理解是否正确,求指导~~6,在程序的末尾都要加入一段看门狗复位的死循环,这样做的作用是什么?解决:防止程序跑飞,保留当前输出结果7,what are the meanings of the non-BIOS project and BIOS project?解决:BIOS是TI公司专为DSP设计的实时操作系统。
为TI的DSP编程时,可以采用BIOS,也可以不采用BIOS。
non-BIOS project 就是不采用BIOS的工程文件。
8,我看到dsp2812中有这几个cmd文件:F2812.cmd2812_EzDSP_RAM_lnk.cmdF2812_XintfBoot.cmdDSP281x_Headers_nonBIOS.cmdDSP281x_Headers_BIOS.cmd不知道这几个cmd文件有什么别,到底用哪两个?解决:F2812.cmd:F2812 memory linker command file. Include all FLASH,OTP and CSM password protected memory locations, this linker command file is valid for F2811 as well. 2812_EzDSP_RAM_lnk.cmd: memory map that only allocates SARAM locations. NoFlash,OTP,or CSM password protected locations are used.F2812_XintfBoot.cmd: F2812 boot from XINTF Zone 7.DSP281x_Headers_nonBIOS.cmd: Linker .cmd file to assign the header file variables in a non-BIOS project. This file must bu include in an non-BIOS project that use the header files.DSP281x_Headers_BIOS.cmd: Linker .cmd file to assign the header file variables in a BIOS project. This file must bu include in an BIOS project that use the header files.In most cases, we used 2812_EzDSP_RAM_lnk.cmd and DSP281x_Headers_nonBIOS.cmd for debug or F2812.cmd and DSP281x_Headers_nonBIOS.cmd for Flash if in a non-BIOS project. That all.9,什么是强制高和强制低?解决:如果你设置为强制高,那么PWM的输出始终为高电平,同理,如果你设置为强制低,那PWM的输出始终为低电平。
DSP常见问题解答
DSP常见问题解答如何选择外部时钟?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系列:TMS320VC54xx:PLL可以÷4,÷2,×1-32,因此外部主频可以为0.625MHz-50MHz。
TMS320VC55xx:PLL可以÷4,÷2,×1-32,因此外部主频可以为6.25MHz-300MHz。
4)TMS320C6000系列:TMS320C62xx:PLL可以×1,×4,×6,×7,×8,×9,×10和×11,因此外部主频可以为11.8MHz-300MHz。
TMS320C67xx:PLL可以×1和×4,因此外部主频可以为12.5MHz-230MHz。
DSP调试及烧写和加载常见错误及分析
DSP调试及烧写和加载常见错误及分析在进行DSP调试、烧写和加载过程中,常见的错误有很多,下面是一些常见错误及其分析:1.调试错误:-问题描述:无法连接到DSP设备。
-分析:可能是因为设备未正确连接,或者连接线路有问题,也可能是驱动程序不兼容导致的。
-解决方法:检查设备的连接状态,确保连接正确;检查连接线路是否完好;更新或卸载并重新安装驱动程序。
2.烧写错误:-问题描述:烧写失败或者烧写之后设备无法启动。
-分析:可能是烧写的文件有错误或者不完整,也可能是设备本身存在问题。
3.加载错误:-问题描述:加载程序时出现错误,或者加载之后程序无法正常运行。
-分析:可能是加载的程序有问题或者与设备不兼容,也可能是设备本身存在问题。
4.软件错误:-问题描述:使用的调试、烧写或加载软件出现错误或崩溃。
-分析:可能是软件本身存在问题,也可能是与其他软件或系统的兼容性冲突。
-解决方法:更新软件版本,或者使用其他可靠的软件;检查是否存在与其他软件或系统冲突的情况,如果有需要进行排查和修复。
5.设备故障:-问题描述:设备无法识别、烧写或加载,存在硬件故障。
-分析:可能是设备损坏或老化,设备内部电路出现问题。
-解决方法:检查设备的物理状态,是否存在损坏或老化情况;检查设备的内部电路,如果有问题需要进行修复或更换。
6.嵌入式系统错误:-问题描述:DSP芯片上的嵌入式系统无法正常运行。
-分析:可能是系统的软件代码有问题,硬件与软件的不匹配,系统配置错误等。
-解决方法:检查系统的软件代码,重新进行编译、调试和烧写;检查系统的硬件与软件的兼容性,如果有问题需要进行修复或更换;检查系统的配置参数,进行适当的修改。
在遇到以上错误时,可以根据具体情况进行分析和解决。
同时,可以参考调试、烧写和加载工具的操作手册,寻求厂商的技术支持,或者查阅相关的文档和资料来获取更多的帮助和解决方案。
调试、烧写和加载过程中可能会遇到各种各样的问题,需要耐心和细心进行排查和解决。
DSP软件应用中出现的问题
DSP软件应用中出现的问题自己在使用DSP软件Code Composer Studio v4是遇到一些常见的错误:1:Severity and Description Path Resource Location Creation Time Iderrors encountered during linking; "timer_sdram.out" not builtSeverity and Description Path Resource Location Creation Time Idunresolved symbol _ADC_cal, first referenced in ./DSP2833x_SysCtrl.obj出现这样的问题,通常是少了一些文件,需要手动添加这些文件到工程里解决的方法是:在工程上右击links files to project,之后找到DSP2833x _ADC_cal.asm文件添加到工程里2:当我在用到软件中自带的头文件中的一些结构体,共用体。
说白了就是要对芯片寄存器的位进行操作时软件给我们提供了方便,如果不能“.” 符号不能灵活弹出对应选项时,例如CpuTimer0Regs.TCR.all,应该检查CpuTimer0Regs是否敲写正确,应该编译一下工程,我的做法就是写一个头文件,和主函数,并在函数里写一个InitSysCtrl();(当然前提你的头文件要有定义这个函数)在编译。
3:在学习中遇到了在工程中不用添加头文件,有软件来自动查找,就是得先设置Properties选项,指定头文件的路径,在这之前我一直都是手动添加头文件,很是麻烦,对于不太熟练的我还容易出错,4:还要注意要将我们写的程序中用到的源文件全部添加到工程中(这句话听起来好像没说似的,其实不然),如果我们平时在编写程序时,不注意他,他经常会给添加不必要的麻烦(说白了就是在浪费你的时间)5:我在主函数里用到(“MemCopy(&XintffuncsLoadStart, &XintffuncsLoadEnd, &XintffuncsRunStart);”)编译时出现下列错误提示:unresolved symbol _MemCopy, first referenced in ./timer_sdram.obj这样的问题一看就是MemCopy这的问题,1-可能是在你调用前没有声明,在工程中没有添加这个函数2-我们在用到这个MemCopy时拼写错误自己在学习DSP中,在看过的一些书上有的说过在自己编写工程时不清楚自己工程里要用到什么源文件可以把他们都添加到工程里,今天就出现了问题,由此想起了“尽信书不如无书”6:errors encountered during linking; "cpu_flash1.out" not builtplacement fails for object ".text", size 0x1091 (page 0). Available ranges: RAML1出现这样的错误是因为自己多添加了“DSP2833x_ECan.c”这个文件7:errors encountered during linking; "cpu_flash1.out" not builtsymbol "_delay_loop" redefined: first defined in "./cpu_flash.obj"; redefined in "./DSP2833x_Mcbsp.obj" 我的这个程序是对FLASH进行读写操作,正如提示我多加了“DSP2833x_Mcbsp.h”源文件出现了错误。
DSP实验常见错误及解决方法
实验常见错误及解决方法1、启动CCS时出现如下错误:错误原因:以前在CCS setup里设置当前使用的平台为sdgo2xx(硬件仿真),或者同时设置为sdgo2xx 与c2xx simulator,所以进行软件仿真时应设置当前正在使用的为c2xx simulator。
解决方法有两种:方法1:点击“终止”,然后重新设置CCS setup,将sdgo2xx移除。
方法2:点击“忽略”,然后在“Parallel Debug Manager”中Open菜单下选择c2xx simulator2、编译连接时出现如下错误:错误原因是:文件命名、文件夹命名或保存位置不正确。
文件命名:不能以数字开头(包括mak文件的名字)文件夹命名:不能为中文保存位置:项目文件(mak文件)存储的位置一定要与其它文件(C文件、asm文件、h文件、cmd文件、等)放在同一目录下,且最好放在“x:\tic2xx\myprojects”目录下。
3、编译连接时出现如下错误提示:warning: entry point symbol _C_int0 undefined错误原因:用C语言开发的DSP程序在向工程文件添加文件时没有添加运行支持库文件rts2xx.lib注意rts2xx.lib的路径:在C:\tic2000\c2000\cgtools\lib目录下4、CCS与CCS setup均不能启动,提示:不能正确初始化程序或者CCS运行到某个地方后(例如编译连接后)不能停止,观察任务管理器,发现cc_app.exe占用CPU为100%,即CCS已经死了。
错误原因:CCS被病毒感染或破坏,或者多个版本CCS共存,相互干扰。
解决方法:方法1:重新启动电脑方法2:用运行正确的cc_app.exe程序替换被破坏的cc_app.exe程序。
5、编译连接通过,加载程序后,在运行时出现如下错误提示:错误可能原因:第一种可能:没有加载CMD文件第二种可能:CMD文件已加载,但CMD文件编写有问题,存储器配置、定位不正确第三种可能:用C语言编写的DSP程序,C初始化设置错误,已修改C Initialization 设置,方法:Project ——> Option——> Linker6、探测点设置不成功注意:①在设置探测点时应先加载程序②如下图所示,应先点击Probe Point中的选择框,使volume.c line 63——> No Connection被选中,然后在选Connect下拉菜单,找到相关联的数据文件,再点击Replace ,最后点“确定”。
DSP常见问题
在CCS下,OUT文件加载时提示“Data verification failed...”的原因?Link的CMD文件分配的地址同GEL或设置的有效地址空间不符。
中断向量定位处或其它代码、数据段定位处,没有RAM,无法加载OUT文件。
解决方法:1)调整Link的CMD 文件,使得定位段处有RAM。
2)调整存储器设置,使得RAM区有效如何选择外部时钟?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系列:TMS320VC54xx:PLL可以÷4,÷2,×1-32,因此外部主频可以为0.625MHz-50MHz。
TMS320VC55xx:PLL可以÷4,÷2,×1-32,因此外部主频可以为6.25MHz-300MHz。
dsp遇到问题及处理方案
Dsp遇到的问题集锦1:仿真器驱动没有装好,可以查看“Studio_v3.3/cc/bin”路径下的“xdsfast3.dll”文件,如果这个文件是160K大小那么驱动就是没有装好的。
如果出现这样的问题,即使重装驱动往往也不能成功。
需要删除该“xdsfast3.dll”文件,然后断开PC和仿真器,重新装仿真器驱动。
安装后查看“xdsfast3.dll”文件大小为352K即表示驱动安装成功。
2:Error:Error 0xA0002020/-1044Error during: Execution, Control,Device driver: Cannot acquire emulator processPossible conflict for device driver usage3:Error connecting to the target:Error 0x80000244/-2131Fatal Error during: Register, Initialization, OCS,Cannot access register at 0x00000000Sequence ID: 0Error Code: -2131Error Class: 0x800002444:Error:Error 0xA0003020/-1137Error during: Execution, Target, Control,It appears that the target is being held in reset. This may be due to Wait-In-Reset (WIR) configuration set by the EMU0=0 and EMU1=1 pin settings. If this is the case, DISCONNECTall CONNECTED devices including icepick and then select RETRY to clear the WIR configuration.If this is a multi-core system, the master CPU may not be releasing the DSP/MCU from reset. Please check your configuration in CC_setup and/or your GEL file to ensure that nothing is blocking the DSP/MCU from being released from resetSequence ID: 16Error Code: -1137Error Class: 0xA0003020。
dsp错误集锦
1、syntax error 语法错误2、MEMORY specification ignored RAMM1 不存在的内存说明3、'./Debug/s1.out' not built 没有建立.out文件4、can't open file 'o.obj' for input: No such file or directory5、entry point other than _c_int00 specified 与_c_int00指定的输入点不同6、MEMORY specification ignored 忽视了内存规范7、symbol referencing errors 标签引用错误1.如何为工程添加相应的include(.h)文件对pjt点右键,选择“Scan All File Dependencies”.2.编译错误CCStudio_v3.3/C5500/csl/include/csl_chiphal.h", line 201:fatal error: #error NO CHIP DEFINED 如何解决解决办法:(摘自这里)Project --> Build Options --> Preprocessor --> Pre-define Symbols 中加入CHIP_55023.warning: entry point symbol _c_int00 undefinederror: symbol referencing errors - ./Debug/dc_motor.out not built解决办法:是因为没有添加rts.lib文件导致的。
对“library”点右键,添加C5500文件夹下的cgtool中的rts55.lib文件,即可。
4.错误类型error: linking files for incompatible targets解决办法:出现这个错误是因为之前选择memory模式的时候和后来lib的设置不匹配,例如,如果之前在build option的complier的advance里设置的是large memory模式的话,则在linker的设置里面就要设置为rts55x.lib模式,而不能设置为rts55.lib。
DSP应该注意的问题
四.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。
DSP的157个常见经典问题
[原创]做DSP最应该懂得157个问题做DSP最应该懂得157个问题一.DSP系统设计100问一、时钟和电源问:DSP的电源设计和时钟设计应该特别注意哪些方面?外接晶振选用有源的好还是无源的好?答:时钟一般使用晶体,电源可用TI的配套电源。
外接晶振用无源的好。
问:TMS320LF2407的A/D转换精度保证措施。
答:参考电源和模拟电源要求干净。
问:系统调试时发现纹波太大,主要是哪方面的问题?答:如果是电源纹波大,加大电容滤波。
问:请问我用5V供电的有源晶振为DSP提供时钟,是否可以将其用两个电阻进行分压后再接到DSP的时钟输入端,这样做的话,时钟工作是否稳定?答:这样做不好,建议使用晶体。
问:一个多DSP电路板的时钟,如何选择比较好?DSP电路板的硬件设计和系统调试时的时序问题?答:建议使用时钟芯片,以保证同步。
硬件设计要根据DSP芯片的时序,选择外围芯片,根据时序设定等待和硬件逻辑。
二.干扰与板的布局问:器件布局应重点考虑哪些因素?例如在集中抄表系统中?答:可用TMS320VC5402,成本不是很高。
器件布局重点应是存贮器与DSP的接口。
问:在设计DSP的PCB板时应注意哪些问题?答:1.电源的布置;2.时钟的布置;3.电容的布置;4.终端电路;5.数字同模拟的布置。
问:请问DSP在与前向通道(比如说AD)接口的时候,布线过程中要注意哪些问题,以保证AD采样的稳定性?答:模拟地和数字地分开,但在一点接地。
问:DSP主板设计的一般步骤是什么?需要特别注意的问题有哪些?答:1.选择芯片;2.设计时序;3.设计PCB。
最重要的是时序和布线。
问:在硬件设计阶段如何消除信号干扰(包括模拟信号及高频信号)?应该从那些方面着手?答:1.模拟和数字分开;2.多层板;3.电容滤波。
问:在电路板的设计上,如何很好的解决静电干扰问题。
答:一般情况下,机壳接大地,即能满足要求。
特殊情况下,电源输入、数字量输入串接专用的防静电器件。
DSP一些常见问题(1)
【转】DSP CCS初学调试问题汇总(2011-11-02 12:52:52)1.DSP/BIOS应用程序调试(2009.10.20)在CCS2.0的emulator写dsp/bios的程序,编译链接无错误,而点击LOAD Program下载xxx.out完成时弹出如下对话框:RTDX target application does not match emulation protocol!Loaded program was created with an rtdx library which does not match the target device这将导致RTDX(实时数据交换)不能使用分析:RTXD可以在DSP/BIOS中使用,也可以脱离DSP/BIOS使用;目前CCS Simulator不支持RTDX,故RTDX必须在Emulator下使用,即还需要硬件仿真器和DSP目标板。
故这是由于下载BIOS/DSP程序时RTDX设置错误导致的;问题解决如下:把DSP/BIOS配置窗口中的input/output-->RTDX -real-Time Exchange settings的RTDX mode 改为JTAG(原来是simulator),重新编译后LOAD,上述警告消除,可以在模拟的情况下进行BIOS调试了。
PS:虽然simulator能编译运行DSP/BIOS程序,并能提供实时查询程序运行情况(主要是CPU 负荷,时序,日志以及线程等)。
但实际开发DSP/BIOS应用程序时为了真实的了解目标板的各种信息,仅有Simulator(软件仿真器)是不行的,还需要使用Emulator(硬件仿真器)和DSP/BIOS插件(安装时已装入)。
2.RTDX应用程序调试(10.22)RTDX测试DSP Target传输数据到PC机:a)创建工程,编辑源代码(.c/。
asm),加入头文件(.h),库文件(.lib)以及链接命令文件(.cmd)b)添加修改具有实时数据传输的RTDX语句包括:#include <rtdx.h>; RTDX头文件(rtdx.h)RTDX_CreateOutputChannel( ochan );定义一个全局的PC机数据输出通道,通道名可以任取TARGET——INITIALIZE();初始化DSP目标系统;RTDX_enableOutput( &ochan );使能输出通道写数据;status=RTDX_write( &ochan,&data,sizeof(data) );传送数据至PC;RTDX_disableOutput( &ochan );禁止输出通道传输数据。
电子电路中常见的数字信号处理问题解决方法
电子电路中常见的数字信号处理问题解决方法数字信号处理(DSP)在现代电子电路中扮演着重要的角色。
它涵盖了一系列的技术和方法,用于处理和分析数字信号以实现各种功能。
然而,数字信号处理也会面临一些常见的问题。
本文将介绍一些常见的数字信号处理问题,并提供相应的解决方法。
一、滤波问题1. 陷波滤波器陷波滤波器用于消除输入信号中的特定频率分量。
它可以通过将输入信号与一个带有相反相位的滤波器输出相加来实现。
这样可以减小或完全消除特定频率的干扰信号。
2. 带阻滤波器带阻滤波器通常用于消除特定频率范围内的干扰信号。
它可通过一个带阻滤波器将输入信号分成两个频带,然后将这两个频带重新合并,以消除某个特定频率范围内的信号。
3. 高通滤波器高通滤波器可用于消除低频信号或选择高频信号。
它通过将输入信号通过一个滤波器,只传递高于某个截止频率的频率分量来实现。
4. 低通滤波器低通滤波器通常用于消除高频噪声或选择低频信号。
它通过将输入信号通过一个滤波器,只传递低于某个截止频率的频率分量来实现。
二、采样和重构问题1. 抗混叠滤波器在模拟信号转换为数字信号的过程中,采样频率必须满足奈奎斯特采样定理,以避免混叠现象。
抗混叠滤波器用于在采样前对模拟信号进行滤波,以去除超过采样频率一半的高频成分,从而避免混叠。
2. 插值滤波器在数字信号转换为模拟信号的过程中,插值滤波器用于对数字信号进行重构。
它可通过插值算法对离散的数字信号进行处理,以获取平滑的模拟信号。
三、时钟同步问题1. 相位锁定环路相位锁定环路(PLL)是一种常用的时钟同步技术。
它可通过比较输入信号和本地产生的参考频率信号的相位差,并调整本地信号的频率和相位,以实现对输入信号进行同步。
2. 延时锁定环路延时锁定环路(DLL)是另一种常见的时钟同步技术。
它通过调整延时元件的参数以实现输入信号和本地信号的同步。
四、量化误差问题1. 降噪技术量化误差是由于将模拟信号转换为离散的数字信号时引入的。
DSP实验箱碰到的问题总结
(1)安装在安装过程,由于实验箱只涉及C6748,因此只勾选C6***有关的选项即可,如下(选中红色框内选项):在该选项之下,之后的选项都选中,然后进行安装。
(2)建立仿真器,两种:软件仿真器,硬件仿真器仿真器有两种,一种是不利用硬件,输入输出通过文件来实现,其仿真器名称为simulator,另一种是连接硬件或实验箱,通过硬件实现相关功能,其仿真器名称为emulator。
具体步骤如下:(i)打开Target Configurations,如下:则出现窗口:(ii)右键点击User Defined,选中New Target Configuration,如下:出现:在该页面中,输入File name,需要以ccxml为扩展名。
(iii)在新的页面中:Connection中选中Texas Instruments Simulator,在device中输入c67筛选出相应的设备,然后点击“save”按钮即操作完毕。
对于硬件仿真器Emulator,(i)名称如上述书写,如C6748_Emulator,(ii)在Connection中选择Texas Instruments XDS100v2 USB Emulator,在Device中输入c67,按如下图选择:然后存盘。
(3)打开已存在的工程(project)在菜单view中,选择Project Explorer,然后选择Project中Import Existing CCS Eclipse Project。
在弹出的页面中,用按钮browse选择Project所在的目录。
如果当前项目已经工作区(workspace)内,则不要选择Copy projects into workspace。
点击按钮Finish即可打开工程。
如果该Project已经在workspace内,你选中Copy projects into workspace,那么无法打开该项目。
会出现提示:Some projects cannot be imported because they already exist in theworkspace,如下图所示检查当前工作区,可以通过菜单File→Switch Workspace→Other查看当前工作区目录以及更改工作区目录。
DSP常见错误
1、仿真器驱动的问题。
CCS和仿真器驱动要装在同一路径下,最好都选择其默认的路径。
有时,通过usb20emurst.exe检验到仿真器连接是好的,但打开CCS时,仍然跳出窗口提示Can’t initialize target CPU。
还是因为仿真器驱动安装问题,先将仿真器换一个usb接口试一下,如仍提示错误,则要重新安装驱动。
2、CCS配置。
选择C64xx XDS510 Emulator;Configuration File选择Auto-generate board data file with extra configuration项,C:\ti\drivers\Seedusb2.cfg;I/O Port 0x240;StartupGEL:C:\ti\cc\gel\SEEDDM642.gel。
3、编译错误: SEED301_AverageSmooth\AverageSmoothloop2.jpterror: illegal relocation type 050002 found in section .debug_info, file是因为rts6400.lib库文件与CCS版本不符。
库文件要使用CCS安装文件夹自带的。
4、编译错误:symbol xxx is defined multiple times.(1)因为库文件的问题,更改库文件;(2)是因为将本应该在include下的文件加在了source里。
注意:在uCOS_II.c文件里有include语句,包括了os_core.c、os_flag.c、os_mbox.c、os_mem.c、os_mutex.c、os_q.c、os_sem.c、os_task.c、os_time.c文件,因而这些文件不需手动加入工程。
5、编译错误:symbol xxx is undefined。
出现symbol错误,一般都是因为库文件的问题。
6、编译错误:fatal error: #error NO CHIP DEFINED解决方法:build options->compiler->preprocessor->define symbols:添加上实际的DSP芯片的型号,本工程为_DEBUG;CHIP_6416。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二.DSP的C语言同主机C语言的主要区别?1)DSP的C语言是标准的ANSI C,它不包括同外设联系的扩展部分,如屏幕绘图等。
但在CCS 中,为了方便调试,可以将数据通过prinf命令虚拟输出到主机的屏幕上。
2)DSP的C语言的编译过程为,C编译为ASM,再由ASM编译为OBJ。
因此C和ASM的对应关系非常明确,非常便于人工优化。
3)DSP的代码需要绝对定位;主机的C的代码有操作系统定位。
4)DSP的C的效率较高,非常适合于嵌入系统。
三.DSP发展动态1.TMS320C2000 TMS320C2000系列包括C24x和C28x系列。
C24x系列建议使用LF24xx 系列替代C24x系列,LF24xx系列的价格比C24x便宜,性能高于C24x,而且LF24xxA具有加密功能。
C28x系列主要用于大存储设备管理,高性能的控制场合。
2.TMS320C3x TMS320C3x系列包括C3x和VC33,主要推荐使用VC33。
C3x系列是TI浮点DSP的基础,不可能停产,但价格不会进一步下调。
3.TMS320C5x TMS320C5x系列已不推荐使用,建议使用C24x或C5000系列替代。
4.TMS320C5000 TMS320C5000系列包括C54x和C55x系列。
其中VC54xx还不断有新的器件出现,如:TMS320VC5471(DSP+ARM7)。
C55x系列是TI的第三代DSP,功耗为VC54xx 的1/6,性能为VC54xx的5倍,是一个正在发展的系列。
C5000系列是目前TI DSP的主流DSP,它涵盖了从低档到中高档的应用领域,目前也是用户最多的系列。
5.TMS320C6000 TMS320C6000系列包括C62xx、C67xx和C64xx。
此系列是TI的高档DSP 系列。
其中C62xx系列是定点的DSP,系列芯片种类较丰富,是主要的应用系列。
C67xx系列是浮点的DSP,用于需要高速浮点处理的领域。
C64xx系列是新发展,性能是C62xx的10倍。
6.OMAP系列是TI专门用于多媒体领域的芯片,它是C55+ARM9,性能卓越,非常适合于手持设备、Internet终端等多媒体应用。
四.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:PT6931,TPS56000,最大3A。
八.软件等待的如何使用?DSP的指令周期较快,访问慢速存储器或外设时需加入等待。
等待分硬件等待和软件等待,每一个系列的等待不完全相同。
1)对于C2000系列:硬件等待信号为READY,高电平时不等待。
软件等待由WSGR寄存器决定,可以加入最多7个等待。
其中程序存储器和数据存储器及I/O可以分别设置。
2)对于C3x系列:硬件等待信号为/RDY,低电平是不等待。
软件等待由总线控制寄存器中的SWW和WTCNY决定,可以加入最多7个等待,但等待是不分段的,除了片内之外全空间有效。
3)对于C5000系列:硬件等待信号为READY,高电平时不等待。
软件等待由SWWCR和SWWSR寄存器决定,可以加入最多14个等待。
其中程序存储器、控制程序存储器和数据存储器及I/O可以分别设置。
4)对于C6000系列(只限于非同步存储器或外设):硬件等待信号为ARDY,高电平时不等待。
软件等待由外部存储器接口控制寄存器决定,总线访问外部存储器或设备的时序可以设置,可以方便的同异步的存储器或外设接口。
九.中断向量为什么要重定位?为了方便DSP存储器的配置,一般DSP的中断向量可以重新定位,即可以通过设置寄存器放在存储器空间的任何地方。
注意:C2000的中断向量不能重定位。
十.DSP的最高主频能从芯片型号中获得吗?TI的DSP最高主频可以从芯片的型号中获得,但每一个系列不一定相同。
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系列: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系列:TMS320VC54xx:PLL可以÷4,÷2,×1-32,因此外部主频可以为0.625MHz-50MHz。
TMS320VC55xx:PLL可以÷4,÷2,×1-32,因此外部主频可以为6.25MHz-300MHz。
4)TMS320C6000系列:TMS320C62xx:PLL可以×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十三.如何选择DSP的外部存储器?DSP的速度较快,为了保证DSP的运行速度,外部存储器需要具有一定的速度,否则DSP访问外部存储器时需要加入等待周期。
1)对于C2000系列:C2000系列只能同异步的存储器直接相接。
C2000系列的DSP目前的最高速度为150MHz。
建议可以用的存储器有:CY7C199-15:32K×8,15ns,5V;CY7C1021-12:64K×16,15ns,5V; CY7C1021V33-12: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(SST39VF400):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;CY7C1041V33-15:256k×16,15ns,3.3V。