大家好,欢迎来到IT知识分享网。
文章目录
一、LAN8720A简介
LAN8720A是低功耗的10/100M以太网PHY芯片,支持通过RMII接口和MAC层通信。它包含一个全双工10-BASE-T/100BASE-TX收发器,支持10Mbps和100Mbps操作。可以自动协商以自动确定最佳速度和双工操作模式。支持 HPAuto-MDIX 自动翻转功能,无需更换网线即可将连接更改为直连或交又连接。特性如下:
- 10/100M
- 支持RMII接口
- 支持全双工和半双工
- 使用外部25M晶振,LAN8720A内部集成 PLL可以将25M倍频到50MHz参考时钟给MAC层使用
- 支持自协商模式 支持HPAuto-MDIX自动翻转
- 支持SMI串行管理接口
二、引脚说明
| 引脚 | 描述 |
|---|---|
| TX1 | PHY收发器发送的两位数据第1位数据发送引脚 |
| NC | 不连接 |
| TX_EN | 数据发送使能指示TXD[1:0]上存在有效的发送数据,用于控制发送数据的使能 |
| TX0 | PHY收发器发送的两位数据第0位数据发送引脚 |
| RX0 | PHY收发器接收的两位数据第0位数据接收引脚 |
| RX1 | PHY收发器接收的两位数据第1位数据接收引脚 |
| nINT/RETCLK | 中断输出低有效/参考时钟信号輸出 |
| CRS | 载波侦听/接收数据有效,用于指示是否检测到网络上的载波 |
| MDIO | 串行管理接口的输入输出引脚,用于读写PHY寄存器 |
| MDC | 串行管理接口的时钟引脚,用于同步数据传输 |
| VCC | 3.3V |
芯片管脚配置
示例演示
- 引脚接线
| ESP32 | LAN8720模块 |
|---|---|
| GPIO21 | TX_EN |
| GPIO19 | TX0 |
| GPIO22 | TX1 |
| GPIO25 | RX0 |
| GPIO26 | RX1 |
| GPIO27 | CRS |
| GPIO23 | MDC |
| GPIO18 | MDIO |
- 示例代码
#include <ETH.h> //引用以使用ETH #include <WiFiUdp.h> #define ETH_ADDR 1 #define ETH_POWER_PIN -1 #define ETH_MDC_PIN 23 #define ETH_MDIO_PIN 18 #define ETH_TYPE ETH_PHY_LAN8720 #define ETH_CLK_MODE ETH_CLOCK_GPIO17_OUT WiFiUDP Udp; //创建UDP对象 unsigned int localUdpPort = 2333; //本地端口号 void setup() {
Serial.begin(); Serial.println(); ETH.begin(ETH_ADDR, ETH_POWER_PIN, ETH_MDC_PIN, ETH_MDIO_PIN, ETH_TYPE, ETH_CLK_MODE); //启用ETH while(!((uint32_t)ETH.localIP())) //等待获取到IP {
} Serial.println("Connected"); Serial.print("IP Address:"); Serial.println(ETH.localIP()); Udp.begin(localUdpPort); //启用UDP监听以接收数据 } void loop() {
int packetSize = Udp.parsePacket(); //获取当前队首数据包长度 if (packetSize) //如果有数据可用 {
char buf[packetSize]; Udp.read(buf, packetSize); //读取当前包数据 Serial.println(); Serial.print("Received: "); Serial.println(buf); Serial.print("From IP: "); Serial.println(Udp.remoteIP()); Serial.print("From Port: "); Serial.println(Udp.remotePort()); Udp.beginPacket(Udp.remoteIP(), Udp.remotePort()); //准备发送数据 Udp.print("Received: "); //复制数据到发送缓存 Udp.write((const uint8_t*)buf, packetSize); //复制数据到发送缓存 Udp.endPacket(); //发送数据 } }
- 示例结果
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/119917.html

