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.

CCS/TMS320F28379D: ADC module: PPB Result and EOC interrupt

Part Number: TMS320F28379D

Tool/software: Code Composer Studio

Hello everyone,

My question is really simple. It is regarding the ADC module.

By the time the EOC interruption occurs, is the ADCPPBxRESULT (result of the post-processing) already updated? If not, how long does it take to update?

Thank you,

Renato

  • Hi Renato,

    Could you please elaborate on how you are reading ADCPPBxRESULT register. If you are reading this register in the Interrupt routine of ADC (with ADCCTL1.INTPULSEPOS configured to 0) , then this register would be updated by then.

    Regards,

    Srinivasa  

  • Hi Srinivasa,

    Thank you for your response.

    Yes. The result would be read in the Interrupt routine of ADC.

    However, I am a little confused about some concepts of the manual. The manual provides the following information:

    --------------------------------------------------------------------------------

    ADC Interrupt Pulse Position.
    0 Interrrupt pulse generation occurs at the end of the acquisition
    window
    1 Interrupt pulse generation occurs at the end of the conversion, 1
    cycle prior to the ADC result latching into its result register
    Reset type: SYSRSn

    -----------------------------------------------------------------------

    I have the following questions:

    1) In my understanding, the end of the acquisition window does not mean that conversion is already finished, am I right? If that is the case, I should configure ADCCTL1.INTPULSEPOS configured to 1, no? Can you double-check that?

    2) The ADC module has two registers for storing results: ADCRESULTx and ADCPPBxRESULT. According to the manual, when ADCCTL1.INTPULSEPOS is configured to 1, "interrupt pulse generation occurs at the end of the conversion, 1 cycle prior to the ADC result latching into its result register". Which "result register" is it referring to (ADCRESULTx or ADCPPBxRESULT)?

    Thank you for your attention,

    Renato

  • Hi Renato,

    Find my responses below.

    1) In my understanding, the end of the acquisition window does not mean that conversion is already finished, am I right? If that is the case, I should configure ADCCTL1.INTPULSEPOS configured to 1, no? Can you double-check that?

    <Srinivasa> Normally one would configure INTPULSEPOS to 1 so that an interrupt is generated at the end of conversion. However, there is a latency fot the interrupt to be notified to the CPU and for the interrupt service routine to read the result. If this latency needs to be reduced in an application, then one can configure INTPULSEPOS to 0, which would enable generation of the interrupt at the end of acquisition window, This allows, interrupt notification and interrupt service latency to be absorbed while the ADC is converting the analog value to its digital representation. If INTPULSEPOS is set to 0, it is the responsibility of the application to tune the ISR so that ADC result is read only after it is updated.

    2) The ADC module has two registers for storing results: ADCRESULTx and ADCPPBxRESULT. According to the manual, when ADCCTL1.INTPULSEPOS is configured to 1, "interrupt pulse generation occurs at the end of the conversion, 1 cycle prior to the ADC result latching into its result register". Which "result register" is it referring to (ADCRESULTx or ADCPPBxRESULT)?

    <Srinivasa> It is referring to ADCRESULTx register.

    Regards,

    Srinivasa