ARM: USB Low-Speed Device on NXP LPC1800/4300 USB0 Host
Information in this knowledgebase article applies to:
Some USB low-Speed devices (e.g. some DELL keyboards) are not detected when connected to a LPC18xx or LPC43xx USB0 high-speed host interface. This can be observed when using the USB Host Keyboard examples from our LPC4300 or LPC1800 Device Familiy Pack or similar examples from NXP. This issue does not exist with the full-speed USB1 interface of these microcontrollers.
USB devices signal their bus speed with a 1,5K pull-up resistor either on D+ (full speed) or D- (low speed). Accoding to the specification, the pull-up voltage is typically 3.3V and may not exceed 3.6V. We have seen some Dell keyboards which provide a pull-up voltage of 4.0V or higher. This out-of-spec voltage level is coupled inside the on-chip USB0 PHY onto the D+ line which causes the USB device to be recognized as a full-speed device.
This picture shows the D+ and D- signal after a USB reset. The voltage of D- is too high and this causes a spike at D+ which causes a wrong USB speed detection.
A high-speed, low-capacitance diode from D- to 3.3V might help to limit the voltage on the D- line, but the signal integrity for high-speed devices must be preserved with this additional component.
This behavior was verified by NXP. Since this issue is caused by an out-of-spec behavior of an USB low-speed device, measures to limit the maximum voltage on the D- line have to be taken with additional components if necessary.
Last Reviewed: Tuesday, April 4, 2017
of your data.