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.

MSP430FR6989: ADC measurement differs from MSP430FR6988

Part Number: MSP430FR6989
Other Parts Discussed in Thread: MSP430FR6988, MSP-FET

Team,

my customer uses MSP430FR6989 and they see differences when comparing ADC12 measurements with measurements using MSP430FR6988.
They are measuring battery voltage in both cases. The MSP430FR6989 delivers approx 200mV less than MSP430FR6988.

Both devices use exactly the same SW image. The results are reproducable on both devices. The faulty measurements with MSP430FR6989 can also be reproduced on a second device.

From my understanding, there should not be any difference.
Can you give a hint what could be causing this?

Thanks!

  • Hi FRAMziskus,
    Whats the difference in the actualy ADC codes?

    Are they using TLV to calibrate with?
  • What is the sampling frequency?

    They could try increasing this and see if that helps as well.
  • Hi Cameron,

    there is no difference in code, I'm using exact the same binary and yes, I'm using TLV to calibrate.

    Here is the code :

    #define CAL_ADC_20VREF_FACTOR *((unsigned int *)0x1A2A) ///< REF 2.0-V Reference
    #define CAL_ADC_GAIN_FACTOR *((unsigned int *)0x1A16) ///< ADC Gain Factor
    #define CAL_ADC_OFFSET *((unsigned int *)0x1A18) ///< ADC Offset

    TLV-MSP430FR6988 : 0x01A00h : 06 06 23 cd a8 81 30 20 08 0a 8e a5 f4 2b 1c 00 15 00 f8 fe 11 10 fe 7f 00 00 6a 0a 3d 0c 3d 06 56 07 fb 04 db 05 12 06 8f 81 f4 80 04 81 15 10 79 5e 45 66 80 23 83 86 a0 6a b5 ac 48 12 80 bc

    TLV-MSP430FR6989 : 0x01A00h : 06 06 ab 7e a7 81 30 20 08 0a 84 da 0c 2c 3a 00 2a 00 f8 fe 11 10 ff 7f 00 00 03 0a dc 0b 00 06 1d 07 cc 04 af 05 12 06 ba 7f e1 7f 0e 80 15 10 49 62 f9 83 9c 89 a6 69 57 3e b9 e9 30 72 39 93

    void batterie_Measure(void)
    {
    unsigned long ulAdcCorrected;


    // Turn on ADC & Reference 2.0V 
    hw_analog_AdcOn();

    // config ADC12 for Vcc/2-Monitor on A31  
    BATT_HW_ADC12CTL3 = BATT_HW_ADC12BATMAP;
    BATT_HW_ADC12MCTL0 = BATT_HW_ADC12INCH_31 | BATT_HW_ADC12VRSEL_1;

    // Start ADC
    BATT_HW_ADC12CTL0 |= BATT_HW_ADC12ENC | BATT_HW_ADC12SC;

    // Wait for ADC to finish
    while(BATT_HW_ADC12CTL0 & BATT_HW_ADC12BUSY);

    // Calibrate ADC-Value

    // Correct Ref 2.0V
    ulAdcCorrected = (unsigned long)BATT_HW_ADC12MEM0 * (unsigned long)CAL_ADC_20VREF_FACTOR;
    ulAdcCorrected = (unsigned long)ulAdcCorrected / 32768L;

    // Correct ADC-Gain
    ulAdcCorrected = (unsigned long)ulAdcCorrected * (unsigned long)CAL_ADC_GAIN_FACTOR;
    ulAdcCorrected = (unsigned long)ulAdcCorrected / 32768L;

    // Correct ADC-Offset
    ulAdcCorrected = (unsigned long)ulAdcCorrected + (unsigned long)CAL_ADC_OFFSET;

    // Save ADC-Value
    sHWConfiguration.sBattery.wAdcValue = (WORD)ulAdcCorrected;

    // Battery Voltage [mV]
    sHWConfiguration.sBattery.wVoltageMv = (WORD)(sHWConfiguration.sBattery.wAdcValue * (4000.0/4095.0));

    // ADC & Referenz turn off
    hw_analog_AdcOff();
    }

    On a MSP430FR6988 the ADC measures (ADC12MEM0) about 3321 LSB and on a MSP430FR6989 about 3132 LSB for 3,3V Battery voltage.

    Both circuits are powered by the MSP-FET with 3.298V. The 6968 shows nearly teh correct voltage, the 9689 measures about 200mV to low.

    Any idea why ?

    Regards, Bernd

  • Bernd,
    Is this reproducible over multiple devices?

    Are you using a launchpad and/or target board, or a custom board to test?

    I'm still looking into this, but will get back to you as soon as possible.

  • Hi Bernd,
    I'm looping in the systems team for further assistance.
  • Problem resolved!
    There is no issue with the MSP403FR6988/89.

    Root cause:
    Two different Schittky diodes were used on the two different boards, resulting in different voltage drops which had influence on the measured voltages.

    Thank you all for your support!
  • Glad we could help!

**Attention** This is a public forum