Hello Rafael,
I would recommend you to enable each module manually instead of calling PE_low_level_init function (UART_DRV_Init, PIT_DRV_Init, etc), besides, in reference to power_manager_hal_demo_frdmkl27z example (C:\Freescale\KSDK_1.2.0\examples\frdmkl27z\demo_apps\power_manager_hal_demo), power mode callback is disabling pins for default console (in this case, LPUART0 module) and debug port when entering VLPS:
case kPowerManagerNotifyBefore:
userData->before.counter++;
do
{
isLastByteTranmistComplete = LPUART_HAL_GetStatusFlag(BOARD_DEBUG_UART_BASEADDR,kLpuartTxComplete);
} while (!isLastByteTranmistComplete);
disable_unused_pins();
ret = kPowerManagerSuccess;
and disable_unused_pins is defined as follows:
void disable_unused_pins(void)
{
/* Disable debug pins when MCU sleeps */
setup_debug_pins(kPortMuxAlt4);
/* Disable uart pins */
setup_uart_pins(kPortPinDisabled);
}
same callback is enabling pins when MCU has wake up from VLPS:
case kPowerManagerNotifyAfter:
userData->after.counter++;
enable_unused_pins();
ret = kPowerManagerSuccess;
break;
void enable_unused_pins(void)
{
/* Enable debug pins when MCU sleeps */
setup_debug_pins(kPortMuxAlt7);
/* Eable uart pins */
setup_uart_pins(kPortMuxAlt2);
}
These functions should be defined manually and they only configure respective PORTx_PCRn register for each pin used.
In summary, besides disabling/enabling each module, it is necessary to disable/enable each used pin for UART module.
Hope this can help,
Regards,
Isaac