概述
LED 测试是简单直接的,就是确认其能够控制点亮和熄灭。是的,熄灭也要确认,以防电路存在问题。如果短路等原因造成 LED 持续点亮,那这个 LED 就是废的了。
下面分别对几种不同的 LED 设计进行讲解。
电源 LED
通常为红色,电源通上就亮起。测试方法就是,通上电源,检查确认红色亮起。
USER LED
这种 LED,我们可以编写程序循环控制其亮灭变化,让测试员随时观察。
在 Linux 中常规用户灯会生成设备节点用户控制,比如执行如下命令就可以让其持续闪烁:
echo heartbeat > /sys/class/leds/user-led0/trigger
但在 Linux 系统中还有两个 LED 比较特别,是在核心板的两个由内核控制的状态灯。从硬件设计角度来说也是用户灯,但这里内核有特殊用途:用作内核心跳与数据读写提示。那么对于这两个灯,测试定制的内核,通过配置设备树等方式把他们统一改为心跳灯,供用户随时观察判断。
至于 DSP、FPGA 处理器引出的用户灯,那就要对应的测试程序进行循环控制亮灭了。
DONE 指示 LED
这个是指 FPGA 特有的配置文件(程序镜像)加载完成指示灯。那就在测试程序加载完成后由测试员观察判断。
断开指示 LED
这个是纯硬件设计,用于指示设备状态。如光模块断开指示灯,当模块连接不稳定或拔出时模块触发 TX_FAULT 信号,此时对应的指示灯亮起。那么测试方法就是在完成光模块测试之后,由测试员手动拔出(支持热插拔)模块,确认 LED 亮起。
充电指示 LED
这个也是纯硬件设计实现功能的指示灯。当板卡接入电源适配器,电池电路未满时将自动进行充电,此时触发该 LED 亮起。测试方法是确保电池未充满电,接入适配器,确认指示灯亮起。确保电池未充满电是关键,可能需要适用负载器对电池进行放电后再用于测试。
展望
以上 LED 测试都需要测试员参与逐个检查确认,比较麻烦。要想实现全自动化,可考虑采用光线识别模块进行判别。不过这只是一个思路,暂未有实践。