一、测试目的
通过板卡板载的用户LED灯测试芯片GPIO的输出功能。因为LED灯是系统也会用到的外设资源,对应的LED控制引脚的GPIO在工作模式上已经配置完成,用户可以直接对对应的文件写入对应的值控制LED的亮灭状态来进行测试。
二、原理图
在硬件资料链接中可以下载到名为beaglebone-black-master的压缩文件,其中BBB_SCH.pdf文件是BEAGLEBONE BLK REV C AM3358BZCZ的硬件原理图。

打开后可以找到LED对应的原理图。

可以看到总共有四个用户LED灯,通过共阳的方法进行连接。四个LED灯对应的控制引脚分别为USR0、USR1、USR2和USR3。物料编号是D2、D3、D4和D5。D1其实也是对应着LED灯的,只不过是电源指示灯,无法控制亮灭。四个用户LED灯对应的控制引脚在主控芯片AM3358BZCZ中对应的引脚如下图

对应板卡的位置如下

丝印与原理图是一一对应的,只不过因为板卡大小的原因,丝印不是那么容易看出来的。
三、指令控制
用户LED灯对应的文件路径为/sys/class/leds,文件夹名称如下

四个LED灯对应的文件夹名称分别为beaglebone:green:usr0、beaglebone:green:usr1、beaglebone:green:usr2和beaglebone:green:usr3。通过文件夹名称的内容可以看出系统把这四个LED灯定义为绿色的,但实际情况为蓝色的,不过可以忽略这个错误,也不影响后续的测试。以USR0为例,查看beaglebone:green:usr0文件夹下的文件内容如下图

其中brightness文件控制亮灭;max_brightness控制最大亮度;trigger控制触发模式。

通过查看权限可以看到文件brightness、trigger和文件uevent可以读写,文件max_brightness只能读取。

查看max_brightness文件可以看到值为1,说明板载的LED灯只能控制亮灭,不能控制其亮度。
如果想控制LED灯的亮灭还需要取消其默认触发,对应的指令为
echo none > /sys/class/leds/beaglebone:green:usr0/trigger
之后就可以通过修改brightness和trigger控制其亮灭和闪烁。让LED灯亮的指令为
echo 1 > /sys/class/leds/beaglebone:green:usr0/brightness

让LED灯灭的指令为
echo 0 > /sys/class/leds/beaglebone:green:usr0/brightness

让LED灯闪烁的指令为
echo heartbeat > /sys/class/leds/beaglebone:green:usr0/trigger
也是修复其默认触发,在默认情况下USR0是会一直在闪烁的。
我要赚赏金
