USB differential Pair impedance calculation and layout advice

Thread Starter


Joined Aug 6, 2021

I aim to use USB as communication between a microcontroller and module, max speed 12 Mbs

I also aim to use the USB for firmware upgrades on module , using a PC with a USB cable(in my case a custom cable). This firmware update would only happen if the firmware on module is either old or has been corrupted(very rarely).

I will not connect to the PC using a standard USB, but using a custom USB with connection to the PCB stubs. This is my layout for your reference.

This is the layout:

layout differntial pair.png

3D differntial pair.png

In the middle of the USB differential pair, there is a pair of stubs, so that my connector can touch the PAD for a connection to a PC USB port.

Is there any issue having a USB differential pair with stubs for a PC connection as shown?

Another questions is the impedance calculation requirement is 90 ohms, would I be correct in saying the stubs will have some effect on the impedance?

My PCB has minimum trace width of 0.3mm and spacing between traces to be 0.2mm. The module has a large pad, but my microcontroller pad size width of 0.3

My Impedance calculator on my software produces the following:


The calculator shows 90 ohms can be achieved using


The trace width(0.30967mm) is slightly larger the size of the smallest pad(0.3mm of the microcontroller), therefore i rounded the width to 0.3mm, as shown below:


This increases the impedance slightly to 91.25, but gives me nice trace from the module to the stub then to microcontroller.

Therefore my other question, is as I am using Stubs on PCB, which will effect the impedance, will this additional deviation cause any major issue to my design or performance?




Joined Jun 19, 2015
Since no-one's answered, and I'm catching up, I'll have a go, since I've routed USB3, PCIe, Ethernet and HDMI.

You can generally have small deviations from the 'required' thicknesses/gaps as you enter and leave component footprints. I normally use around 0.15mm for the thickness from my PCB fabricator. You go out a short distance, and then change the thickness (and gap, if necessary) to what you'd like to use, route along the PCB, and then change thickness (if necessary) to the next component.

The only thing I would do (but then I'm a perfectionist) is try to make the stubs occur symmetrically - in your case, I would be routing the trace from SW to NE running in between the two pads, rather than W to E. But it will make it look a bit zig-zaggy.

Having said that, USB2 is quite forgiving, and it probably won't make a blind bit of difference for the length and separation you are using. You are also well within your 10% for the tolerance for the impedance.

One thing that's just struck me - when you do the USB programming, are you going to remove the module? If you don't, then I really don't see it working, unless you can put the module's USB pins into a high impedance (which gives you a large spur which could cause problems). If you can't remove the module, or put it into high impedance, then you'll need a USB switch, such as FSUSB20.

Out of interest, have you told Altium it's a differential pair (and you're routing it as such)? I'm guessing you are - otherwise there's no point in setting up that rule.