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.

  • TI Thinks Resolved

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

Expert 4915 points

Replies: 7

Views: 396

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

Kind Regards,

Carlos S.

TI makes no warranties and assumes no liability for applications assistance or customer product design. You are fully responsible for all design decisions and engineering with regard to your products, including decisions relating to application of TI products. By providing technical information, TI does not intend to offer or provide engineering services or advice concerning your designs.

  • 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.





    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

  • Guru 54255 points


    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:


  • In reply to tlee:

    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


  • Guru 54255 points

    In reply to Calex36:


    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.

  • In reply to tlee:

    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?

  • Guru 54255 points

    In reply to Calex36:


    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.


  • Guru 54255 points

    In reply to tlee:

    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.


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.