We had a USB port transient suppressor device on our board to protect the USB A and B ports.
Since this device limited the speed due to high input capacitance we removed it to see how it affects the speed.
Once removed, I restored the USB settings in the registry to work with high speed ( =‘1’). The connection to PC and file transfer was much faster.
But then I inserted a USB stick in the port available on the board and nothing happed, it was not recognised. Then we tried connecting a USB mouse and it worked.
Does anyone know why it works with a mouse and not with a USB stick ?
Just as a sidenote, the mouse is probably working in low-speed mode, even when connected to a USB 3.0 interface, so mouse and USB stick could behave differently if the board has issues with high-speed devices
Please check if your design meets the criteria specified in chapter 2.3 USB of Carrier Board Design guide - https://docs.toradex.com/102491-colibri-arm-carrier-board-design-guide.pdf.
I checked the guide and we are meeting the criteria.
However I attached the photo of our schematic design here in case I am missing something.
The comment about the speed is useful but I still don’t know what is causing the low speed device to work but not the high speed USB.
Any idea or suggestion is appreciated.
From my point of you - your schematic is very different from what is recommended at our design guide. I’m especially consern about R27,R29, R28 and R35. Do lines USBx_N / P goes directly to Colibri X1 connector?
Yes they then go to Colibri directly.
I have repeated them from the older design we had which I believe is based on an older version of evaluation board.
I found out that by removing capacitors C24 and C25, without the USB suppressor, I can get high speed communication with USB stick.
What is it about the resistors that concern you ?
The fact that removing C24 and C25 made the high-speed USB work is a strong indication that there is an issue with signal integrity on your board.
There are clear rules how a USB connection should be routed. Usually it is not a problem to break the rules slightly, but there is a point when the link becomes unreliable or stops working at all.
What I recommend you to analyze
- The schematic shows a number of stubs. The longer they are the more critical they get.
- Is the USB transient suppressor device designed to be used for high-speed USB?
- having 2 pcs 22Ω series resistors in each signal path might be too much. Try to replace one of them with 0Ω.
- Did you do a proper differential pair layout for the USB signals, with the correct impedance and length matching between USBP and USBN?
If you send us the Gerber files and PCB layer stackup information (including thickness of the layers), we could do a rough check.
The new transient suppressor device is designed to work with high speed USB.
I have uploaded the Gerber files of our design along with image of layer stackup info in the link below:
I appreciate if you could have a look and let me know what else (apart from resistor values) I would need to change in the design.
R27,R29, R28 and R35 should probably be zero ohm. C24, C25 should be open. Its possible that the RC combination is presenting itself as a low pass filter, which you don’t want.
@shiva_eghbal Thank you for sharing the Gerber files and the schematics. As isaac already mentioned, there are different USB speeds which is extremely likely the reason why a mouse works while a flash drive causes issues. When USB was introduced, there were basically two speeds: low and full speed. Low speed is still used by many keyboards and mouses and runs with 1.5Mbit/s. Such low frequencies allows using thin unshielded cables for the devices. Full speed is already running with a data rate of 12Mbit/s which means that a little bit more attention should be taken to the routing of the signals. Our first Colibri modules such as the Colibri PXA270 were supporting only Full and Low Speed USB. For such designs, it was very common to place series resistors (like your R35, R28, R29, and R27) in order to reduce the slew rate on the signals for better EMI performance. It was basically a cheap solution instead of using special common mode chokes.
With the USB2.0 specifications, the HighSpeed mode was introduced, which is today used by most USB flash drives. This changed many things for USB. First of all, the data rate went up to 480Mbit/s. This is a massive boost which was only possible by changing the signal voltage level from 3.3V to around 400mV. Since the bus frequency is 40 times higher, series resistors are no longer recommended and should be replaced by USB2.0 capable common mode chockes, transient suppressor diodes need to have low parasitic capacitance and of course any extra capacitors in the signal lines (such as C25 and C24 in your design) need to be remove. Most importantly, the signals need to be treated as High speed differential pairs. This they need to be routed in parallel with the same length and with minimum amount of stubs. I highly recommend reading our Layout Guide which can be found here: https://developer.toradex.com/carrier-board-design/carrier-board-design-guides. Please have a special look into section 6.6 and 6.7. Additionally, please check the requirements of USB in section 7.4.
Beside the recommendation of replacing R35, R28, R29, and R27 with a common mode choke and removing C25 and C24, I also recommend changing the location of the TVS diodes. Place these diodes as close as possible to the USB connector. Currently, they are placed after the series resistors which means they are not fully protection against ESD. Make sure that the stubs to the diodes are as short as possible. Ideally, the signals should be routed through the pads of the TVS diodes.
BTW: if you are reworking your layout, I highly recommend you to reroute also the Ethernet signals. These signals should also be routed as differential signals with proper length matching. Please have a look into section 7.3 of the layout design guide.
Do you know the part number for the chokes used in Colibri evaluation board V 3.2 ?
If not, is there similar one you’d suggest ?
Dear @shiva_eghbal, this is the part number of the common mode chokes used on the USB lines od the Colibri Evaluation Board V3.2: Murata DLW21SN900SQ2.
Please don-t hesitate to get back to us if you need further details.