I'm designing a USB-to-Ethernet adapter (actually a prototype of a piece of a larger board). As those following my questions will know, I've had some ups and downs getting the USB part working, but now it shows up as a USB hub in Linux and I can use devices connected to it. Now for the Ethernet part.

As far as I can tell, I have followed the various guidance in the datasheet. The schematic is shown below. I can confirm that VDDCORE is being generated correctly and that there is a 25MHz sine wave on the 25MHz crystal - so the chip is showing some signs of life. But it doesn't show up in a scan of the USB bus. Both jumpers (JX1 and JX2) are installed, though I've tried without as well.

What can I do to try to debug this? What should I be checking for on the board? Have I made any obvious mistakes?

enter image description here

  • \$\begingroup\$ From your previous inquiries, you are connecting all this to Raspberry Pi. Rpi has full-sized USB 2.0 HS host, 480 Mbps. Why you are crippling your design to 12 Mbps level? \$\endgroup\$ – Ale..chenski Aug 3 '18 at 20:08
  • 1
    \$\begingroup\$ Because I don't need anything better. \$\endgroup\$ – Tom Aug 6 '18 at 9:44

The major mistake in your schematics is that the nRESET signal (pin 24) doesn't follow the delay specifications. The deassertion of this signal must be delayed until all supply voltages reach valid level:

enter image description here

In your schematics the nRESET is tied directly to power rail, which obviously violates specifications. If the LAN7500 IC can't receive "valid reset", it will be internally screwed and won 't work.

To handle this signal properly it is highly recommended to use a "voltage supervisor" IC like MAX809. This method will provide guaranteed reset under various power-on and brown-out conditions. In most simplistic/cheap case you can use a RC-delay on this pin, but this will be a gamble in unstable power-on situations.

ADDITION: Another typical problem with embedded hubs and embedded devices is the sequencing of VBUS_DET on LAN9500 side. To connect to hub, the LAN9500 must pull up D+ high when it sees VBUS_DET, and not before that. You should obtain scope traces of what is going on D+/D- wires between the hub and LAN. Theoretically the connect event should NOT occur before the hub is ready to operate (be enumerated and such). If the connect event (D+ pull HIGH) occurs before that, the hub status reporting might be screwed. To test if this is the problem, toggle momentarily the VBUS_DET to ground and see if the hub/host would start to recognize the connect event and starts doing something (USB_RESET etc. etc).

To make the connection correctly and get proper sequencing reardless of power ramp rates, it is advisable to connect the VBUS_DET to the power control pin on hub side, PWRON1, with proper polarity. The PWRON1 pin will be logically inactive until the hub is fully enumerated and operational, which will ensure that LAN9500 will start the connect process after all is ready.

  • \$\begingroup\$ Please examine the reference design more carefully, ww1.microchip.com/downloads/en/DeviceDoc/… \$\endgroup\$ – Ale..chenski Aug 3 '18 at 17:13
  • \$\begingroup\$ Thanks. According to the datasheet, I can just leave this unconnected (which I did in a previous revision - thought I was doing the right thing connecting it to +3.3!) \$\endgroup\$ – Tom Aug 6 '18 at 10:11
  • \$\begingroup\$ @Tom, there is no such silly thing in the LAN7500 specification to leave it unconnected. The spec says: "Assertion of nRESET is required following power-on." - Table 2-6, ww1.microchip.com/downloads/en/DeviceDoc/00001734A.pdf \$\endgroup\$ – Ale..chenski Aug 6 '18 at 13:20
  • \$\begingroup\$ But this is not a LAN7500, it is the LAN9500A. The datasheet section 5.13.2 says "The nRESET pin is pulled-high inter-nally by the device and can be left unconnected if unused. If used, nRESET must be driven low for a minimum period as defined in Section 8.5.3." ww1.microchip.com/downloads/en/DeviceDoc/00001875C.pdf \$\endgroup\$ – Tom Aug 6 '18 at 15:20
  • \$\begingroup\$ But then the reference design just has nRESET tied to 3.3V - ww1.microchip.com/downloads/en/DeviceDoc/9500a_sch.pdf \$\endgroup\$ – Tom Aug 6 '18 at 15:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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