AM13E23019: Continuous conversion, ADC

Genius 17905 points

Part Number: AM13E23019

Hello,

I have a question for ADC in AM13E23019.

I want to convert one channel continuously (over 1000 times) started by a MCPWM timer tigger.
AM13's ADC looks like simplified version of C28x ADC.  
In this version,  a retrigger fuctnion looks like being removed. 
Is there any way to realize cntinuous conversion started by a trigger?

Regards,
Oba

  • Hello Oba,

    Yes — continuous conversion is achievable on the AM13E23019 even without a dedicated retrigger function. The key mechanism is ADC interrupt feedback triggering, which effectively replaces the C28x retrigger block.

    How It Works

    The AM13E23019 ADC allows each SOC (Start-of-Conversion) to be triggered when the ADCINT1 or ADCINT2 flag is set, configured via the ADCINTSOCSEL1 register (for SOC0–SOC7) or ADCINTSOCSEL2 register (for SOC8–SOC15). The TRM explicitly states this mechanism "can be useful for creating continuous conversions" [1][2].

    Importantly, setting the ADCINT flag does not require generating an actual CPU interrupt — the flag alone is sufficient to retrigger the SOC, so the loop runs autonomously [3].

    Configuration Steps

    1. Configure MCPWM to generate the initial trigger:

      • Set up the MCPWM Event-Trigger submodule to output an ADCSOCA/B/C/D signal on your desired event (e.g., CTR=Zero, CTR=PRD, or compare match) [4][5]
      • Prescaling is available from every event up to every 15th event [5]
    2. Configure an SOC for your channel with the MCPWM trigger:

      // Example: SOC5 converts ADCINA1, triggered by PWM3 SOCB
      AdcaRegs.ADCSOC5CTL.bit.CHSEL = 1; // Channel ADCINA1
      AdcaRegs.ADCSOC5CTL.bit.ACQPS = 15; // Sample window (16 MCLK cycles)
      AdcaRegs.ADCSOC5CTL.bit.TRIGSEL = 14; // PWM3 SOCB trigger
    3. Configure an ADC interrupt to fire at end-of-conversion:

      • Set ADCINT1 (or ADCINT2) to trigger on SOC5 completion
    4. Feed ADCINT back as the trigger for the same SOC:

      • Configure ADCINTSOCSEL1 so that SOC5 is also triggered by the ADCINT1 flag [1]
      • Enable continuous interrupt mode so the flag auto-clears and re-fires

    This creates a self-sustaining loop: the MCPWM provides the initial kick, and each completed conversion automatically triggers the next one via the ADCINT flag — achieving your 1000+ continuous conversions without CPU intervention [1][3].

    Summary

    Approach
    Mechanism
    Best For
    ADCINT feedback
    ADCINT1/2 flag retriggers SOC via ADCINTSOCSEL
    Unlimited continuous conversions, autonomous operation

    To help refine this further, it would be useful to know:

    • Whether you need CPU processing during the 1000+ conversions or only at completion (affects whether to enable actual CPU interrupts)
    • Your desired sampling rate or timing constraints between conversions
    • Whether you plan to use DMA to offload result handling during high-speed continuous conversion


    1. AM13E23019 TRM - ADC Continuous Conversions (ADCINTSOCSEL)
    2. AM13E23019 TRM - ADC SOC Trigger Selection and MCPWM Example
    3. AM13x Academy - ADC Module
    4. AM13E23019 TRM - MCPWM Event-Trigger Submodule
    5. AM13E23019 TRM - MCPWM Event-Trigger Operational Overview

    Best Regards,

    Zackary Fleenor