注意:LAN8720A 可以通过 PHYAD0 引脚来配置,该引脚与 RXER 引脚复用,芯片内部自带下拉电阻,当硬复位结束后, LAN8720A 会读取该引脚电平,作为器件的 SMI 地址,接下拉电阻时(浮空也可以,因为芯片内部自带了下拉电阻),设置 SMI 地址为 0,当外接上拉电阻后,可以设置为 1。本硬件RXER引脚浮空,其PHY芯片地址为0。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vLaPBljp-1594628568210)(https://github.com/sangeren1002/Notes/blob/master/cubemx/image/LWIP/cubemx_lwip_eth_config_3.png?raw=true)]
ETH参数设置需要根据芯片手册来确定部分数据
PHY芯片的配置需要注意以下几项: ETH配置中的高级参数配置 PHY参数user PHY,CUBEMX默认选择的是LAN8742A_PHY_ADDRESS。PHY参数PHY Address Value,设置为0,这个值需要根据硬件连接来确定(LAN8720A 可以通过 PHYAD0 引脚来配置,该引脚与 RXER 引脚复用,芯片内部自带下拉电阻,当硬复位结束后, LAN8720A 会读取该引脚电平,作为器件的 SMI 地址,接下拉电阻时(浮空也可以,因为芯片内部自带了下拉电阻),设置 SMI 地址为 0,当外接上拉电阻后,可以设置为 1。本硬件RXER引脚浮空,其PHY芯片地址为0)。PHY参数PHY name,是一个标识符,可以随便设置,我这里设置的是LAN8720A。 高级参数配置的最后三项参数设置需要根据芯片手册来设定 参数PHY special control/status register Offset,根据芯片手册看到是十进制31。参数PHY Speed mask,根据芯片手册看到是[bit3:bit2]表示速度掩码。参数PHY Duplex mask,根据芯片手册看到是[bit4]表示工作方式是全双工还是半双工掩码。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1uEIcqXx-1594628568215)(https://github.com/sangeren1002/Notes/blob/master/cubemx/image/LWIP/cubemx_lwip_lwip_config_1.png?raw=true)]
是否存在已经在工程中设置ip地址为192.168.0.100,MAC地址为00:80:E1:00:00:00的设备。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-22nm4Xpl-1594628568219)(https://github.com/sangeren1002/Notes/blob/master/cubemx/image/LWIP/cubemx_lwip_tplink.png?raw=true)] 可以看到IP地址和MAC地址符合我们代码中设置的。
ping设置的IP地址192.168.0.100看能否ping通
可以看到IP地址可以ping通,延时不超过1ms。
代码上传图片上传csdn出现转存失败不显示,所有图片在下方,可以对比自己找一下吧,排序比较麻烦,反正直接看源码更加直接