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.

CC2640 ADC reference

Other Parts Discussed in Thread: CC2640

The ADC description in CC2640 TRM (rev d) on page 1212 states that with scaling disabled the reference is 1.47V.  And with scaling it looks like 4.3V even though in recommended max is 3.8V??  (I heard the 4.3V caused flash failures).  However, in the data sheet (Oct 2015) it states the reference is 1.44+-1% (1.45V max).  When I input an exact voltage, without scaling, of 1.470V the ADC outputs 4095.  I tried this on several modules with the same result, +- 1 LSB.  It looks like the TRM is correct and the data sheet is incorrect.  This is an important specification and I can't trust it yet.  Does anyone know the true value?

  • Hello Tom,

    I've asked a member of our HW support team to take a look.

    Best wishes
  • I am sorry for the inconsistency in the documentation, we are working on correcting this with the correct values. Even though the internal reference is scaled for 4.3 V, the maximum input voltage must never be higher than VDDS (max 3.8 V). The reference is not really 4.3 V, but the input signal is scaled down so the reference looks like 4.3 V relative to the actual input voltage.
    There are some other threads discussing this that you also can look at, for instant e2e.ti.com/.../416143
    e2e.ti.com/.../1561758
  • Hi Charlotte,

    I understand the 3.8V max.  The reason I disable the scaling is that 3.8V max means that not all of the ADC range is available.  So still the question remains:  is the ADC reference 1.44V or 1.47V?


    Cheers,

    Tom

  • Pretty please: is the ADC reference 1.44V or 1.47V?
  • Hi Tom,

    We are looking into the data with the production test group to see whether it has been measured incorrectly or if it is simply an internal communication issue.
    The reference is trimmed on each sample to within 1% and the offset and gain errors are stored in the factory config (FCFG) area of each device.

    As far as I know, the intention is to have the data sheet numbers reflect the data you get back from running your samples through the calibration API after sampling. The ADC API is found in driverlib/aux_adc.c/h.

    Regards,
    Svend
  • Hi Tom,

    It seems like the internal reference values in the datasheet have a systematic offset, and we are still working on figuring this out.

    My recommendation for now would be to use the trimmed target value of 4.3 V for the scaled reference voltage as starting point, and then multiply with the scale factor (1408/4095) to give the unscaled reference voltage. This will then be 1.478 V.

    The reference is actually trimmed to a target of 1% above 4.3V, but the resulting gain and offset are measured and stored in FCFG for use by the CC26xx driver lib. If the driverlib API is used, the correct reference voltage in unscaled mode will be 1.478V

    To ensure that the offset/gain is compensated correctly, the following driverlib commands should be used to read the ADC:

    int32_t gain = AUXADCGetAdjustmentGain(refSource);
    int32_t offset = AUXADCGetAdjustmentOffset(refSource);

    int32_t adcValue = do ADC measurement;

    int32_t ADCResultAdjusted = AUXADCAdjustValueForGainAndOffset(adcValue, gain, offset):

    Best regards,
    Fredrik
  • Thank you to all that worked on this problem. We really appreciate your efforts. We're good to go.
    Tom
  • Tom,

    I am very happy to hear that!

    I am sorry for the long time it took us to resolve this.

    Best regards,
    Fredrik