科技永远的保持着比谁都要快一步的方式,进行不可超越的速度发展。如今的电路测试的技术也是更新迭代,比起现在的新技术测试,老技术反而是一种挑战。
虽然现代的可程序化组件透过JTAG或SPI接口很容易实现电路测试(tested in circuit,或称「在线测试」),但测试较老的组件就没这么方便了。
一个大型有线数字电话交换系统,这些系统最早是在1980年代初期设计的,但目前在美国各地仍能看到这些系统提供服务,因此需要经常维护和修理。其中,经常需要维修的板卡是音频产生卡(tone generaTIon card),负责产生电话系统中用到的所有声音频号,比如铃声、忙线音、双音多频信号(DTMF)和多频(MF)信号音。
这些声音的产生是透过将数字化的声音片段组合成完整的复合音;这片音频产生卡上共有6颗采用24pin DIP封装的老式1k×8可程序只读存储器(PROM),声音片段就储存在这些PROM内。这片板卡最常见的问题,是其中一颗PROM上的某个单元出现故障,但由于电路配置的原因,除非从板子上把PROM拔下来然后用编程器一颗颗读,根本无法得知道是那一颗故障。
还好这些PROM都是插在板子上,比较容易拔;但毕竟已经待在原位许多年,有时也不太容易移动;无论如何,损坏良好PROM的风险很高,而且移除、测试和替换的工作十分繁琐耗时。本设计实例分享一种电路测试器,可以夹在每颗PROM上进行测试,不用将RPOM从电路板上拔下;PCB板上有一个测试点(test point),它能够禁用PROM的地址驱动器(address driver),所以其接取完全受测试电路控制。
只要将该测试点接地,测试器就可以依次安装到每颗PROM上;该测试器上有一颗PIC16F887微控制器,透过计算纵向检查总和(longitudinal checksum)验证PROM,将计算出来的检查总和与6个已知的正确检查总和值进行比对。
如果能匹配,6颗绿色LED灯中的一颗就会点亮,显示发现一颗良好PROM并做为辨识(这是很有用的,我就曾经插错过PROM);如果检查总和都不匹配,则是会点亮红色LED灯,显示测试器连接的是一颗故障/无法识别的PROM。
该测试器的电路是用Diptrace设计的,软件码则是用Microchip的MPLABX开发。
测试器PCB连接到一个24接脚的DIP测试夹具;测试夹的一排接脚以穿透方式插入电路板,另一排接脚则以电线连接电路板,因此可以用挤压方式张开。电路在测试中从电路板汲取店员,也可以透过6脚插头(header)连接到5V电源,用以测试平台上松散排列的PROM。
测试器的电路很简单(参考图1):10位PROM地址总线与PIC上的8位PORTA以及2位PORT E链接,PROM数据输出链接至PORTD;LED连到PORTC,6脚插头用于将PIC连接到PICkit编程模块进行程序下载。
图1 PROM测试器内部电路图。
在上电重置后,程序设定端口并初始化变量,然后进入无限回路(infinite loop)。首先清除LED状态,然后逐个读取所有1k地址,同时将从每个地址读出的数据逐步累计;在读完整个地址范围时,累计总值就等于待测PROM的纵向检查总和。
将这个值与6个已知正确的检查总和进行比较;如果发现匹配,相应的绿色LED就被点亮。如果未找到有效的检查总和,则是亮红色LED灯 (图2)。延迟回路将插入一个暂停,然后程序返回到回路的起点,将LED关闭;这样相对应的LED就会发出我们想要的闪烁状态——确认电路在正常运作。
图2 PROM电路测试器运作机制。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)