Hello, I've got a PCB design that uses an M.2 connector for a Teensy MicroMod module. Anyone with some experience of the Teensy platform may be able to understand what I'm talking about, but I would like an opinion of the PCB layout for the client USB micro B connection.
The USB is flaky. Windows recognises that I've plugged a USB device in and says it doesn't recognise what exactly it is. There seems to be some communication between the PCB and Windows because I get log information from Teensyduino when the USB is plugged in and unplugged. If I tell the TeensyMM to enter Boot mode from the PCB, it does so and Teensyduino sees this and attempts to flash the current Hex file to it. Power and ground connections are fine. If I remove and bypass the USBLC6 static protection chip (correctly orientated on the board), still the same. I cannot see shorts and have probed around on the M.2 and USB traces. Using another USB connector and soldering short wires directly to pins 4 & 6 of USBLC6 plus GND and VBUS, is still the same. I have five boards from JLCPCB, all the same. The TeensyMM module is fine and I can program it on a Sparkfun ATP board.
I can only think that my PCB layout is causing poor USB performance, although it looks simple and fine to me. Stack-up is Signal on top, GND, 3V3, Signal - with ground pours on signal layers.
Any help or advice gratefully received, thanks. Ask if you want more!
Schematic:
https://1drv.ms/b/s!Avbtf5PcDsB0jLEhf0ly98C3bd1F3w