This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430FR2522: Constant sensor re-calibration due to LTA drift after software update

Part Number: MSP430FR2522

Hi

We are using the MSP430 as a touchpad controller for a keypad with 14 buttons. There is an issue after firmware updating the MSP software and the issue does not seem to be related to the upgraded firmware.

The issue we see is that after a firmware update (BSL) we get constant sensor recalibrations due to LTA drift.

Sequence:

  1. Set the MSP in BSL mode
  2. Firmware upgrade the MSP software
  3. Restore the default value of the UART pins (used for firmware update) on APP CPU
  4. Hard reset of the MSP

Result:

After the sequence the MAP_CAPT_testForRecalibration constantly returns true and we get a recalibration of the sensor at each call to CAPT_updateUI with the result that no key presses are detected.

if (MAP_CAPT_testForRecalibration(pApp->pSensorList[ui8SensorID])) {

   gReCalibrationReason.ltaDrift++; // <-- Incremented at each call to CAPT_updateUI
}
CAPT_MANAGER_CALIBRATE_SENSOR(pApp->pSensorList[ui8SensorID]);

It doesn't help to do a soft or hard reset of the MSP, the only way to get out of this behavior seem to be a complete power cycle of the main CPU (SiLabs EFR32).

It still works to communicate with the MSP over i2c during the ltaDrift issue state.

It seem to be 100% repeatable with the sequence above.

Do you have any idea of what could be the cause of this issue? 

  • Hello Martin,

    I will respond shortly.
  • Hi Martin,

    Here are some thoughts:

    If MAP_CAPT_testForRecalibration(pApp->pSensorList[ui8SensorID]) always returns true, then that means that the LTA Is always out of the expected range (±1/8 of the conversion count).  For example, if a sensor had a conversion count of 800 (.ui16ConversionCount = 800), then this function would return true if the LTA was above 900 or below 700.  This is an indication to the software that the sensor is not running at the expected sensitivity range due to some kind of drift or error.  Here is the documentation in the tech guide glossary.

    • In this case, which sensor is giving this error?  Proximity or buttons?

    • On that sensor, what is the conversion count parameter and the LTA value at the time the function returns true?

    If the sensor has an extremely high conversion count it is possible that an accurate calibration can’t happen to within 1/8th of the LTA, which would create a constant error.  This would also be a sign that the system may not stable at those settings (due to being right on the edge of too much offset being applied).

  • Hi Dennis,

    The issue was that the UART communication pins on the EFR were not correctly restored after the firmware update and since those pins are also used as CAP pins for the touch sensor they caused a constant drift. After fixing that I don't see the LTA drift issue.

    Thanks,

    Martin

**Attention** This is a public forum