LAN8720A网络模块的使用问题
一、LAN8720A模块驱动电路
最近在调试STM32F4驱动LAN8720A网络模块,在做方案前参考是正点原子的LAN8720A的驱动电路方案,但是从网上买回来的LAN8720A模块用正点原子的例程一直驱动不起来,在windows系统下一直都ping不通,后面对比正点原子的LAN8720A与网上买回来的微雪LAN8720A模块的电路有差异。 下图为网上买回来微雪的LAN8720A驱动电路: 下图为正点原子LAN8720A驱动电路: 根据LAN8720A的数据手册后发现下面2个不同点: 1、PHY Address Configuration 有关于LAN8720A的PHY address,由上图中正点原子的LAN8720A中PHYAD0的引脚是悬空的,说明PHY address默认为0,而微雪的LAN8720A中PHYAD0的引脚是上拉到高电平,所以PHY address为1。如果使用正点原子的例程来驱动,则需要修改LAN8720_PHY_ADDRESS的值后模块才可以正常的通讯。
rval=ETH_Init(Ð_InitStructure,LAN8720_PHY_ADDRESS); #define LAN8720_PHY_ADDRESS 0x01 //LAN8720 PHY address
2、nINTSEL Configuration 从原理图中可以看出正点原子的LAN8720A模块所使用的晶振是25M,而微雪的LAN8720A模块使用的晶振是50M,根据数据手册和结合原理图可以看出, 微雪的LAN8720A的nINTSEL没有接下拉,则是默认使用内部上拉到高电平,即nINTSEL=1,为REF_CLK In Mode模式,所以选用50M的晶振。 正点原子的LAN8720A的nINTSEL是下拉到GND,即nINTSEL=0,为下图中的REF_CLK Out Mode模式,所以选用25M的晶振可以倍频到50M,可以节省成本。
二、参考文档
by 羊羊得亿 2017-10-26 ShenZhen
一、LAN8720A模块驱动电路 最近在调试STM32F4驱动LAN8720A网络模块,在做方案前参考是正点原子的LAN8720A的驱动电路方案,但是从网上买回来的LAN8720A模块用正点原子的例程一直驱动不起来,在windows系统下一直都ping不通,后面对比正点原子的LAN8720A与网上买回来的微雪LAN8720A模块的电路有差异。 下图为网上买回来微雪的LAN8720A驱动电路: 下图为正点原子LAN8720A驱动电路: 根据LAN8720A的数据手册后发现下面2个不同点: 1、PHY Address Configuration 有关于LAN8720A的PHY address,由上图中正点原子的LAN8720A中PHYAD0的引脚是悬空的,说明PHY address默认为0,而微雪的LAN8720A中PHYAD0的引脚是上拉到高电平,所以PHY address为1。如果使用正点原子的例程来驱动,则需要修改LAN8720_PHY_ADDRESS的值后模块才可以正常的通讯。 rval=ETH_Init(Ð_InitStructure,LAN8720_PHY_ADDRESS); #define LAN8720_PHY_ADDRESS 0x01 //LAN8720 PHY address 2、nINTSEL Configuration 从原理图中可以看出正点原子的LAN8720A模块所使用的晶振是25M,而微雪的LAN8720A模块使用的晶振是50M,根据数据手册和结合原理图可以看出, 微雪的LAN8720A的nINTSEL没有接下拉,则是默认使用内部上拉到高电平,即nINTSEL=1,为REF_CLK In Mode模式,所以选用50M的晶振。 正点原子的LAN8720A的nINTSEL是下拉到GND,即nINTSEL=0,为下图中的REF_CLK Out Mode模式,所以选用25M的晶振可以倍频到50M,可以节省成本。 二、参考文档 by 羊羊得亿 2017-10-26 ShenZhen