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.

TMS320F28379D: ADC linearity trim

Part Number: TMS320F28379D


Hello,

#1

The TRM states in chapter 10.1.12 that "the boot ROM will call the calibration functions, so trim values should be initially populated without user intervention".

This does not appear to be the case for function CalAdcXINTL(), as all ADCINLTRIMx registers have a zero value after the boot exit. Same thing for GetAdcOffsetTrimOTP().

#2

Can someone explain to me what's going on in function AdcSetMode / ADC_setMode with the following lines?

                //
                //12-bit linearity trim workaround
                //
                AdcaRegs.ADCINLTRIM1 &= 0xFFFF0000;
                AdcaRegs.ADCINLTRIM2 &= 0xFFFF0000;
                AdcaRegs.ADCINLTRIM4 &= 0xFFFF0000;
                AdcaRegs.ADCINLTRIM5 &= 0xFFFF0000;

Cheers,

Pierre

  • Hi Pierre,

    The linearity trim is loaded by the AdcSetMode function and not by the BROM as you point out.

    The best possible 12-bit trim masks out some of the trim fields that 16-bit trim uses. That is what the second code snippet you posted does. This doesn't make a huge difference in performance since the magnitude of the extraneous trims is small, but it helps a little bit. There isn't an erratum for this issues because 12-bit mode easily meets the DS specifications for linearity either way.