Content originally posted in LPCWare by DiligentMinds.com on Thu Sep 20 12:00:41 MST 2012
Hi Julian,
The D+ and D- lines are a differential pair, and should be routed carefully together (as much as possible). The ideal is to create the traces in a manner such that they are a 90-ohm differential pair. You can ask your PC-board manufacturer for the right trace-width and spacing to make this happen. For USB "full-speed" (12M-bits/S), you do not need a "controlled impedance" board. But-- you should at least *try* to get the impedance right-- and the trace width and spacing will depend on the number of board layers, the materials used, the stack-up, etc. So, contact your PC-board manufacturer for help on some "nominal" values, and don't let them "up-sell" you to "controlled impedance" boards (which are more expensive).
The USB D+ and D- lines do have some RF noise on them. This is the case with any PHI from any manufacturer. This noise can confuse the PHI on the other end (either the hub or the host), and these problems usually occur with low-cost hubs.
The fix is to put your 33-ohm resistors back in. (Some PHI's from some manufacturers have these built in, but NXP LPC chips do not, and I prefer it that way). The second thing you need to do is place (2) 47pF/NPO capacitors from each data-line (D+ and D-) to ground. These are connected at the point between the 33-ohm resistor and the USB connector. Note that the value is not *that* critical-- if your design uses a crystal oscillator, and you have (2) 39pF/NPO capacitors in the crystal circuit, then you can use this same value on the USB data lines (to keep BOM costs down).
This should fix your problem. Give it a try, and tell us how it worked out for you.