Last friday we had a class about signal integrity. As we learnt about all the problems we could have, I finally understood the use of all the bypass capacitors and some of the other esoteric symbols or annotation that are no longer a mystery (such as 0-ohm resistors or DNI annotations)
Thus, I had to update the schematic of the ULPI/USB subsystem of our project. You can see it below. Here are some important changes :
- Disconnected the oscillator ENA pin : according to the datasheet, having the pin on high impedance does enable the oscillator.
- Added USB power distribution switch, the TPS2051C that is needed not to break our USB device. It limits the current of our usb device to 500mA.
- Added bypass capacitor to oscillator and power switch.
- Updated power supply capacitors
- Added 10K resistor for VBUS, connected to a 10uF capacitor that should be enough for our system. The USB 2.0 specification recommends a 120uF capacitor for hosts but we do not intend to hot-plug our USB device or have a cable between our device and our system.
- Added names to everything.
- Connected the RESETBn pin to our nRST.
As such, our ULPI/USB system should work. However, I have a doubt about whether or not I should add a resistor on the wire between the oscillator’s CLK and the USB3320C REFCLK. Our development kit has a resistor on its schematic, but the oscillator’s datasheet does not mention to put a resistor on the CLK output. If anybody has an idea about it, I’d be happy to hear it.