I'm struggling with extreamly weird scenario for me. I have a device using LPC2148. I wanted to run USB communication, so I had downloaded HID example code and upload to the device. In uVision debug mode, I can see, that device get a request for Device Descriptor and generates a response writing it to register USBTxData (from specification) / TX_DATA (from example code). How ever, any byte is not sent on a +D -D lines.
I have checked PLL settings and they are correct - also confirmed by appropriate reciving descriptor request - USB block works
I have external power supply, so I did not connect pin P0.23/VBUS to USB connector. It is used to different purposes.
Example code was not modified.
IRQs works as normal.
What else I can check? What can blocks USB to send data out?
It is possible that VBUS line you are mentioning has to be high as internal of the USB Controller might rely on it.Of course it shouldn't be the case but it is quite likely that that might be root cause of your problem.Can you compare your USB part routing with the one on the Keil MCB2140 evaluation board (http://www.keil.com/mcb2140/mcb2140-schematics.pdf) and see what differences there are?
I saw this schematic. Of course, I didn't have this divider R38 + R39 from VIN. I had added it and nothing has changed. Resistors and capacitors on D+ and D- lines are the same. Even pull up is present. (without pull up it also doesn't work)
Did you try to put VBUS line high.
Vbus line in USB socket - Yes. Each time I connect USB cable.
Vbus/P0.23 in LPC chip:
- directly from 5V form USB socket - No
- through divider giving 4,42V - Yes
- directly from 3,3V - No
This is what errata sheet from this chip says:
View all questions in Keil forum