首先简单介绍一下LAN8720这款芯片
图1
这是一款封装很小,支持RMII接口的10M/100M以太网PHY芯片,支持HP-Auto-MDIX自动翻转功能。
RMII?可能没接触过的小伙伴不知道是什么意思?简单来说,RMII是一种接口,它比MII接口有更少的I/O传输。在数据的收发上它比MII接口少了一半的信号线。
RMII所有的数据端口公用一个时钟用于所有端口的收发 ,这里就节省了不少的端口数目。
RMII的一个端口要求7个数据线 ,比MII少了一半,所以交换机能够接入多一倍数据的端口。
功能框图如下
图2 功能框图
支持全双工和半双工模式
有两个状态的LED灯输出
可使用25MHz的晶振来降低成本
我们测试发现的问题有两个:
1.REFCLKO引脚功能配置
2.1.2V内部稳压器配置
一、问题记录
1.nINT/REFCLKO引脚功能配置错误
为了降低成本,我们用的是25MHz的晶振,理论上芯片内部会倍频一个50MHz的频率送给单片机。如下图
图三 25M晶振电路
实际上,我们没有检测到50MHz的频率。
2.内部稳压器1.2V配置错误
我们使用的是1.2V内部稳压器。但在实际测试时,并没有测到1.2V电压。
二、分析问题
查看手册,得到两个关键信息
1.nINT/REFCLKO引脚可以作为中断输出或者参考时钟输出。通过LED2引脚设置,LED2引脚的值在芯片复位后,被LAN8720读取。
当该引脚上拉(或浮空,内置上拉电阻),那么nINT/REFCLKO引脚为中断输出,当该引脚接下拉电阻,nINT/REFCLKO引脚为时钟输出。
实际上我们的设计是这样的
图四 LED的错误配置电路
我们选择nINT/REFCLKO引脚为时钟输出,LED2应该被下拉。
在时钟输出模式下,可以外接25MHz的晶振,通过内部倍频到50MHz,然后通过REFCLKO引脚输出50MHz参考时钟给MAC控制。
也可以直接外接50MHz的晶振,然后通过一个阻值较小的电阻直接送给REFCLKO。
图五 50MHz晶振的配置电路
2.芯片需要1.2V给VDDCR供电,不过芯片内部集成了1.2V稳压器,可以通过LED1来配置是否使用内部稳压器。当不使用内部稳压器的时候,必须外供1.2V电源。
通过这两个重要信息得出:
LED1和LED2的配置方式是多么的重要。简单说50MHz的时钟输出和参考电压1.2V都是通过这两个引脚来配置的。
三、解决问题
LED1和LED2的供电断开,芯片引脚接10K下拉电阻,如下图。这时候1.2V电压和50MHz的频率都有了。
图六 LED的正确配置电路
调试成功后,LED2常亮,LED1会不停的闪烁。
小技巧分享一下
该芯片封装特别小,中间焊盘部分是接地的,焊接的时候很容易跟旁边的引脚短路,可以将中间部分挖孔,多余的焊锡就会从板子背面溢出。
图七 LAN8720封装
以上是今天分享的内容,希望对你有帮助。