• 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(&ETH_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,可以节省成本。

    二、参考文档

    http://ww1.microchip.com/downloads/en/DeviceDoc/8720a.pdf
    http://www.waveshare.net/wiki/LAN8720_ETH_Board

    by 羊羊得亿
    2017-10-26 ShenZhen

  • 相关阅读:
    Java实现交替字符串
    Java实现交替字符串
    Java实现格子取数问题
    Java实现格子取数问题
    Java实现格子取数问题
    Java实现格子取数问题
    Java实现格子取数问题
    主要C++流派,看看你是哪一流
    WPF与WinForm的抉择
    编译icu库(用到了cygwin)
  • 原文地址:https://www.cnblogs.com/yangxuli/p/7738431.html
Copyright © 2020-2023  润新知