Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

EMI on data lines causing USB hub controller IC problems?

Status
Not open for further replies.

TnF

Junior Member level 3
Joined
Mar 1, 2015
Messages
31
Helped
1
Reputation
2
Reaction score
1
Trophy points
8
Activity points
350
Hello. To cut this story short, after spending a full day trying to find the cause of the issue i will try not to bother you with many details.

I've designed a PCB prototype for a diy computer keyboard. The board has 2 USB-C "input" ports, one on the left and one on the right so you can route the cable through your desk whichever side you prefer.
This "input" connection, is identical for both ports of which are connected directly in parallel (yes i know it is a bad design, let me know your recommendations below). This goes directly to a USB hub controller which connects the main controller as one of the devices, and the rest are used as "output" type-A ports. The only difference between these 2 ports is the length of the traces to the USB hub IC as seen in this photo:

f8BZcBN.png


Ignore the test point switch, it's only used to bypass the usb hub controller; routing is wrong for a DPDT switch i was planning on using so i use jumpers on header pins instead.

Initially i was connecting my cable into usb-c port 2 (the one to the right), and i was getting this error under the windows device manager:
Unknown USB Device (Device Descriptor Request Failed)
“Windows has stopped this device because it has reported problems. (Code 43)
A request for the USB device descriptor failed.”

After much time debugging the IC, external/internal crystal, usb-c ports, re-soldering new ones etc, i decided to use the other usb-c port on the left (port 1). Amazingly everything worked! Trying back the other port didn't work again. The other one was working perfectly and i was able to connect devices onto it without any issues. I couldn't understand what was going on. The only difference was the trace length. Long one worked, short one didn't. Then i decided to cut the traces of the long working one to see what was going to happen. I cut them here leaving only a few cm's of traces left:

avGWrIM.png


The other port started working normally! To confirm this wasn't a fluke i soldered some long wires into the hub input data lines to act as antennae and i can confirm depending on the orientation i put them it will cause problems with the USB connection. Worth noting if i connect my teensy 3.2 through these traces it can connect to both ports without any issue. It seems this usb hub controller is too sensitive to interference.

I used this controller after someone recommending it to me over discord:
- CoreChips SL2.1A https://lcsc.com/product-detail/USB_CoreChips-SL2-1A_C192893.html https://datasheet.lcsc.com/szlcsc/CoreChips-SL2-1A_C192893.pdf
Funnily enough it is out of stock now and possibly discontinued.

It seems to be a copy/simplification of Terminus FE1.1s, but i like the simplicity of 16-pins only and the fact that it is a package you can hand solder without a hot air station (of which i have one).

I am going to place an order from Farnell (europe) soon so i may try one of these instead:
https://export.farnell.com/w/c/semi...ort&range=inc-in-stock|exc-delivery-surcharge

- MICROCHIP USB2514B https://www.farnell.com/datasheets/2032129.pdf
- MICROCHIP USB2504 https://www.farnell.com/datasheets/1845982.pdf
- CYPRESS CY7C65642 https://www.farnell.com/datasheets/2309553.pdf
- TI TUSB2046BVF https://www.farnell.com/datasheets/2032129.pdf


Now that i found the issue how do you recommend tackling this? I am not an electrical engineer. I'm a mechanical one. I don't wan't the end user to have to select the port they want to use through a switch. Just connect the cable to whichever port you prefer. Can i solve this through filtering? Or should i just change the controller IC to a different one and hope for the best?:p
 

Hi,

Can it be that you did not follow USB recommendation in regards of characteristic line impedance, termination and so on.
You need careful design to ensure signal integrity.

Klaus
 

For a serious assess of design problems, I would expect a readable layout print along with a schematic.

I agree that connecting two USB jacks in parallel doesn't promise correct operation. Neither wiring USB on a two layer board without regarding trace impedances.
 

I'm inclined to agree with Klaus, when dealing with faster USB interfaces there are two critical factors, the line impedance (which comes down to trace width and separation) and differences in the + and - data line lengths. Being differential, if you can keep the traces parallel and following the same route, they should have good immunity from interference.

Brian.
 

Hi,

Can it be that you did not follow USB recommendation in regards of characteristic line impedance, termination and so on.
You need careful design to ensure signal integrity.

Klaus

Well i didn't, i thought it was pretty robust to handle it through my testing with other devices like the teensy 3.2

For a serious assess of design problems, I would expect a readable layout print along with a schematic.

I agree that connecting two USB jacks in parallel doesn't promise correct operation. Neither wiring USB on a two layer board without regarding trace impedances.

Sure but i can't afford to go to a 4-layer board. I can re-route to get impedances to be the same, but connecting ports in parallel certainly causes problems since the traces of the other port act like antennae.

I'm inclined to agree with Klaus, when dealing with faster USB interfaces there are two critical factors, the line impedance (which comes down to trace width and separation) and differences in the + and - data line lengths. Being differential, if you can keep the traces parallel and following the same route, they should have good immunity from interference.

Brian.

Thanks man, i can do this, but is connecting ports in parallel like this not problematic? Is there is a better way to do it?
 

You can have impedance matched USB traces on 2-layer board if necessary.

I would like to understand the implemented circuit topology, also the involved USB speed. Using full speed (12 MBps) or high speed (480 MBps) makes a big difference. For high speed, there's no way to bypass matched trace impedances and strict point-to-point wiring.
 

You can have impedance matched USB traces on 2-layer board if necessary.

I would like to understand the implemented circuit topology, also the involved USB speed. Using full speed (12 MBps) or high speed (480 MBps) makes a big difference. For high speed, there's no way to bypass matched trace impedances and strict point-to-point wiring.

yes sure, i can do that, run them parallel, length matched, on the same layer without any vias. However that's not what is causing the issue. The issue is caused because i run 2 set of tracks connected in parallel. So the other set acts as antennae. In practice i should have a switch to disable the unused lines. However like i mentioned i don't want to bother the user with a switch if possible. Is there is a neat way to do this? Literally no-one runs coupled usb ports ;p
 

You should not ignore the ground integrity, that's one point
that's common between the outside world, the USB and all
the digital logic. I don't see a robust ground plane, rather a
spindly-looking ground trace connecting various points. If
the ground is weak then the shield may become a signal,
unable to resist common mode coupling or even maintain
a Z=50 impedance (add significant inductance, for edges
to bounce off of).
 

You should not ignore the ground integrity, that's one point
that's common between the outside world, the USB and all
the digital logic. I don't see a robust ground plane, rather a
spindly-looking ground trace connecting various points. If
the ground is weak then the shield may become a signal,
unable to resist common mode coupling or even maintain
a Z=50 impedance (add significant inductance, for edges
to bounce off of).

I run a ground plane on one side of the pcb, vcc on the other side.
 

However like i mentioned i don't want to bother the user with a switch if possible. Is there is a neat way to do this?
An automatic signal switch for the D+ and D- lines may be possible. We are still missing most application details.

I run a ground plane on one side of the pcb, vcc on the other side.
Apparently invisible in the layout screenshots. Need readable layout print, as already mentioned.
 

An automatic signal switch for the D+ and D- lines may be possible. We are still missing most application details.

Apparently invisible in the layout screenshots. Need readable layout print, as already mentioned.

yeah i removed it for readability. I'll redesign the pcb though so not much point on reviewing this one. Now regarding automatic input switch, should i just use logic gates for example?

edit: This should do the job:
https://www.farnell.com/datasheets/2298721.pdf
 
Last edited:

Hi,

I'll redesign the pcb though so not much point on reviewing this one.
Maybe true, maybe not.

We just see the information you give...and it makes me assume that you are not used to design differential traces with known line impedance.
Your traces are close to the PCB edge, thus you might get unsymmetrical impedances.

I recommend to post your actual design .... it won't hurt ... but it enables us to verify it.

Klaus
 

Hi,


Maybe true, maybe not.

We just see the information you give...and it makes me assume that you are not used to design differential traces with known line impedance.
Your traces are close to the PCB edge, thus you might get unsymmetrical impedances.

I recommend to post your actual design .... it won't hurt ... but it enables us to verify it.

Klaus

Yes i'm not used to but i am learning. I am now designing the next prototype, it will be a couple of days before i finish. I want to keep the pcb as compact as possible, i might need to go to a 4 layer board but it is about double the price.
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top