logo资料库

DSP硬件调试经验与个人心得.pdf

第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
资料共6页,全文预览结束
本文着重从实际应用的角度谈一下 DSP 硬件调试经验与个人心得,而不做 较深层次的分析,其中难免有错误或者不全面的地方,请大家指正,谢谢! 驹: QQ :422741349 : xiangsoar@163.com Email 一、DSP 硬件调试心得 1、硬件调试前电路板的常规检查 ①观察有无短路或断路情况(因为 PCB 板的布线一般较密、较细,这种 情况发生的概率还是比较高的);②在调试DSP 硬件系统前,应确保实验板 供电电源有良好的恒压恒流特性。一般供电电源使用开关电源,且电路板 上分布有均匀的电解电容,每个芯片侧均带有 104 的独石或瓷片去耦电容。 保证 DSP 的供电电压应保持在(5.0±0.05)V。电压过低,通过 JTAG 接 口向 Flash 写入程序时会出现错误提示;电压过高,会损坏 DSP 芯片。另 外,由于在调试时要频繁对实验板开断电, 若电源质量不好, 则很可能 在突然上电时因电压陡升而烧坏 DSP 芯片。这样会造成经济损失,又将影 响开发进度。因此,在调试前应高度重视电源质量。保证电源的稳定可靠。 ③加电后,应用手感觉是否有些芯片特别热。如果发现有些芯片烫得特别 厉害,需要立即关掉电源重新检查电路。④排除故障后,应检查晶体是否 振荡,复位是否可靠。然后用示波器检查 DSP 的时钟引脚信号是否正常。 ⑤接上仿真器电脑,察看能否启动 CCS,能否仿真,编绎。如果不能检测最 小系统是否有遗漏元件未焊接,更换一个电路板检查 CCS 软件安装是否可 用,检查电路原理图和 PCB 连接是否有误,元件选择是否有误,DSP 芯片引 脚是否存在断路或短路现象等等。排除错误后则表明 DSP 本身工作基本正 常。 在硬件调试时 DSP 最小系统的检测必须首先进行,为以后的调试打下 了基础。 2、硬件调试中应注意的问题 首先是焊接的顺序问题。当初板子做好以后,不要一口气就把所有的元 件焊上去了,这样对于没有调试过的板子,就很难找到原因。所以焊接的 顺序很重要,应该是应该按功能划分的器件进行焊接,顺序是最小化系统 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.com.cn
的焊接调试-调试(OK)-功能部件的焊接--调试(OK)--另一功能部件的焊 接,这样容易找到问题的所在。 其次在完成元件的焊接之后,首先要用万用表测试一下,有没有短路。 先排除人为的焊接短路。 最后在上电前测试的电压、电流。在电压、电流正常的情况下,再可 以进行别的调试,这时就可以一部分、一部分的往上焊接别的元件了。 实验板上电运行时,要经常查看各芯片的发热情况,发现过热现象应及 时分析处理。当怀疑有芯片损坏而又难以确认时,先看能否连接上仿真器, 再试能否运行程序 如何排除元器件失效问题。造成这类错误的原因有两个:一个是元器件 买来时就已坏了;另一个是由于安装错误,造成器件烧坏。可以采取检查元器 件与设计要求的型号、规格和安装是否一致。在保证安装无误后,用替换方 法排除错误。 3、硬件调试中遇到问题时解决步骤 如果在调试按功能模块划分的器件上出现问题不能完成要求功能,输出所 需的波形,可以按以下步骤进行: 1)关掉电源,用手感觉是否有些芯片特别热。如是则需要检查元器件与设 计要求的型号、规格和安装是否一致(可用替换方法排除错误);重新检查 这一功能模块的供电电源电路; 2)如果这一功能模块需要编写控芯片软件配合完成,则更换一确定好使的 程序再调试,以此确实是软件问题还是硬件问题; 3)以信号的输入至输出的顺序,用示波器察看模块的每个环节是否都能输 出所需波形,如果某一环节出错,则复查前一环节,这样便能找到是那个 具体环节出现问题,将问题锁定在一个较小范围内。 例:电机控制的隔 离驱动电路,应从控制器输出的 PWM 波查起→光耦隔离→驱动电路。如 只功率驱动电路后信号输出不符则可判断驱动电路出现问题,如经光耦之 后信号输出不符则可判断光耦电路出现问题。 4)检查出错环节电路的原理图连接是否正确; 5)检查出错环节电路原理图与 PCB 图是否一致; 6)检查原理图与器件的 DATASHEET上引脚是否一致。本人就曾因画图时 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.com.cn
使用 PEOREL 的翻转功能,使芯片引脚错误地按顺时针排列,最后实际使 用时不得已将芯片所有引脚 180 翻过来插入才解决这个问题。 7)用万用表检查是否有虚焊,引脚短路现象。 8)如以上均不好使,则察看示波器使用是否正确,复查,冷静思考查看是 否有遗漏。 总而言之,要多观察,多思考,硬件上很小的问题有很多时候是很难发现 的,因此在调试过程中,对于出现的任何现象都不要放过,问题的解决就 是从一些小的现象入手的。可说是山重水复疑无路,柳暗花明又一村。 二、DSP 编程与调试中应注意的问题和技巧 哈佛结构、流水线操作、专用的硬件乘法器、特殊的 DSP 指令再加上 集成电路的优化设计可使 DSP 芯片的指令周期达到几十 ns。快速的指令周 期使得 DSP 芯片能够实时实现许多 DSP 应用。然而在实际的程序设计中, 由于 DSP 芯片的上述特点,程序员们常常会遇到许多意想不到的麻烦。这 样,笔者以 2407 为例,将编程与调试中应注意的问题和技巧作一介绍。 (1)数据页寻址问题 2407 中所有程序中必须初始化 DP。初始化 DP 非常重要,上电时,DP 是随机的,没有初始化 DP 的程序就不能正确执行。①在编程时,切记编写 每条语句前都要先检查这条语句所使用到的某个变量或地址空间是否为之 前声明的地址页,如不是则需要重新声明地址页。否则将会出现寻址错误, 进入死循环;② 使用.bss 定义变量时要清楚知道这一变量的所属地址页, 因为如果使用变量数目超过一个数据页(128 个)时,这些变量就可能不处 于同一地址页,这样在程序中使用这些变量时就要注意区分其所属页码了; (可使用语句“LACC #变量名”在观测窗口中查询该变电量的实际地址) ③DSP 对片内存储器的访问比片外存储区要快, 因此,要将经常使用的数 据分配到片内存储空间,以提高数据处理速度;④尽可能采用直接寻址方 式, 这样可在提供较大数据访问能力的同时,提高指令速度。 (2)流水线冲突 2407 采用了深度为 4 级的流水线操作,它具有 4 个独立的操作阶段: 取指令、译码、取操作数和执行。由于 4 个操作阶段是独立的,因此这些 操作可以交叠进行;在任意的指定周期内,1 到 4 个不同的指令均可有效, PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.com.cn
各处于不同的完成阶段。 由此可见,流水线冲突是不可避免的。一般情况下,当流水线发生冲 突时,由 DSP 自动插入延迟解决。当无法自动解决时,需要程序员通过调 整程序语句的次序或在程序中插入一定数量的 NOP 来解决。因此,若在调 试时查不出代码本身的问题,不妨试着相关的位置插入几个 NOP 指令。(特 别是执行费时较长的语句时最好加 NOP 指令如跳转指令 BCND) (3)软件待状态发生器 为实现 2407 与慢速外部逻辑和存储器的接口,等待状态是十分必要的。 当 CPU 对慢速存储器或端口进行读写时,通过增加等待状态,可延长 CPU 等待外部存储器或外部 I/O 端口的时间以便更好地响应。为此,CPU 为每 个待状态提供了 1 个额外的周期。为避免总线冲突,所有向外部地址的写 操作均需要至少 2 个周期。 在程序的调试过程中,我们常用设置断点的方法判断局部功能模块能 否实现。若发现程序在尚未到达断点时就随机地停止运行,或仿真窗口出 现“Time out waiting for device ”红色告警字样的,可优先考虑调整待状态发 生器控制寄存器(WSGR)的设置。 许多初学者在学习例程时发现其中的 WSGR 值均设为 0000h(零等待状 态),就误以为在任何情况下都可行,这是很不可取的。在初次调试大型程 序时,会因为这个问题耗时不少,如将 WSGR 值由 0000h 改为 0002h 便可 顺利解决(将片外低端程序空间的读/写等状态数设为 2)。 在具体应用中,可根据实际用到的片外资源灵活调整 WSGR 相关位的 值。 (4)有效利用片内闪存(Flash Memory) 2407 一个显著优势是具备片内闪速存储器块。它具有可擦除、可编程 和非易失电源等特点。在复位期间,通过引脚 MP/MC 置为低电平可以选择 闪存。若未选之,则从片外存储器开始执行操作。 在利用 JTAG 进行硬件仿真时,有时会出现程序无法全速运行的情况。 这时不要总是在程序上冥思苦想,可以开阔思路从别处着手。若确信程序 流程没有什么问题,不妨试着将程序写入闪存运行。当仿真出现问题,但 程序烧入 Flash 运行后一切正常,这一现象的可能是实验板上的片外程序/ PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.com.cn
数据存储器的布线不够规范。调整布线重新制板后,程序在硬仿真时应该 就能全速运行。 还有一种情况正好与之相反。程序在仿真窗口里可以正常运行,写入 Flash 后却无法运行了。在这种情况下,建议程序员在程序初始阶段(如系 接着关中断 setc intm 之间)加一小段延时(几十 ms,根据情况可以增减), 可能会达到事半功倍的效果。 (5)密码区设置错误 由于 CMD 文件设置错误,可能将 Flash 内部 ROM 中的密码区(2407 中是 0040H-0043H)设置成数据区,这样烧写程序时 DSP 就可能将程序 中的某一数据当成要设置的密码写入密码区。如果不解决这个密码区问题 的话这一 DSP 就只能仿真不能再烧写了。解决这个问题的办法是找到当时 烧写的原程序,编绎并通过观测窗口察看内部 ROM 中的密码区即 0040H -0043H 地址内的值,这一值即为密码。记下即可进行解码。 以永磁同步电机控制程序为例。整个系统程序由头文件、命令文件、 汇编语言文件组成。其中,汇编语言文件包括主程序、子程序、中断服务 程序和假中断服务程序四大部分。子程序很多包括有:系统初始化子程序、 捕捉事件驱动模块、速度检测模块、相电流检测模块、光电编码器脉冲计 数模块、电流环的 PI 控制模块、速度环的 PI 控制模块、PARK变换、CLARKE 变换、旋转角度正弦函数表、空间矢量产生模块等等。这么多子程序如果 开始即组合一起运行,基本上这个系统是不能运行的。因此首先开始时一 定要对每一个模块分开调试通过,才能开始联机调试, 在实际调试过程中,大部分时间其实都在寻找问题所在,可能花费很 长时间找到这一问题之后其解决的方法却很简单,自己都搞明白为何如此 简单的问题却花这么长时间。因此实际操作中最艰难的并不在于如何解决 问题,而在于如何快速找到问题。而通常解决问题使用排除法+替代法, 先检测是硬件还是软件问题,如果是硬件问题,则分模块测试排除,找到 有问题模块所在,再分别测试这一问题模块的各个环节,这样便能逐步排 除、缩小范围,快速找到问题。 PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.com.cn
最后提醒各位: 1、焊好的板子一定要先仔细检查,不要轻易上电;通电前检查电源与地是 否短路,以免烧坏电路。 2、首次通电或电路有更改后应首先检查被供电设备供电端电压是否为期望 电压,以免损坏被供电器件(用万用表测量各点电压)。 3、实验板上电运行时,要经常查看各芯片的发热情况,发现过热现象应及 时断电并分析处理。 4、如果有多套供电,则先供上一部分,测得各点电压正常,再依次供上其 它部分,先给驱动信号供电再给动力侧供电。 5、遇到器件损坏,设备故障,一定不要惊慌着急,试想心发毛、思维混乱 还找什么问题。问题都出现了,后悔着急都没有用,当前需要做的最有价 值的事是找到这个问题、解决这个问题、如何在以后避免这个问题。因此 应该先冷静,再多思考,多观察,保证思路清晰,硬件问题有很多时候只 是一个很小的问题,一般是很难发现的。 一定要避免这样的理由:“我也不知道怎么弄的!” 切忌! PDF 文件使用 "pdfFactory Pro" 试用版本创建 www.fineprint.com.cn
分享到:
收藏