SPRZ292S December 2008 – November 2020 TMS320F28020 , TMS320F280200 , TMS320F28021 , TMS320F28022 , TMS320F28022-Q1 , TMS320F280220 , TMS320F28023 , TMS320F28023-Q1 , TMS320F280230 , TMS320F28026 , TMS320F28026-Q1 , TMS320F28026F , TMS320F28027 , TMS320F28027-Q1 , TMS320F280270 , TMS320F28027F , TMS320F28027F-Q1
ADC: Out-of-Specification Current Consumption on Power Up
0, A, B
When the ADC module is powered up for the first time, it can consume 2x the current listed (IDDA) in the data manual until a sample is initiated.
Before the ADC is initially powered up, initiate a single conversion. Once the timing of the conversion has been satisfied, an ADC reset is recommended to restore the native state of the ADC before setting up the ADC as done before this addition. (Code is shown below.) If this amount of current can be tolerated by the system, then no change needs to be made to the setup code. Note that the current will go back to within data manual limits once the first conversion is processed by the ADC.
EALLOW;
SysCtrlRegs.PCLKCR0.bit.ADCENCLK=1; //Enable Clocks to ADC module
AdcRegs.ADCSOCFRC1.bit.SOC0 = 1; //Issue dummy conversion
asm(" rpt #19 || nop"); //Wait for conversion to propagate
AdcRegs.SOCPRICTL.bit.SOCPRIORITY = 1; //Change Priority Control to reset
AdcRegs.SOCPRICTL.bit.SOCPRIORITY = 0; //round robin pointer
EDIS;