MSP430G2533: MSP430G2533: Timer Inaccuracy and Flash Corruption at Low Battery (Critical Battery Mode)

Part Number: MSP430G2533

Tool/software:

Hello,

We are using the MSP430G2533 in a device. When the battery drops below a critical threshold (<6V), we switch to using ACLK as the timer source for power-saving reasons.

Issues Observed:

  1. Timer Inaccuracy:
    At critical battery levels (tested at 5.8V), we observe significant variation in timeout periods across different devices. For a set timeout of 30 seconds, some locks time out at 26 seconds, while others at 37 seconds.

    • Is this a known limitation of ACLK operation at low battery voltages?
    • What factors could be causing such a large variation between devices?
  2. Flash Corruption:
    According to the datasheet, the supply voltage (Vcc) for flash programming/erase should be in the range 2.2V to 3.6V. In our case, Vcc is measured at 3.3V even in critical battery mode (<6V battery voltage). However, we are still seeing corrupt values being written to flash during this mode.

    • Is this behavior expected?
    • Are there other supply or internal voltage dependencies I should be aware of, especially when the main battery is low but Vcc is within spec?
    • Any recommended steps to prevent flash corruption in this scenario?

Any insights or references to relevant documentation would be greatly appreciated.

Thank you!
Kevin.

Additional Details:

  • MSP430G2533
  • Battery voltage during test: 5.8V (critical)
  • Vcc during flash operation: 3.3V
  • Timeout variation: 26s to 37s (expected: 30s)
  • Are you using an external (32kHz) crystal for ACLK? The VLO is nom. 12kHz, with a variation of +/-60% or so [Ref datasheet (SLAS734G) Sec 5.23].

    What operating voltage does 5.8V represent? (I don't recall encountering any crystal difficulties due to low-voltage but I haven't looked very hard.)

  • Assuming a reasonable voltage regulator, 5.8V should be more than adequate to output 3.3V. So just what are you using to provide Vcc?

  • Hello Kevin, 

    Hope you are having a good start to your day. Nevertheless, can you reply to the questions asked by Bruce and David above? 

    Regards, Jojo

  • Dear Jojo, Bruce, and David,

    Please accept my apologies for the delayed response.

    To address Bruce's question, we are currently using the internal 12 kHz Very Low-frequency Oscillator (VLO) as the source for ACLK. Additionally, the 5.8 V measurement refers to the battery voltage prior to regulation.

    Regarding David's inquiry, we are employing the MCP1703A low dropout (LDO) linear regulator to derive a stable 3.3 V Vcc supply from the battery voltage.

    Thank you for your support and guidance.

  • With a LDO regulator operating normally, the MSP430 should have no clue that the battery voltage is less than 5.8V. 

  • Application Report SLAA340A (here) describes a method (FLL) for calibrating the VLO using SMCLK; this gives you a multiplier for wall-clock ticks -> VLO ticks that you can use for your timer constants. You have to run it again any time the environment (temperature, (actual) operating voltage) changes. (In theory you could run it constantly but that would kind of defeat your purpose.) The code is via a link in the .pdf.

  • Hi David, thanks for your insights, and Bruce, I appreciate you providing the idea of calibrating the VLO. I will try this and let you know. Thank you.

  • Hello Kevin, 

    Hope all is well with you. Nevertheless, just checking in on whether there are any updates on this?

    Regards, Jojo

  • Hi Jojo, Bruce, David,

    Thank you all for your continued support and suggestions.

    Just wanted to provide an update: I haven’t tried VLO calibration yet, as I decided to switch to using the internal DCO as the clock source for the timer instead of the VLO.

    If any further issues arise, I’ll revisit the VLO calibration method as suggested. Thanks again for your guidance!

    Best regards,
    Kevin

**Attention** This is a public forum