I'm using the LPC4357-EVB development board and trying to get USB0 working as a device. The LPC4357-EVB has a number of issues - 33ohm series resistors are installed on USB0_DP and USB0_DM, whereas the user guide is specific not to use external series resistors (User Guide Table 185 USB0_DP USB0_DM "Do not add an external series
resistor"). These have been removed and replaced with 0 ohm jumpers. The second change I have made is that as a device I don't need the 15k pull downs on DP and DM, so these have been removed.
The host does not start enumeration. When I look at DP and DM both are pulled down to 0V. If I manually pull DP up to 3.3V with an external 1.5k resistor enumeration starts up (I get an address change packet straight way, but no HS chirp). This is not ideal because the pull up needs to be disconnected for high speed operation.
According to the user guide there is a internal 1.5k pull up on DP which will switch on when USBCMD_D bit RS is set (Table 469 - 18.104.22.168) and a voltage is present on USB0_VBUS (Table 460). Table 460 also tells me that USB0_DM will be pulled up with a 1.5k resistor to 3.3V as well which confuses me - it what situation does both DP and DM get pulled high?
So why can't I get the internal 1.5k pull up to work? I have set bit RS and there is 5V on USB0_VBUS. USBMODE is set to device controller. I think it might be my OTG settings - does OTGSC make any different in device mode?