I use lpc546xx as a usb composite device. And I've found one of my developing board failed in USB enumeration(I have several the same boards) , but the rests work fine(with the same fireware).
And then I used usb analyzer tools tracing USB Packets, and found that lpc546xx failed during RESET stage.
Then I've used OSC to view USB D+/D- wave. After Reset, the device sended Chirp-K, and then Hub sended K-J pairs; but The device doesn't apply 45Ω HS resistor termination to D+/D-. So K/J pairs remains 800mV, and this maybe the reason USB device failed in enumeration.
So, my question here:
1. Is there any register control the 45Ω termination directly in lpc546xx ? So I could test the termination without USB HUB;
2. I've checked the PCB routing and connection, D+/D- are well connected to MCU pins; and mcu internal 1.5KΩ pull-up resistor also works well. So HighSpeed terminals failed to apply could be mcu IC problems?
Thanks for your advice !
3. I've checked the Errata Sheet. It says device can't see KJ Chirps (page 12) . Could this be the reason of enumeration failure? The Errata also point out the SDK had made a soft walk-around. Would you please tell me the places of corresponding modification in SDK? I want to be sure if I implemented the modified SDK.
Ps: OSC signal wave (Green for D+ , Yellow for D-)