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.

TMS320F28335: ADC SEQUENTIAL-SIMULTANEOUS MODES

Part Number: TMS320F28335
Other Parts Discussed in Thread: CONTROLSUITE

Hi,

I took the adc configuration file from below path 

C:\ti\controlSUITE\libs\app_libs\motor_control\drivers\f2833x_v2.0

There i added another 8 ADC channels in ADCCHSELSEQ from CONV08 to CONV15.

I changed the program to CASCADED. Now it becomes Sequential cascaded.

I didn't chang the MAX_CONV1, default is 7.

but i am able to read all the 16 ADC inputs at respective ADC Result registers.

1) I think this is how ADC working, correct me if i'm wrong.

On first SOC: ADC from 0 - 7 are converted

On second SOC: ADC from 8 -15 are converted

On third SOC: ADC from 0 - 7 are converted

On fourth SOC: ADC from 8 -15 are converted..... is it correct?

continuous run and sequence override are not set, ZERO

  • Hi,

    I have written below how the ADC works in sequential for 16 ADC inputs...... correct me if i'm wrong.

    1) Sequential Dual-Sequencer Example
    AdcRegs.ADCTRL1.bit.SEQ_CASC = 0; //Dual Sequencer mode
    AdcRegs.ADCTRL3.bit.SMODE_SEL = 0; //Sequential mode

    AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 4; //5 ADC input conversions, max 8 ADC’s
    AdcRegs.ADCMAXCONV.bit.MAX_CONV2 = 3; //4 ADC input conversions, max 8 ADC’s

    On 1st SOCA: First 5 ADC input channels of SEQ1 are converted. i.e. 0, 1, 2, 3 and 4.
    On 1st SOCB: First 4 ADC input channels of SEQ2 are converted. i.e. 8, 9, 10 and 11.
    On 2nd SOCA: Next 5 ADC input channels of SEQ1 are converted i.e. 5, 6, 7, 0 and 1.
    On 2nd SOCB: Next 5 ADC input channels of SEQ2 are converted i.e. 12, 13, 14 and 15.

    2) Sequential Cascading Example
    AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; //Dual Sequencer mode, SEQ = SEQ1+ SEQ2
    AdcRegs.ADCTRL3.bit.SMODE_SEL = 0; //Sequential mode

    AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 6; //7 ADC input conversions, max 16 ADC’s

    On 1st SOC: First 7 ADC input channels of SEQ are converted i.e. 0, 1, 2, 3, 4, 5 and 6.
    On 2nd SOC: Next 7 ADC input channels of SEQ are converted i.e. 7, 8, 9, 10, 11, 12 and 13.
    On 3rd SOC: Next 7 ADC input channels of SEQ are converted i.e. 14, 15, 0, 1, 2, 3, and 4.


    Regards,
    Sumanth
  • sumanth padarthy38 said:

    Part Number: TMS320F28335

    Hi,

    I took the adc configuration file from below path 

    C:\ti\controlSUITE\libs\app_libs\motor_control\drivers\f2833x_v2.0

    There i added another 8 ADC channels in ADCCHSELSEQ from CONV08 to CONV15.

    I changed the program to CASCADED. Now it becomes Sequential cascaded.

    I didn't chang the MAX_CONV1, default is 7.

    but i am able to read all the 16 ADC inputs at respective ADC Result registers.

    1) I think this is how ADC working, correct me if i'm wrong.

    On first SOC: ADC from 0 - 7 are converted

    On second SOC: ADC from 8 -15 are converted

    On third SOC: ADC from 0 - 7 are converted

    On fourth SOC: ADC from 8 -15 are converted..... is it correct?

    continuous run and sequence override are not set, ZERO

    Yes, this sounds correct.

  • sumanth padarthy38 said:
    Hi,

    I have written below how the ADC works in sequential for 16 ADC inputs...... correct me if i'm wrong.

    1) Sequential Dual-Sequencer Example
    AdcRegs.ADCTRL1.bit.SEQ_CASC = 0; //Dual Sequencer mode
    AdcRegs.ADCTRL3.bit.SMODE_SEL = 0; //Sequential mode

    AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 4; //5 ADC input conversions, max 8 ADC’s
    AdcRegs.ADCMAXCONV.bit.MAX_CONV2 = 3; //4 ADC input conversions, max 8 ADC’s

    On 1st SOCA: First 5 ADC input channels of SEQ1 are converted. i.e. 0, 1, 2, 3 and 4.
    On 1st SOCB: First 4 ADC input channels of SEQ2 are converted. i.e. 8, 9, 10 and 11.
    On 2nd SOCA: Next 5 ADC input channels of SEQ1 are converted i.e. 5, 6, 7, 0 and 1.
    On 2nd SOCB: Next 5 ADC input channels of SEQ2 are converted i.e. 12, 13, 14 and 15.

    2) Sequential Cascading Example
    AdcRegs.ADCTRL1.bit.SEQ_CASC = 1; //Dual Sequencer mode, SEQ = SEQ1+ SEQ2
    AdcRegs.ADCTRL3.bit.SMODE_SEL = 0; //Sequential mode

    AdcRegs.ADCMAXCONV.bit.MAX_CONV1 = 6; //7 ADC input conversions, max 16 ADC’s

    On 1st SOC: First 7 ADC input channels of SEQ are converted i.e. 0, 1, 2, 3, 4, 5 and 6.
    On 2nd SOC: Next 7 ADC input channels of SEQ are converted i.e. 7, 8, 9, 10, 11, 12 and 13.
    On 3rd SOC: Next 7 ADC input channels of SEQ are converted i.e. 14, 15, 0, 1, 2, 3, and 4.


    Regards,
    Sumanth

    Yes, this also sounds correct.