CBM-HARDWARE-TEST:以太网通信调试

文章详细描述了在进行网络通信的原理图设计中遇到的LAN8720A初始化失败和RJ45相关问题。通过检查芯片寄存器和电路,发现并修复了复位管脚驱动能力不足的问题,更换RJ45封装后的引脚顺序错误也得到了解决,从而成功建立了网络连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原理图设计:

 

程序:

CBM-TEST-CODE-网络通信

调试环境:

主控板与网口插座板通过双排线连接,串口连电脑串口调试助手。

路由器连接网线(可以是校园网,宿舍或者实验室网口引线),然后板卡网口与路由器通过网线连接(这种方式主要针对于使用了没有网口的笔记本电脑),笔记本电脑连接路由器WiFi,这样电脑与板卡就建立了连接。

上电前将网线插上板卡,初始化过程通过串口调试助手显示:

 LwIP Init主要包括LAN8720A初始化、网卡初始化,其次是DHCP分配,如果前面这几部都成功,板卡会得到由路由器DHCP分配的一个IP地址和端口;得到IP之后,可以先在电脑上Ping一下该IP,如果可以Ping通,基本上网络连接已经建立。接下来在笔记本电脑上打开网络调试助手,以电脑作为TCP Client,板卡作为TCP Server为例,本程序通过串口调试助手发送1,设置板卡进入TCP Server Test,然后网口调试助手代表电脑,设置为TCP Client模式,远程主机地址和端口即板卡IP和端口,启动后即可建立连接:

RJ45LED指示,绿灯常亮,代表自动协商结果为网速100M,黄灯闪烁,代表链路接通的网络活动状态。

调试过程中主要出现的问题:

1. LAN8720A初始化不成功:

本调试程序在正点原子例程的基础上修改而来,一开始调试时LwIP一直都可以成功,并且可以显示自动协商得到的网速,因此我一直以为芯片初始化是没有问题的,但DHCP却一直超时,后边网上搜发现程序中判断初始化成功的逻辑有些弱,最好直接读LAN8720A寄存器的值,如果读出来是0x0000或者0xFFFF则说明芯片并没有正常工作。读寄存器之后,果然都是0xFFFF,说明芯片这部分有问题,于是重新检查LAN8720A各个管脚状态,发现复位管脚的高电平没拉上去,只有不到1V,这会使得芯片不断处于复位状态,而这个高电平是主控的IO控制三极管开关产生的,再往前查看主控IO状态,高电平也是没有拉上去,结合调试经验,应该是该管脚驱动能力不足,导致三极管不能正常输出,于是将串联电阻R9阻值由0Ω更换为100K,然后高电平输出正常,再去读芯片寄存器值,都与开发板相同,基本可判断这部分没啥问题了。

2. RJ45部分电路有错

选用的封装不一样了,引脚顺序有所改变,因此刚开始出现了短路和网口LED不亮等情况。

本实验中RJ45采用了直插式HR915310A,引脚顺序与常见的卧插式HR911105A有所不同,其原理图对比如下:

 左图为HR911105A,右图为HR915310A,原理图设计时需注意引脚变化。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值