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.

strange problem ,28335 ADC initialization and power-up Sequence

Other Parts Discussed in Thread: CONTROLSUITE

One of my customers use 28335 for motor control products, with more than 10K pieces per year and the program inside is the same.

Recently they encountered a strange problem, there are about 20 PCB work abnormally because the ADC conversion results are wrong.

I did some experiments with their engineers, found that the ADC results are wrong when the DSP was power-up under the condition of relatively

high ambient temperature(We used a Hair-drier to heat the surface of the chip to 60~70℃. ), But when we Repower-up the DSP at room

temperature or after the chip cools down, conversion results are correct.They use external reference.

I checked their ADC initialization code,and When replace the initialization code from
AdcRegs.ADCTRL3.all = 0x00E0;
to
 AdcRegs.ADCTRL3.bit.ADCBGRFDN = 0x3;    // Power up bandgap/reference circuitry
 DELAY_US(ADC_usDELAY);                  // Delay before powering up rest
 AdcRegs.ADCTRL3.bit.ADCPWDN = 1;        // Power up rest of ADC
 DELAY_US(ADC_usDELAY2);                 // Delay after powering up ADC
, the problem is no longer appear .


And there is an description in the datasheet of the SPRU812 <TMS320x2833x Analog-to-Digital Converter (ADC) Module Reference Guide> as

follows

and in an example of the controlsuit there is a similar comments

    // To powerup the ADC the ADCENCLK bit should be set first to enable
    // clocks, followed by powering up the bandgap and reference circuitry.
    // After a 5ms delay the rest of the ADC can be powered up. After ADC
    // powerup, another 20us delay is required before performing the first
    // ADC conversion.

I would like to know why only a few pieces of the board have this problems ?

Should we have to follow this Power-up Sequence? And What is the theoretical basis of this Sequence?

  • The delay is required to ensure the bandgap and gain stage amplifiers have properly powered and stabilized before ADC conversion begin. The actual time needed can vary device to device and across temperature but the DS specification should ensure all devices work across the recommended operating conditions.
    Regards,
    Joe
  • Joe,thank you .
    The delay time in DS specification is 5ms, but When we increase the value to 15 ms,this problem achieved a solution.It makes me confused .
  • Hi Shuai,
    That is a bit puzzling.

    From a HW perspective I would check to make sure the capacitors on ADCREFP/M meet the DS requirements (i.e. 2.2uF low ESR) as well as the 22k-ohm resister on ADCRESEXT. These are important for reference stability.

    From a SW side, the best thing would be to run the adc_soc example if possible since it is a known working test case and can narrow the issue to HW or SW. If this cannot be done, I would audit the code and make sure no ADC reset, change in ADC prescaler, or change of ADC reference mode is occurring between the init code and first conversions. I would check the ADC clock prescalers since a common mistake is to overclock the ADC and that can have unpredictable results. I am doubtful ADCCLK is the issue since conversions are correct with enough delay, but worth confirming.

    Another possibility is to make sure the delay function is actually waiting the expected time. It is obviously doing something but perhaps not delaying the correct amount of time? In a lab environment you could perhaps toggle a pin before and after a delay and measure to make sure the behavior is as expected. If this cannot be done, you might make the delay time extremely long (like 3s), set a breakpoint just before the DELAY_US function, and then estimate the time to step over the function.

    Regards,
    Joe
  • thank you joe

    My customer  have used more than 100K 28335(the pcb and the programa is same ),and have not encountered this problem. They want to know the relationship between  temperature and time delay.Does TI has some  official test data? I just got a message , most of the  problematic 28335 are in the same batch.

  • Hi Shuai,
    Understood. If your customer suspects the devices are at fault and not performing within DS specification, the best thing is to return one or two through the customer return process.
    Regards,
    Joe
  • Hi joe,
    Customer is not satisfied with our explanation. And even we can solve the problem by modify the code, how can we ensure that this problem will not occur in the future .
    The most puzzling thing is that in the project of ti\controlSUITE\device_support\f2833x\v141\DSP2833x_examples_ccsv5\adc_soc ,did ont follow the Power-up Sequence in ADC initialization code. Customers feel that our interpretation is self contradictory. Do we have some official test data(the relationship between temperature and time delay) or a relative convincing explanation to customer.
  • Am I interpreting correctly that the DS, the ADC guide and the example code are all aligned and the only contradictory statement is the comment section in the example code?  I confirmed that the comment section is copy/paste from the F281x example code which did require these extra steps.  I will submit a change request for the comment section of the F28335 adc_soc example.

    As to why 5ms does not appear to work in the customer system for select devices, I suggest we wait for the test results of the devices that were returned.

    Regards,

    Joe

  • Hi Joe,

    As I mentioned before, the delay times was increased to 15 ms in the ADC Init code。 The customer did a lot of tests these days,and the problem no longer appear .They want to use this solution.At the same time ,they want to confirm that the 15ms value will not have other bad influence on the chip. I don't think there's any bad influence. Do you have any suggestions ?

  • There is no concern from device performance or other bad influence by using more than specified delay time.  The only concern some customers might have is increased time to get the system booted and ready for the application.  If your customer is content with the additional time, I agree that is the simplest and more straightforward solution.

    regards,

    Joe