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.

MSP430F5528, Rev.E, TLV, 30C Temp. Sensor calibration points missing

Other Parts Discussed in Thread: MSP430F5528

Hello All,

On our latest shipment of MSP430F5528 with Rev. E it looks like ACD12 calibration points at 30C are not set. The value for all reference voltages is 0xC111. Such a value can never supplied by a 12 bit ADC (0x000 .. 0x0fff).

As a work around I'm going to check the calibration value within ADC range and use a computed value if it is outside.

Here the memory content of TLV:

0x001A00   0606    79DB    2855    1214    0A08    CF38    468A    0016    0003    FEF8    1011    E001    FFFE    C111    09F3    C111
0x001A20   077F    C111    05F3    0612    7F54    BF64    7FD9    6102    8A08    860C    2A0E    2E12    9622    2000    2300    0900

Regards

Guenther

  • I am seeing the same thing on a 5529 Rev E

  • Hi Guenther, Travis,

    This is a known issue with the F552x RevE devices and the fix is being implemented. We are currently working on putting this on the F552x errata document on the online product folder.

    Not all RevE devices are affected; we should be able to provide the lot trace numbers of the F552x RevE devices beyond which the issue does not occur. Shall keep you posted reg. this.

    Regards,

    Bhargavi

  • Is the fix a software fix or does it require a new revision of 552x?

  • TLV Calibration data is device-specific and is generated at production test. This is not a silicon bug and so, will not require a new revision to fix it. This is more of a production test bug and fixing the prod test program would fix the bug.

    Regards,

    Bhargavi

  • Hi Travis,

    I fixed it simply by adding this code:

      Cal_30C = CAL_ADC_15T30;
      Cal_85C = CAL_ADC_15T85;
      if(Cal_30C & 0xf000)
        Cal_30C = 0x0880;
      if(Cal_85C & 0xf000)
        Cal_85C = 0x066C;

    I don't know if it is the best solution but it works.

    Regards
    Guenther

    PS: Bhargavi, thank you for the update.

  • Guenther Klenner said:
    Cal_30C = 0x0880;

    This is definitely a fix that prevents a total aberration of the ADC readings, but of course the replacement value is just a crutch. If there were such a thing as a single calibration value that is worth this title, then there would be no need for a calibration value at all.
    The key property of a calibration value is that it is different for every occurrence.

    Using an average value results in an average error, whcih is, of course, better than the error introduced by these completely out of range values.

    There is, however, nothing that says that these erratic calibration values are invalid and cannot be under any circumstance the real necessary calibration values.

    The only thing that excludes this option is to check whether the two calibration values are equal and <>0. If they are equal (or more precisely: larger than a certain threshold), they HAVE to be different, independently of their absolute value.

  • Hello Jens-Michael,

    Sure, my code does not replace a calibrated value and can not replace calibration. However in absence of a calibration value it works with datasheet values. On presence of calibrated data the result is more accurate.

    Again it is a fix to let my production of devices go on, but not a replacement of TIs chip production calibration step.

    Regards
    Guenther

  • You could write soem code for your own calibration that is flashed on new chips on a ZIP socket board and measures a known high-precision voltage source. The result is then stored in info mem and the chip can be passed to production. Gives the same or even better results than the factory calibration.

    It is, however, one additional step in production. But if you already program the devices yourself, it's not much more effort.

  • Here is the errata text that has been put together for the issue (includes lot trace code number beyond which errata does not apply):

    ADC29: ADC12 Function: Incorrect Temperature Sensor Calibration Data.

     In some devices, the internal temperature sensor calibration data for 30degC are invalid for all VRef conditions. Devices with correct calibration data show at least 30 LSB differences between the different Vref conditions. When using incorrect calibration data with the internal temperature sensor ADC samples, the calculated results might be unreliable. Calibration data for 85degC are not affected.

     Note:

    1. For the MSP430F552x family, only RevE devices are affected by this erratum.
    2. MSP430F552x RevE devices with the lot trace code beyond 0BCVXPK are not affected by this erratum.

    Workaround: Re-calibration of the temperature sensor for 30degC at application level.

    This errata will be added to the F552x errata document on the online product folder soon.

    Regards,

    Bhargavi

  • Hi Bhargavi,

    Thank you and your team for the quick response. Yes, that is exactly the behaviour I experianced. I use for accurate measurements your recomended workaround. A calculated value gives a wide spread.

    Otherwise the Rev. E works fine.

    Regards
    Guenther

**Attention** This is a public forum