AnsweredAssumed Answered

UART0 doesn't work correctly on entering low power mode on a K60

Question asked by Graeme Redman on Sep 26, 2012
Latest reply on Dec 13, 2012 by TugboatCaptain



I'm using a K60 and MQX 3.8 on a project which enters low power mode (VLPR / WAIT). The board and most of the UARTs work fine, but UART0 doesn't re-calculate its baud rate correctly.


I enter low power mode using the following code:


_lpm_set_clock_configuration(BSP_CLOCK_CONFIGURATION_2MHZ)     // drops core and bus clock to 2Mhz    

_lpm_set_operation_mode (LPM_OPERATION_MODE_WAIT)     // enters VLPR mode


I also went into Init_sci.c and edited the _bsp_sciN_operation_modes() functions to allow all the UARTs to handle low power mode.


On entering low power mode the core/system clock changes from 96000000 to 2000000 and the bus clock changes from 48000000 to 2000000. The software runs fine and UARTS2-4 still work at the original baud rate, however UART0 changes from 9600bps to 125Kbps. Interestingly 125Kbs is the maximum baud rate in VLPR mode.


The MQX code appears to treat all the UARTs the same. The only difference I can see is that UART0 & UART1 operates from the system clock and the other UARTs operate from the bus clock.


I know the errata document states that VLPR mode is not fully supported in our version of silicon, but it does seem to work reliably with the exception of UART0.


Can any of you guys help?