Why does the LPC812 require PIO0_1 to be tied to ground

lpc

I am using an LPC812 (specifically the 20 pin SOIC version LPC812M101JD20). This is currently soldered to an adapter and being tested in a breadboard. To program this PIO0_5 (RESET) and PIO0_12 (ISP enable) are pulled up to the 3V3 rail with pushbuttons to short them to ground to enable programming. There are also LEDs on PIO0_16 and PIO0_17.

The device is programmed using mBed code over a serial connection but I have found that PIO0_1 (pin 12) seems to be required to be tied directly to ground or the device remains in reset. Once it is running, if I disconnect the ground wire from this pin the device stops. If I use a 10K pull-down resistor it remains in reset and a 470R pulldown seems to put it into some confused state where the LEDs flicker a lot, possibly continuously resetting.

The datasheet does not seem to suggest there is anything special about this pin:

By default, the GPIO function is selected except on pins PIO0_2, PIO0_3, and PIO0_5. JTAG functions are available in boundary scan mode only.

Later, in table 6 on page 12 it is pointed out that on some earlier revisions this pin was used to enter ISP mode but on versions marked 4C (mine is marked 4C) this was moved to PIO0_12.

I've also checked the errata sheet and nothing is listed for this revision.

So this pin should be in GPIO mode and should not need to be tied to ground as I understand it. Is this common to these devices? It appears to work fine but only if this pin is tied directly to ground.

Schematic

Best Answer

Is it possible that pin 12 is configured as the external clock input?

The part may try to run when some noise is present on the pin but switch to a fail safe internal clock if the external clock is not found.