Hi,
We're using a LPC812M101JTB16 on a custom board, and generate the initialization code using MCUXpresso Config Tools version 11.0 (on Linux).
However, the generaded file pin_mux.c doesn't seem to enable the IOCON clock before it's trying to read/write from the IOCON block. This leads to the settings regarding the pull-up/pull-down resistors not being applied. If I manually enable the IOCON clock in the beginning of BOARD_InitPins() it works as expected.
We have another board, with an LPC824, where the generated pin_mux.c actually enables the IOCON clock. Am I missing something in the LPC812 configuration or is this a bug? I tried to attach the MCUXpresso Config Tools project file, but it got rejected.
The attachment's lpc812_test.mex content type (application/octet-stream) does not match its file extension and has been removed.
void BOARD_InitPins(void)
{
/* Enables the clock for the GPIO0 module */
CLOCK_EnableClock(kCLOCK_Gpio0);
gpio_pin_config_t TEST_config = {
.pinDirection = kGPIO_DigitalInput,
.outputLogic = 0U,
};
/* Initialize GPIO functionality on pin PIO0_8 (pin 11) */
GPIO_PinInit(BOARD_INITPINS_TEST_GPIO, BOARD_INITPINS_TEST_PORT, BOARD_INITPINS_TEST_PIN, &TEST_config);
IOCON->PIO[14] = ((IOCON->PIO[14] &
/* Mask bits to zero which are setting */
(~(IOCON_PIO_MODE_MASK)))
/* Selects function mode (on-chip pull-up/pull-down resistor control).: Pull-down. Pull-down
* resistor enabled. */
| IOCON_PIO_MODE(PIO0_8_MODE_PULL_DOWN));
}
Hello,
This is a bug.