Content originally posted in LPCWare by DiligentMinds.com on Thu Aug 30 10:32:12 MST 2012
Just for you-- I just tested it. I am using the 48-pin (Rev-B) version of your device, but otherwise they are the same. Yes-- USB_CONNECT (P0.6) goes low if you enable the ISP by holding (P0.1) low during a reset. Note that, to enter the USB ISP, "VBUS" must also be connected to P0.3, and it must be high when reset happens (and P0.1 is low).
On my device, if I leave the batteries out, it is powered by the USB host when I plug it in (through a 3V3 regulator of course). In this case, when I hold P0.1 low, and plug in the USB cable, it DOES NOT enter the ISP (as I would expect)-- I have to further cause a reset-- and THEN it goes into the USB ISP. I'm guessing that this is because the power is not ready (or something) when the (internal) reset goes high... Another deviation from the ap-note is that I put a 10K resistor in series with VBUS to P0.3-- I know the data-sheet says that this pin is "5V tolerant", but I wanted to limit the current into the pin anyway, just to be safe...
I used the same circuit for the 1.5K pull-up through a P-channel FET as was given in the ap-notes, and it appears to work fine. (P0.6 goes low, driving the drain of the PFET high, which pulls up the 1.5K resistor on the D+ line of the USB cable).
This is used by the ISP, and if you are programming a USB device, it allows your software to do a "soft connect"-- ie., it's like unplugging the USB cable from the host, and then re-plugging it back in to re-enumerate the USB device. This might be done if you (for some reason) have re-configured your USB device, and you want the host to treat it in a different way.
So, you probably do need this pull-up PFET (or PNP) arrangement if you are going to use the USB port for either USB ISP or for a USB device.
I hope this helps!
--Ken Peek