1285|1

2939

帖子

0

TA的资源

五彩晶圆(中级)

楼主
 

【BIGTREETECH CB1】控制网口指示灯的亮灭和亮度 [复制链接]

 

    BIGTREETECH CB1开发板上有一个百兆网口,网口有2个指示灯,这2个指示灯在没有网线插入的状态下是常亮的,而我又是用WiFi进行通讯和调试,根本不用有线网口,那这2个网口指示灯就显得有些“碍眼”,如果能控制这2个LED灯的亮灭甚至是亮度,就能显示系统或者程序的某些状态,就能起到通知作用。

绿灯和黄灯的作用:
关于以太网口的指示灯的形式和指示功能,并没有统一的成文标准规定,但是灯的作用是显示网络是否正常工作的。
绿灯:绿色灯表示Link up,即绿色灯常亮代表网口连接正常。
黄灯:黄色灯表示Activity,即闪烁代表有数据传输。

这次的软件我选择用busybox中的devmem

链接已隐藏,如需查看请登录或者注册
介绍:
BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例grep、find、mount以及telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 Linux 系统的自带的shell。

devmem软件介绍:
在调试中常有直接操作寄存器或者某一物理地址的需求,Busybox中提供了devmem。通过它可以读写物理内存。它的实现借助mmap和/dev/mem,通过mmap将/dev/mem物理地址映射到用户空间,devmem就可以像操作虚拟地址一样进行读写。

/dev/mem介绍:
/dev/mem是物理内存的全镜像。可以用来访问物理内存,可以直接读取和修改寄存器的值,通过读写内存的方式操作GPIO寄存器,使用起来速度比sysfs方式更快。

1,安装devmem
devmem有2个版本,一个是BusyBox软件合集中,名字叫做devmem,另一个叫devmem2,但在Debian中我试验安装了devmem2是不能正常使用的,部分寄存器无法读取,后来查资料发现是系统的问题,见这里“devmem2在Debian上的Bug

所以我这里就只能安装BusyBox软件了。
sudo apt-get install busybox

2,查找硬件电路图
RJ45网口电路

连接器接口底板

连接器接口核心板

处理器IO

经过查询电路可知,网口绿灯由PH3控制,网口黄灯由PH2控制,低电平有效。

3,查询需要设置的寄存器
devmem控制网口指示灯,需要设置的寄存器有:
GPIO基地址0x0300B000

PH_CFG0 (Offset: 0x00FC)PH Configure Register 0 (Default Value: 0x7777_7777)
PH口功能配置寄存器 地址为0x0300B0FC

PH_DAT (Offset: 0x010C)PH Data Register (Default Value: 0x0000_0000)
PH口数据寄存器 地址为0x0300B10C

PH_DRV0 (Offset: 0x110) PH Multi-Driving Register 0 (Default Value: 0x0015_5555)
PH口多重驱动等级寄存器 地址为0x0300B110

先读一下这3个寄存器,看看值是多少

0x77177722---后面数第2,3位是设置PH2,PH3的功能,7代表IO禁止,将它改为1,输出功能。
0x00000000---比特位代表数值,所以PH2,PH3要置1的话要设成0x0000000C
0x00155555---比特位的4,5位代表PH2的驱动能力,比特位的6,7位代表PH3的驱动能力。经过测试比特位设置为00时LED为最亮,设置为11时LED关闭。
编写一个小脚本来循环显示LED亮度。
#----------------------------------------------------
#!/bin/bash
sudo busybox devmem 0x0300B0FC w 0x77171122
sudo busybox devmem 0x0300B10C w 0x0000000C
while [ ture ]
do
  sudo busybox devmem 0x0300B110 w 0x00155505
  sleep 0.5s
  sudo busybox devmem 0x0300B110 w 0x00155555
  sleep 0.5s
  sudo busybox devmem 0x0300B110 w 0x001555A5
  sleep 0.5s
  sudo busybox devmem 0x0300B110 w 0x001555F5
  sleep 0.5s
done
#-----------------------------------------------------
视频:

led

 

总结:
这次试验让我了解devmem这个软件的强大,可以直接读取,修改寄存器,内存等,是非常好的一款调试工具,但是不能胡乱修改,要不系统的部分功能可能丧失或系统死机。这次可以控制网口LED的亮度是因为H616有Multi-Driving Register寄存器,如果其他的CPU没有的话就只能用这方法控制LED亮灭了。网口的LED和亮灭和网口的功能没有关系,如果LED关闭,插上网线还是可以正常联网的,就是没有了LED指示了。

最新回复

厉害,学些了。!!!!!   详情 回复 发表于 2023-2-2 10:46
点赞 关注
 
 

回复
举报

653

帖子

1

TA的资源

纯净的硅(中级)

沙发
 

厉害,学些了。!!!!!

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
CES评最佳创新产品奖 35款产品亮相(2)

本帖最后由 jameswangsynnex 于 2015-3-3 20:00 编辑

Linux使用技巧集

10756

[MSP430 学习笔记] 晶体振荡器的负载电容

最近有童靴在问如何确定MSP430的晶体负载电容,一般来讲,大家都是在用一些经验值,对其原理也不是特别清楚。 有兴趣的同学可以看 ...

从零开始点亮LED灯

本帖最后由 微末凡尘 于 2014-7-27 01:03 编辑 ...

Fly-Buck 转换器 PCB 布局技巧

同步降压转换器已作为隔离式偏置电源在通信及工业市场得到认可。隔离式降压转换器或者通常所谓的 Fly-Buck 转换器,采用一个耦合 ...

【拓普微智能显示模块】四:串口交互以及曲线、绘图板、动画控件的应用

本帖最后由 数码小叶 于 2021-11-21 12:00 编辑 上一篇已经使用SGTools产生了一个简单的界面,所以对于SGTools来说,简单使用 ...

功率变换开关技术(修订版)电力电子的核心理论

电力电子技术在电力系统、新能源发电、电动汽车、电力牵引以及家用电器等众多领域快速发展,电力电子化已成为一种发展趋势,然而 ...

功率放大器在水下主动电场物体形状成像系统的应用

功率放大器在水下主动电场物体形状成像系统的应用

器件选型——TVS管选型一般要注意哪些参数?

642279642280 这是我找的一份TVS的规格书, 问题1: 想请教一下大家平时在进行TVS选型的时候比较关注哪些参数? ...

Mecha Lab 防生手臂中的手指运动用的是什么方案?

好久之前看到了这个手臂演示,属实是惊艳到了我,我们公司也想搞一个活动的手臂,有人知道它这个手指运动用的是什么方案吗? ...

关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表