Pullup Resister during Reset

17 Jan 2012

Hi

We're trying to use some of the GPIO pins as output with a optocoupler attached.

Once started and code has initialized the GPIO ports as DigitalOut everyting works ok.

BUT what we're seeing is

1) when flashing, 2) sending a break over the serial port or 3) pressing/holding the reset button down,

the GPIO pins are inputs with a very small pullup resistor pulling towards 3V in such way that is already capable of driving the opto couplers even when being an input.

For instruments (like we're building) this kind of behavior is very dangerous (inputs should be very high impedance and should never be able to drive anything).

It makes it also virtually impossible to use these GPIO pins as outputs as their behavior as input during reset is very unwanted.

I'm unable to locate the value of the pullup resistor and the input circuitry in the manuals. Any pointers?

So main is question is: is there a way around to this and have the input just have an high impedance/tri-state during reset? I'm not sure where this behavior originates from (mbed boot load or the arm cpu used),

wvd_vegt

17 Jan 2012

The LPC internally don't uses a resistor to pull up but a "little" current source. But I don't know whether this pull up behavior is programmed in bootloader or default of the LPC.

17 Jan 2012

Hi

I know its not a real resitor but some mosfet or so but it behaves like a resistor and is pretty annoying and certainly not small during reset.

Try measuring what it does while you keep the reset button pressed. It goes very hard to around 3V and can drive a led even when it's supposed to be just an input during reset.

It almost seems like the output pullups are activated too when the reset button is pressed, the devices is flashed, the device is software rebooted or break is send over the usb port. The output pullups are much stronger then the input ones.

wvd_vegt

17 Jan 2012

A simple solution is to incorporate the pull up in your design. Connect your opto-couplers to Vcc and the output thus making them active low. Then invert the output logic in software. When it's in reset, etc. the resistor pull up will not matter, the opto-couplers will be off.