Wednesday, 29 April 2015

pcb design - Can differential USB traces be routed relative to Power (not Ground) planes?


I would like to route my USB 2.0 (12MHz) signal on the bottom layer of a 4-layer PCB. However, the edge-coupled microstrips would then be referenced to the power plane, not the ground plane. The signals are going to the USB pins of an STM32F105 microcontroller.


The signal path should be 90-Ohm differential, but I don't know how important the characteristic impedance is since I won't be using the High-speed (480MHz) rate.


My board's stackup is:




  • Top (signal, components)

  • Ground (unbroken)

  • Power (3.3V, unbroken)

  • Bottom (signal)


I have radio transceivers on the top layer, using differential, edge-coupled microstrips for the rf signalling. All the IC's are decoupled fairly well.


I see a few options:




  1. Route the traces relative to power plane.



    I would prefer this. Will it work? Does it couple noise onto the rest of the PCB's power plane?




  2. Remove a section of power plane, exposing the ground plane underneath the microstrips.


    The ground plane is now so far away that my traces would be quite wide...




  3. Isolate an area of copper in the power plane under the microstrips, and stitch it to the ground plane. Kind of a "ground mezzanine" :)


    I think this would work well, but the top layer is too thick with traces for me to do a good stitching job. I don't want to use blind or buried vias. Would this solution require good stitching?





  4. Don't concern myself with the characteristic impedance. The traces will be about 600 mil long, and I'm only signalling at 12MHz...




Here's the section in question. I intend to run the traces to the far left, underneath the microcontroller, then bring them up to the top layer. For scale, the small components are 0402 (1005 metric).


USB


(those traces aren't actually crossing on the same layer; it just looks like it because I highlighted them in red)


Are any of these good options? Is there anything I'm missing?


Thanks.



Answer




The short answer is you're going to be fine, route it above VCC and make sure you have some VCC to GND decoupling caps near your chip. Plus your route is pretty short at 600mil, I've seen some people do terrible things to USB routes that still end up working :)


I think the best way to understand this is to consider where your return current will flow. Current is going to follow the path of least impedance. In a microstrip's case, when you consider the high frequency current of your USB edges this current will flow back in the reference plane directly below the trace. It doesn't matter if that trace is GND or VCC, it's the path of least impedance so that is where current must flow.


Now some interesting things, current always flows in a loop. When that return current, happily flowing along on your VCC plane gets back to your chip it must find a way to GND to complete the circuit. It's going to do that by the path of least impedance again which hopefully in your case will be the VCC decoupling capacitors you placed nearby.


That's for the AC portion once your signal has moved to the DC portion your current loop will go back to following the path of least resistance.


Also a lot of people will refer to USB as differential and then cite the fact that most of the current will return in the pair itself. But in USB 1.0 it's usually just two single ended drivers referencing GND so the current should travel the way I described above.


Finally even when you have a differential pair there will almost certainly still be common mode return current unless you can somehow guarantee that from the source to the destination, through connectors, and routing, that the D+ and D- lines are the same length and never hit any single ended discontinuities etc.


Hope that helps. There are some good books out there on signal integrity if you want to learn more about this kind of stuff such as Johnson's handbook of black magic, and Eric Bogatin's books.


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...