Hi,
We encountered an unusual situation in our code when we speed up the MSP430F149 from a standby mode.
Initially the MSP430F149 is configured this way…
DCOCTL = 0x40; // speed up the computer
BCSCTL1 = 0x85; // 40-84 ~ 750 KHz -- 40-85 ~1.25 MHz -- a0-84 ~950 KHz
BCSCTL2 = 0x00;
After a couple of seconds we put the MSP430 in standby mode
The MSP430 is in standby mode for a couple of seconds:
DCOCTL = 0x00; // go back to low power mode
BCSCTL1 = 0x80; // slow down the computer
…..
…..
….. After 5 seconds……
Then we speed up the MSP430:
DCOCTL = 0x40; // speed up the computer
BCSCTL1 = 0x85; // 40-84 ~ 750 KHz -- 40-85 ~1.25 MHz -- a0-84 ~950 KHz
P5OUT ^= BIT3; //Toggle Pin 5.3 is not executed
REGULATOR_ON;
EIGHT_VOLTS_ON;
MSP running at 1.25Mhz. P5OUT ^= BIT3 is not executed the first time,
MSP running at 950Khz. P5OUT P5OUT ^= BIT3 it’s executed
Initial clock configuration
DCOCTL = 0x40; // speed up the computer
BCSCTL1 = 0x85; // 40-84 ~ 750 KHz -- 40-85 ~1.25 MHz -- a0-84 ~950 KHz
BCSCTL2 = 0x00;
Standby mode configuration
DCOCTL = 0x00; // go back to low power mode
BCSCTL1 = 0x80; // slow down the computer
Based on the datasheet, we know that the MSP430 needs at least 6 microseconds to wake up from standby (Wake up from standby in less than 6 µs).
But we expected the MSP to be ready before trying to execute the next instruction.
We solved this problem by adding an "extra" command after BCSCTL1 = 0x85; instruction or by slowing down the MSP430 at 950 KHz.
Is this the expected behavior or is there something else to this situation?
Thanks,
Jean