DSP系统硬件电路板的故障排查
自己焊接装配的电路板,刚装配完成的时候,一般都会存在各种故障。查找故障的部位,是电子工程师的基本功。 第一步,一个 DSP电路板刚装配完,必须先排除电路板的硬故障,比如电流异常,芯片发热,DSP始终处于复位状态,振荡器没有起振等。这些故障没有“放之四海而皆准”的方法,每个人遇到的情况都会不一样。一般来说,把所有的引脚重新焊一遍,可以解决大部分故障。 第二步,看仿真器能否与目标板连接。把PC机与仿真器连接(要保证仿真器已经正确驱动) ,仿真器与目标电路板正确连接,目标板通电。这些硬件操作完成后,再启动CCS(要保证CCS已经按照目标板的芯片型号进行了设置) 。几秒种后,如果已经正确连接,在 CCS界面的左下角会出现“目标板已经连接”的提示。当然还有其他的提示方式,
比如弹出汇编语言窗口等。如果仿真器无法成功与目标板连接,就说明目标板上有故障。据笔者的经验,一般是 JTAG 接口的几条线上有短路或断路,数据线、地址线上有短路或断路,READY信号错误。 第三步,这时就可以调试我们的程序了。当我们把程序编译完成,通过 CCS 开发平台的“load program”命令,把代码调入外扩 SRAM的时候,经常会遇到错误告警,说在某地址处出现“校验错误” 。这大多是因为地址总线、数据总线,或者控制线的虚焊、短路引起的,主要发生在 DSP 芯片的总线管脚、电平转换芯片的管脚,及片外存储器的
管脚上;或者片选逻辑电路有错误。CCS 把代码写入 SRAM 之后,会逐个单元读出,与原始数据进行比较,如果二者不相同,就会提示这样的错误。 遇到这个问题怎么办呢?这里介绍一个用软件去查找硬件故障的方法,非常有效。
前面说过,DSP的最小系统不需要外扩任何存储器,其自身的存储器足够运行在仿真器状态,或脱离仿真器的状态。我们可以利用这个特点,把外扩的SRAM或其他外设,都作为外设来操作,用软件生成一些有规律的波形,帮助我们定位故障的部位。具体操作如下: a、编写一段程序,向外扩 SRAM的存储单元里,按地址顺序,依次写入连续变化的数据,象下面这段程序:
unsigned int i,*R;
for ( i = 0x8000; i <= 0xFFFF; i++ )
{
R = ( unsigned int *) i;
*R = i;
}
这里的0x8000 ~ 0xFFFF是外扩的数据存储器的地址。无条件地、反复地运行这段程序,就会在地址线、数据线上产生连续的方波,最低位的 A0 和 D0 的周期最短、频率最高,A1和D1的周期分别是 A0、D0 的两倍,A2、D2是 A1、D1的两倍,依次类推。
b、在 CMD文件中,把这段程序定位在片内程序空间的 RAM 类存储器中,而不是外扩的存储器, 就是前面说的思路: 利用 DSP的最小系统, 把外扩 RAM 作为外设来操作。
c、在仿真状态下,全速运行,用示波器检查所有数据总线、地址总线、控制总线和片选信号的波形,顺藤摸瓜,就能查到故障位置。 |