I think i ran into a problem with the GPIO peripheral of the LPC111x (LPC1114 in my case).
I configure this in GPIO mode with ( IOCON_FUNC0 | IOCON_MODE_INACT | IOCON_DIGMODE_EN | IOCON_OPENDRAIN_EN)
I start in the conditions :
- configured as output
- drive it low
And then switch to input mode: the line stays low although it is pulled up externally which should be impossible.
Other observation: if you put an extra step in front of the setting it to input to put the line 'high' (does not really drive it high if it is in pseudo open drain but you stop driving it low and the external pull up should pull it high) then it does go high if you step slowly through it (giving the line a chance to become high by the time you reach the instruction to put it in as an input) , but if you let it go and just run the code it also stays low.
If i configure it with ( IOCON_FUNC0 | IOCON_MODE_INACT | IOCON_DIGMODE_EN /*| IOCON_OPENDRAIN_EN*/) then it works as expected so apparently the pseudo open drain setting somehow corrupts the input mode.
Observed on pin 1.4 , i do not know if the other pins have the same behavior....
Any suggestions ?