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.

TMS320F28377D ADC zero calibration

Other Parts Discussed in Thread: CONTROLSUITE, TMS320F28335

Hello,

I have a very simple question:

How do you perform following action easily:

"Perform some multiple of 16 conversions on VREFLO (internal connection)"

Should i define:

- a SOC and its channel,

( what channel is VREFLO for each ADC?)

-Set up a S/W trigger to start each conversion

??

thank you!

  • In the Analog Subsystem Block Diagram of the spruhm8e, i found a VREF0 connected always to inputs 8 or 9 of each ADC.
    Is this the inputs to use for zero offset calibration?

    Thank you!
  • Hi user4565873,

    I will first point out that offset calibration is not required on this device in order to meet the DS offset error specifications; the trim populated by using the set mode function is sufficient.  This is different than F2802x, '03x, '05x, and '06x Piccolo series devices, which do require user offset calibration.

    You are, however, more than welcome to do your own calibration if desired.  To get the samples, you can use any method that works with your application.  See the sampling examples in ControlSUITE for some starting points: adc_soc_continuous, adc_soc_epwm, or adc_soc_software.  Any of these methods will work, although the easiest would probably be the software method.  In this case, you could configure 1 SOC to sample the internal connection and trigger it in a loop some multiple of 16 times (say 256 for example).  In this case you would want to calibrate the ADC sequentially, since it is hard to ensure synchronous operation when using software triggering.  

  • Thank you. We need very precise calibration to reach the accuracy we need: 1% over 500A, more or less.
    I m used to TMS320F28335 DSPs only.
    I miss the following point in your answer:
    - what is the "internal connection".. more precisely to which CHSEL should i connect my SOC ?
    - what do you mean by "sequential" calibration? (a for loop for example?)

    Thank you!
  • The accuracy of F2837x (12-bit) compared to F28335 is actually very much improved:

    F2833x: INL = 2 LSBs, Gain error = 30 LSBs, Offset error = 15 LSBs
    F2837x: INL = 2 LSBs, Gain error = 5 LSBS, Offset error = 4 LSBs

    The approximate total accuracy error for F2837x is therefore about sqrt(2^2 + 5^2 + 4^2) = 7 LSBs or 0.17% of FSR.

    -You would set the channel select to 8 or 9 (no additional muxing is needed). If you are really trying to squeak out every last bit of performance, you might take samples on both channels 8 and 9 and then average all the samples together to average out some of the ch-to-ch variation.

    -By sequential calibration I mean do a for loop for ADC-A that gathers 16*N samples and calculates a new offset trim. Then do a loop for ADC-B that gathers 16*N samples and calculate a new offset trim, etc. This assumes you are doing a one-time trim at start-up, or are stopping your system momentarily to do the calibration. It is also possible to gather the samples while your application is running - in this case you would probably collect all the offset samples in parallel for the different ADCs.

    Along with the above, one big architectural difference between F2833x devices and F2837x devices is that F2837x devices have as many as 4 separate ADCs, each with a single S+H vs. the F2833x which has a single ADC with simultaneous sampling of up to 2 signals. The F2837x architecture actually lets you capture 4 samples simultaneously (and process them simultaneously) but you do need to take some care to make sure the ADCs operate synchronously to get the best performance (we have a section in the TRM that discusses this in more depth).
  • Perfect!

    It s exactly what i intended to do: 4 for loops for calibration and simultaneous sampling on the 4 ADCs.
    I didnt think about selecting both channel 8 or 9 but i will do.
    For the rest i implemented a 16*N (512) loop on the 4 ADCs. I was thinking to make the 4 ADCs simultaneously, the same way i m reading the ADC inputs during my control loop. Is ti better to do them one by one fro calibration?

    Thank you!
  • See the section "10.3.1 Ensuring Synchronous Operation" in the TRM (www.ti.com/.../spruhm8e.pdf).

    Either simultaneous or sequential is fine for offset calibration, but if you use software triggering it is hard to get the ADCs to run synchronously. You can either use ePWM or CPU timer based triggering and collect the calibration samples simultaneously, or you can use software triggering and calibrate each ADC one at a time.
  • Thank you!

    I m really good with simultaneous sampling.. around 3/4 LSB average error beetwen 2 inputs sampled simultaneoulsy. No such a difference though with or wihtout calibration (as you had said earlier) but more stabile (less points going above 10 LSB différences).

    It s perfect!