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.

TMS320F28377S: ADC Architecture and Input Signal Mapping

Part Number: TMS320F28377S

I am using the TMS320F28377SPZPS, 100 pin package.  From Figure 5-29 in the data sheet it appears that:

Inputs ADCINA0 - ADCINA5 are exclusively mapped into ADC-A

Inputs ADCINB0 - ADCINB5 are exclusively mapped into ADC-B

Inputs ADCIN14 and ADCIN15 can be mapped into either ADC module. 

Is this the case exclusively, or can any of the inputs be mapped into either of the ADC modules?  In other words can I map some or all of ADCINA0 - ADCINA5 into ADC-B, and some or all of ADCINB0 - ADCINB5 into ADC-A?  The documentation seems to support this.

Thanks in advance for any assistance.

  • Hi Andrew,

    These are exclusive physical channel connections for each ADC and you cannot reassign these to the other ADC modules. ADCIN14 and ADCIN15 are common channels that have direct connection to both ADC modules.

    Regards,
    Joseph
  • Thanks Joseph.

    For ADC-A, do I only need to initialize ADCSOC0CTL - ADCSOC5CTL, and can I only program the CHSEL field with vales 0 - 5, corresponding to ADCINA0 - ADCINA5?

    Likewise for ADC-B, do I only need to initialize ADCSOC0CTL - ADCSOC5CTL, and can I only program the CHSEL field with vales 0 - 5, corresponding to ADCINB0 - ADCINB5, or do I use 7 - 12?

    ADCIN14 and ADCIN15 can be assigned to either ADC, with CHSEL fields being 14 (0xE) or 15 (0xF), correct?
  • Hi Andrew,

    For either ADC module, you can use all SOCs from 0-15. Note that SOCs are not exclusively mapped to channels. You can map an SOC to any available channel that is available to the device. Most importantly, you need to be aware of the SOC trigger sequence. When SOC priority is not configured, conversion is initiated first on SOC0, then SOC1...and so forth until SOC15 or until SW tells it to stop depending on how you define and use the ADC interrupts.

    For example, you can have an ADCA setup that assigns the channels as follows:

    AdcaRegs.ADCSOC0CTL.bit.CHSEL = 3;
    AdcaRegs.ADCSOC1CTL.bit.CHSEL = 1;
    AdcaRegs.ADCSOC2CTL.bit.CHSEL = 2;
    AdcaRegs.ADCSOC3CTL.bit.CHSEL = 5;
    AdcaRegs.ADCSOC4CTL.bit.CHSEL = 0;
    AdcaRegs.ADCSOC5CTL.bit.CHSEL = 15;
    AdcaRegs.ADCSOC6CTL.bit.CHSEL = 14;
    :
    :

    This set up is valid and the order of conversion will follow the SOC sequence and would convert on the corresponding channels assigned for each of the SOCs. Similar setup can be done on ADCB. You can even use only one SOC if that is all that your application requires.

    Hope this clarifies the SOC/channel assignment for you.

    Best regards,
    Joseph
  • Mostly clarified, thanks.

    One outstanding question, for programming of CHSEL for ADC-B: which is correct:

    AdcbRegs.ADCSOC0CTL.bit.CHSEL = 0; // 0 corresponds to ADCINB0
    AdcbRegs.ADCSOC1CTL.bit.CHSEL = 1; // 1 corresponds to ADCINB1
    AdcbRegs.ADCSOC2CTL.bit.CHSEL = 2; // 2 corresponds to ADCINB2
    AdcbRegs.ADCSOC3CTL.bit.CHSEL = 3; // 3 corresponds to ADCINB3
    AdcbRegs.ADCSOC4CTL.bit.CHSEL = 4; // 4 corresponds to ADCINB4
    AdcbRegs.ADCSOC4CTL.bit.CHSEL = 5; // 5 corresponds to ADCINB5

    or this:
    AdcbRegs.ADCSOC0CTL.bit.CHSEL = 6; // 6 corresponds to ADCINB0
    AdcbRegs.ADCSOC1CTL.bit.CHSEL = 7; // 7 corresponds to ADCINB1
    AdcbRegs.ADCSOC2CTL.bit.CHSEL = 8; // 8 corresponds to ADCINB2
    AdcbRegs.ADCSOC3CTL.bit.CHSEL = 9; // 9 corresponds to ADCINB3
    AdcbRegs.ADCSOC4CTL.bit.CHSEL = 10; // 10 corresponds to ADCINB4
    AdcbRegs.ADCSOC4CTL.bit.CHSEL = 11; // 11 corresponds to ADCINB5

    Many Thanks!!
  • Hi Andrew,

          Use the first set up since there are no physical channels for ADCB 6 to 11.

    Regards,

    Joseph

  • Hi Andrew,

    I have not hear from you for a while so I am assuming that your questions are resolved, hence closing this thread. If you still have issues, please post it in this forum and we will try to provide answers.

    Regards,
    Joseph