Intermittent connectivity issues with gigabit nano

Architecture and problem:

I have a custom pcb that integrates 5 usb devices using 5 LAN7500 USB-> Ethernet converters. One for each device. I’m using 2 gigabit nanos transformerless switches to connect all the devices together.

When I power everything on I can talk to all 5 devices and all the switches seem to be working. However, we’ve had intermittent connection issues where one device could drop out and we’re having trouble debugging this issue. We also seem to have intermittent packet loss even when we can talk to all devices. Our board does get to 60C measured with a thermocouple, so that could explain some of the issues we’re having.

Switch connections:

Gigabit nano 1 connects devices 1-3 and then is daisy chained to the other gigabit nano2.

Then gigabit nano 2 is also connected to devices 4&5 and an external uplink. As well as gigabit nano 1. The external Ethernet uplink has a transformer to the outside world. The rest of the Ethernet connections do not have transformers.

Voltage mode vs current mode drivers:

I’ve read that only voltage mode line drivers work with this switch, but I’m having trouble understanding what the LAN7500 is. To my understanding it looks like the LAN7500 could be current mode. But if it is current mode, why are we able to use the switches at all?

  1. Do you expect the LAN7500 to work reliably with the gigabit nano switches?

  2. Is it ok to daisy chain the gigabit nano switches in this way?

  3. Do you expect the heat of this board to impact our connection reliability in this way?

Thanks for your help,

Ryan

I’ll respond to each point in line.

Our board does get to 60C measured with a thermocouple, so that could explain some of the issues we’re having.

GigaBlox Nano getting to 60°C isn’t the issue, it’s expected as that board doesn’t ship with a heatsink. Some of our customers put a 10mm x 10mm heatsink, but generally the board runs fine without it.

Gigabit nano 1 connects devices 1-3 and then is daisy chained to the other gigabit nano2.

There is a known bug on GigaBlox (that also applies to GigaBlox Nano, as they use the same chip), related to daisy-chaining, see below.

image

Are you using the same numbered port on both for the daisy chain connections?

I’ve read that only voltage mode line drivers work with this switch, but I’m having trouble understanding what the LAN7500 is. To my understanding it looks like the LAN7500 could be current mode.

Yes, LAN7500 is current mode. You can tell this by looking at the dev board schematic for LAN7500, see how the transfer center taps are pulled up to a 2.5V rail. That means the LAN7500 PHY works by pulling current from the 2.5V rail into the transformer to generate a voltage on the other side. This is in contrast to voltage mode, where the PHY itself generates the voltage directly and sources/sinks current in and out of the transformer.

But if it is current mode, why are we able to use the switches at all?

What you have right now is the LAN7500 directly connected to GigaBlox Nano without a transformer (please correct me if I am wrong). You always need a transformer when using a current mode PHY, so I would not expect this to work. The fact that it does work intermittently is not super surprising either. Ethernet doesn’t always fail in a binary way, and the signals are probably still being received/transmitted on both sides, but I wouldn’t expect it to work reliably.

In summary, you need transformers on your current mode PHY, otherwise I wouldn’t expect it to work reliably.

We have our Gigabit nano’s daisy chained to separate ports. So, we avoided that bug by chance.

You have confirmed my fears. I have a board with magnetics in one position and the device in that position has no dropped packets. Its safe to say that we need to switch to a voltage mode PHY or add magnetics to our PCB.

Another question:
I’ve since tried to connect all 5 devices together with the daisy chained switches, and it seems that the position with magnetics has started to drop packets. Do you think it is safe to say that is due to the lack of transformers on the other modules? I’m wondering if we may have potential crosstalk on our PCB.

Thank you for your help debugging.

I’ve since tried to connect all 5 devices together with the daisy chained switches, and it seems that the position with magnetics has started to drop packets. Do you think it is safe to say that is due to the lack of transformers on the other modules? I’m wondering if we may have potential crosstalk on our PCB.

Sorry, not following you on this. What do you mean by “position with magnetics”? A diagram would be helpful if possible.

This is my first test PCB topology:

It has magnetics for device 4 only.
First test: I have devices 1-3 disconnected and only devices 4&5 connected to my pcb and switch. I’ve noticed that device 4 is able to ping without packet loss consistently. But device 5 has intermittent connection. I then swapped device 4&5 and saw the same effect, further verifying the position of the magnetics was the cause and not the device.

Then I moved onto plugging all 5 devices into the switches with the following daisy chain configuration:

In this configuration, I noticed that device 4 started to experience packet loss similar to the other devices. I know this is the wrong configuration, and that every LAN7500 device needs to have a transformer.
To reiterate my question more clearly. Would it be plausible to assume that the lack of transformers for devices 1-3,5 are causing communication issues for device 4?
I am guessing that the lack of transformers are causing weird things to happen to the switch, and that is effecting position 4. Despite position4 having a transformer connected.

Here is the proposed solution with transformers on each position:

I expect this topology would work, but I would appreiciate some additional clarification.

  1. Do I need transformers between the daisy chained BotBlox Nano chips?
  2. Do I need an additional transformer on the BotBlox Nano side? So that would mean there are 2 transformers between each LAN7500 chip and the BotBlox Nano chip, similar to how we connect switches with transformers at each end of the PHY devices.

I’ve also read that auto-negotiation could have trouble communicating over a capacitively coupled ethernet connection. This article is for the LAN9250 chip, but it seems to also be a current mode line driver. I was wondering if the same principles could apply.Article linked here
Can you shed some light on how the Gigabit nano is able to auto negotiate despite having capacitively coupled ethernet?

Thanks for clarifying. First let’s be aware that there could be two separate, different effects occurring here.

Issue 1: Lack of transformers causing packet loss
Issue 2: Bandwidth limitations due to daisy chain and single limited upstream port to external switch

On Issue 1, I believe we understand this, we would not expect device 5 to work without transformers. I wouldn’t expect the fact that devices 1, 2, 3 and 5 not having transformers should affect the connection on device 4 though. Not having transformers on those four devices should mean they don’t connect consistently, but port 4 does have transformers so that should still work. It is possible there’s a high level network effect happening; perhaps multiple repeated attempts to connect/reconnect from the transformerless LAN7500 could be overloading the switch’s internal buffers. It would be useful to see what happens if you retain the topology below, then sequentially plug in the other GigaBlox Nano, then device 1 and check ping. The plug in device 1 and 2, and check ping. Then do all devices 1,2 and 3 and check ping. Of course this may not be possible depending on your schematic.

image

The other issue that could be happening is network overload. I assume you are pinging from a device connected to your external switch. This is connected to a 1Gbps port on GigaBlox Nano. If all 5 devices attempted to send at more than 200Mbps into the external switch, you would overload that connection. Essentially, that uplink is a bottleneck. What are the devices you are connecting to? Are they cameras that stream at a constant rate? If so, can you adjust that rate to check? Can you disconnect them sequentially and see if that effects the connection?

Now to your questions…

  1. Do I need transformers between the daisy chained BotBlox Nano chips?

You don’t need transformers between ports on GigaBlox Nano, you can connect them directly.

  1. Do I need an additional transformer on the BotBlox Nano side? So that would mean there are 2 transformers between each LAN7500 chip and the BotBlox Nano chip, similar to how we connect switches with transformers at each end of the PHY devices.

No, you don’t. Once the transformer is there on the LAN7500 side, the current mode PHY is effectively “insulated” from the voltage mode PHY on GigaBlox Nano.