一、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,可以節省成本。

二、參考文檔
http://ww1.microchip.com/downloads/en/DeviceDoc/8720a.pdf
http://www.waveshare.net/wiki/LAN8720_ETH_Board
by 羊羊得億
2017-10-26 ShenZhen
