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.

incorrect measurement of ADC in Piccolo

Hello

I work with a microcontroller TMS320f28027PT. Faced with the problem in the measurement of the ADC.
If VssA closed to any ADC measurement result in a range from 0 to 40, randomly.
When you change the input voltage is observed speed characteristic indications ADC channels. For example, from 330 to 480 values of the ADC at a constant voltage. It does not depend on external or internal power ADC.

From which it can depend on and how to fix this?

Thanks in advance.

  • Hi Igor,

    Did you consider the "initial conversion issue" in the silicon errata document. The first conversion in a series of conversions must be discarded. So if you want to convert let's say channel 3, then you must set up your adc to convert channel 3 two consecutive times and only use the second conversion!

    Hope this is clear enough
    BR Andreas

  • Thank you for your clarification on this issue

     

    Igor

  • Is this ADC problem still valid? In errata it says that it concerns Revision 0. But what is the revision in these new devices? The code on top of my MCU is:

    TMS320

    F28035PNT

    C-09AJFT

     

    It says in errata file that if you have C    -XXXX then it is revision 0 but is mine MCU rev 1? Well I haven't checked if I have this ADC problem or not but I just wanted to know which revision I have.

  • in my understanding you do have revision 0 and the issue is valid for your device - to be confirmed by TI...

    BR Andreas

  • In errata file it says that if you have blank after C then it's rev0. Does the blank mean empty space or that there is no number after the C? I don't have blank space after C or number.

  • At your consultation, launched a measurement of one channel, on two consecutive occasions

    SOC0 -> SOC1
    The result of looking at ADCRESULT1. Established a stable dc voltage at the input and observed variations in the measurements, so it should be? Because occasionally observed oscillations unit jump to 100 units of the ADC. The average variation +/- 40 units ADC

    That is so run the channel on the measurement:


    / / Configure ADC
    EALLOW;
    AdcRegs.ADCCTL1.bit.INTPULSEPOS = 1; / / ADCINT1 trips after AdcResults latch

    AdcRegs.INTSEL1N2.bit.INT1E = 1; / / Enabled ADCINT1
    AdcRegs.INTSEL1N2.bit.INT1CONT = 0; / / Enabled ADCINT1 Continuous mode
    AdcRegs.INTSEL1N2.bit.INT1SEL = 1; / / setup EOC1 to trigger ADCINT1 to fire

    AdcRegs.ADCSOC0CTL.bit.CHSEL = 11; / / set SOC0 channel select to ADCINA4
    AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 5; / / set SOC0 start trigger on EPWM1A, due to round-robin SOC0 converts first then SOC1
    AdcRegs.ADCSOC0CTL.bit.ACQPS = 6; / / set SOC0 S / H Window to 7 ADC Clock Cycles, (6 ACQPS plus 1)

    AdcRegs.ADCSOC1CTL.bit.CHSEL = 11; / / set SOC0 channel select to ADCINA4
    AdcRegs.ADCSOC1CTL.bit.TRIGSEL = 5; / / set SOC0 start trigger on EPWM1A, due to round-robin SOC0 converts first then SOC1
    AdcRegs.ADCSOC1CTL.bit.ACQPS = 6; / / set SOC0 S / H Window to 7 ADC Clock Cycles, (6 ACQPS plus 1)

    EDIS;

    / / Assumes ePWM1 clock is already enabled in InitSysCtrl ();
    EPwm1Regs.ETSEL.bit.SOCAEN = 1; / / Enable SOC on A group
    EPwm1Regs.ETSEL.bit.SOCASEL = 4; / / Select SOC from from CPMA on upcount
    EPwm1Regs.ETPS.bit.SOCAPRD = 1; / / Generate pulse on 1st event
    EPwm1Regs.CMPA.half.CMPA = 0x0080; / / Set compare A value
    EPwm1Regs.TBPRD = 0x00FF; / / Set period for ePWM1
    EPwm1Regs.TBCTL.bit.CTRMODE = 0; / / count up and start
    Thank you

     

  • Hey TI people can you give us answer to this revision question?

  • you have rev 0

     

    sprz292

    page 6

     

  • Thanks. When will you relase the fixed version (rev1) ?

  • F2802x Rev A just started shipping against orders this week.