For a project I need to integrate Ethernet with PIC32MX795F512L. For this I had two choices. I thought of purchasing this Waveshare LAN8720 module and directly using its pins to the pins of MCU or using the LAN8720 IC provided by Microchip and design the circuit.
I looked at the Schematic of wavshare board and the schematic of LAN8720 IC provided by Microchip and found a many difference in the schematics of both so thought of raising the question.

If we look at the schematic of waveshare, PIN 14 which is nINT/REFCLK is not pulled up to 3.3v whereas in Microchip schematic it is pulled up to 3.3v. Also the RXD1,RXD0 are not pulled up to 3.3v whereas in Microchip schematic it is pulled to 3.3v. Resistors R11 R12 R14 have different value if we compare it to Microchips schematic.

I am planning to purchase the waveshare module and use it in the project. Will it work properly given the conditions above.?

Need help. Thanks.!

  • \$\begingroup\$ I don't think there will be any problem in waveshare module. If you have any dev board then try interfacing it by using library provided by microchip. \$\endgroup\$ Jan 7, 2016 at 10:59

1 Answer 1


The LAN8720A RXD0, RXD1, and CRS_DV pins configure various modes of the PHY on reset. Respectively, these pins are MODE[0], MODE[1], and MODE[2].

Since your Microchip schematic shows RXD0, RXD1, and CRS_DV pulled up, this will configure the LAN8720 for MODE[2:0]=111, as noted in the schematic. This configured the PHY for full auto-negotiation. When left floating, these pins are pulled up internally.

The nINT pin is also used as a configuration pin, nINTSEL. When nINTSEL/nINT is pulled low, it will become a 50 MHz RMII REF_CLK output, REFCLKO. The LAN8720 chip receives its clock from a 25 MHz crystal oscillator, and generates the 50 MHz clock needed for RMII. When nINTSEL/nINT is floating or pulled high internally, the pin is configured as nINT. The LAN8720 does not generate a 50 MHz RMII clock, but instead must receive a 50 MHz clock from an external source.

The Waveshare board schematic does not show configuration resistors on MODE[2:0] (CRS_DV, RXD1, and RXD0, respectively) or nINTSEL (nINT). If you do not apply the configuration pulling resistors on your board, then the internal pull-ups on the LAN8720 apply and the Waveshare board will default as follows:

  • MODE[2:0]=111 Full auto-negotiation
  • nINTSEL=1 nINT acts as an interrupt, the LAN8720 will not output 50 MHz RMII clock.

Therefore, the Waveshare board should configure into the same mode as the LAN8720 reference schematic. However, the section of the LAN8720 datasheet regarding Configuration Straps recommends adding external pull-up resistors to augment the internal resistor when the pin will be connected to a load. This is to ensure that the pin reaches the required voltage level prior to latching, as the internal pull-up resistor is very weak (high resistance).

Note that these default configuration settings can be changed through the Serial Management Interface (SMI).

  • 1
    \$\begingroup\$ Not nINT (PIN 14) is used as a configuration pin, but nINSETL (PIN 2) is. nINT either outputs 50MHz REF_CLK or is an interrupt output. This behaviour is selected by PIN 2 (nINTSEL). \$\endgroup\$
    – bkausbk
    Dec 24, 2019 at 0:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.