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.

TMS320F28333: ADCOFFTRIM register - What is a valid range of expected values for it?

Part Number: TMS320F28333

I'm using the TMS32028335 and considering software checks relating to the on-board ADC calibration.

After having read the datasheet and associated notes, such as SPRAAD8A and SPRAAS1D, I now understand the basic principles behind calibration and gain/offset correction methods, together with the expected performance of a properly configured and calibrated ADC.

However, we have a residual question, relating the range of expected values for the ADCOFFTRIM register - Is it possible to bound the range of values reasonable for a properly functional and configured device? We are considering this as part of a self-check routine, i.e. values outside the expected range being indicative of some fault, either internal to the device or the external components affecting ADC operation, but it is proving challenging to locate such information in the device literature

  • Hello,

    Concerned experts have been notified of this query.

    Note that it is Thanksgiving week in US and most of the TI engineers are away.

    Please expect a delayed response, surely by early next week.

     

    Regards,

    Sudhakar

    ---------------------------------------------------------------------------------------------------

    If a post answers your question, please mark it with the "verify answer" button.

    Other useful links:

    C2000 Getting Started      C2000 Flash Common Issues/FAQs      Emulation FAQ

  • Carlos,

    There is no official guideline for the typical range of ADCOFFTRIM values.  However, you can infer a sanity check range by reading the ADCOFFTRIM value populated by ADC_cal() and expecting the user trim to be within +/- 15 LSBs based on the datasheet spec:

    -Tommy

  • Hi Tommy,

    By User Trim, you mean the Initial Value in the ADCOFFTRIM Register Right?

    And then for the final Value written to ADCOFFTRIM Register would be with +-15lsb's

    Refering to Process defined here

    Thanks

  • Calum,

    My understanding of the original question is that the User / Developer is going to perform their own ADC offset trim in the system at run time. The User Trim would be their custom run time measured trim value. The initial trim values are determined during manufacturing and are populated by the Boot ROM.

    I would expect the User and Boot trims to be within 15 LSBs of each other based on the datasheet Offset error.

    -Tommy
  • Ok so runtime custom value would be after, initial is called from ADC_cal() on boot.

    And then would only need to point to ADC_cal() or Call it in runtime. With custom user trim value.

    So is the +-15LSB’s not just for when booted from ROM see note 3 after offset error table in datasheet? Would it still be applicable if bypassed and just called in runtime?

  • Calum,

    I'm not following your question. Let me take a step back to clarify.

    The essence of offset calibration is measuring ADCLO with the ADC and calculating a corrective digital value that results in 0 when added to the ADCLO conversion result. The corrective value is effective when it is written into the ADCOFFTRIM register.

    The offset calibration sequence is performed in the manufacturing environment and stored to OTP, where it can be accessed and written into ADCOFFTRIM by executing ADC_cal(). I assume that we are referring to this as the "initial" trim.

    However, offset calibration is most accurate when performed using the same hardware and software conditions under which the ADC will be used in the end system. This is why the datasheet has +/-15 LSB Offset error (rather than 0 LSB) when using the ADCOFFTRIM value from ADC_cal().

    The offset calibration procedure is documented so that users can perform the sequence on their own system to achieve better than +/-15 LSB accuracy. I assume that we are referring to this as "user" trim. There is only one ADCOFFTRIM register so the user trim will overwrite the initial trim when implemented.

    I understood the original post to say that a user trim will be calculated in system and there was a question as to whether they could sanity-check the user trim value. My suggestion was that the ADC_cal() initial trim should result in +/-15 LSB (or less) of offset error in the user system. Therefore, the more accurate user trim (which would result in close to zero offset error) should also be within +/-15 LSB of the initial trim.

    -Tommy

  • It has been a while since the last update. I assume that the issue has been resolved. If this isn’t the case, please reject this resolution and reply to this thread. If this thread is locked, please make a new thread describing the current status of the issue.

    -Tommy