以太网PHY层芯片LAN8720的那些事

LAN8720A 是低功耗的 10/100M 以太网 PHY 层芯片, I/O 引脚电压符合 IEEE802.3-2005 标 准,支持通过 RMII 接口与以太网 MAC 层通信,内置 10-BASE-T/100BASE-TX 全双工传输模 块,支持 10Mbps 和 100Mbps。
近期因为尝试为ESP32添加以太网接入,使用了这块芯片,积累了一些经验。
LAN8720_1.png
LAN8720A 可以通过自协商的方式与目的主机最佳的连接方式(速度和双工模式),支持 HP Auto-MDIX 自动翻转功能,无需更换网线即可将连接更改为直连或交叉连接。 LAN8720A 的主要特点如下:
高性能的 10/100M 以太网传输模块
支持 RMII 接口以减少引脚数
支持全双工和半双工模式
两个状态 LED 输出
可以使用 25M 晶振以降低成本
支持自协商模式
支持 HP Auto-MDIX 自动翻转功能
支持 SMI 串行管理接口
支持 MAC 接口

因为千兆的普及,这块芯片的价格已经降到1块多。

其中有几个要注意的问题:
1、接地。该芯片采用QFN-24封装,GND是芯片的底部焊盘,没有额外的GND引脚,所以焊接的时候格外考验焊工。我的经验是先用电烙铁上一层薄锡,再用热风枪380°风速3.5吹,焊盘摆正后用镊子轻推能够自动回位表示底部焊盘已经充分融化连接;随后再用电烙铁补引脚拖锡,最后可以万用表确认连接情况。

微信图片_20200311171554.jpg

2、电源隔离。LAN8720的VCC电压为3.3V,如果使用线性稳压电源就不用考虑这一步。如果采用LM2596等开关电源供电,需要考虑在电源前安装一颗磁珠电阻,滤掉150KHz高频干扰(LM2596假货太多,多半是2576的打磨片,2576振荡频率是50KHz)。我采用的稳压芯片是圣邦微SGM6232YPS8G,开关频率为1.4MHz,所以并没有使用磁珠进行电源隔离。顺便贴上SGM6232YPS8G的12V转3.3V电路:
SGM6232YPS8G.png

3、PHY芯片地址设置。LAN8720可以通过PHYAD0引脚来配置,该引脚与RXER引脚复用,芯片内部自带下拉电阻,当硬复位结束后, LAN8720A 会读取该引脚电平,作为器件的 SMI 地址,接下拉电阻时(浮空也可以,因为芯片内部自带了下拉电阻),设置 SMI 地址为 0,当外接上拉电阻后,可以设置为 1。我使用时引脚浮空,即设置 LAN8720 地址为 0。
微信截图_20200311172744.png

4、nINT/REFCLKO 引脚功能配置。nINT/REFCLKO 引脚可以用作中断输出,或者参考时钟输出。通过 LED2(nINTSEL)引脚设置, LED2 引脚的值在芯片复位后,被LAN8720读取,当该引脚接上拉电阻(或浮空,内置上拉电阻),那么正常工作后,nINT/REFCLKO 引脚将作为中断输出引脚(选中REF_CLKIN模式)。当该引脚接下拉电阻时,正常工作后, nINT/REFCLKO 引脚将作为参考时钟输出(选中REF_CLK OUT模式)。在REF_CLK IN模式,外部必须提供50Mhz参考时钟给LAN8720的XTAL1(CLKIN)引脚。在REF_CLK OUT模式, LAN8720可以外接25Mhz石英晶振,通过内部倍频到 50Mhz,然后通过 REFCLKO 引脚,输出 50Mhz 参考时钟给 MAC 控制器。这种方式,可以降低 BOM成本。我使用时将LED2悬空,即REF_CLKIN模式,由ESP32的GPIO口输出50MHz的时钟信号。

5、RJ45网口插座相关问题。为nINT/REFCLKO选择不同的模式时,应当注意与RJ45的连接方式,连接错误会导致网口LED灯反相。我选择的RJ45插座是HR911105A。
微信截图_20200311172720.png

我来吐槽

*

*