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.

TMS320F280049C: ePWM Triggered ADC, BuRSt, DMA Oversampling

Part Number: TMS320F280049C


I'd like to know if I could configure the following:

the ePWM module shall trigger the ADCs each 10µs

all 3 ADCs shall be started in parallel, where a sequence (BURST) shall be configured, that I have finaly 3 * 5 Channels.*

This shall be confgured in a kind of oversampling method, that I just get a Interrupt after each 4th  ADC sequence (40us).
  (I want to avoid a 10us Interrupt to reduce the CPU Load)

I want to postprocess the Data of all for sequences in that interrupt.

Is it possible to configure that in combination with ePWM, ADC and e.g. DMA?

For parallel triggering ADC and SOCs form ADC I found many examples, also I found examples of using DMA for the ADC results.
But so far I am not sure if these pattern of a Interrupt each 4th event is possible.

*The 10us is just required for 3*3 Channels, other channels could be slower (like in the pfc3phvienna_F28004x example)

  • (Edited below for some corrections)

    Hello Arne,

    If I understand you correctly, you wish to do oversampling using burst mode conversions. Each of the individual conversions in the burst would be a different SOC in a sequence. For instance, to perform 4x oversampling: you could configure SOC12-SOC15 to the same channel. Then you would configure burst mode with trigger set to your ePWM SOC signal, a burst size of 4, and make sure those 4 SOCs have round robin priority (set the first 12 SOCs to have high priority). Your ADC interrupt source would be SOC15. You can still configure DMA to transfer data from the ADC result registers as desired.

    Relevant code examples to help:

    • adc_ex12_burst_mode_oversampling
    • adc_ex6_soc_continuous_dma (to show how to configure DMA transfers)

    Best regards,
    Ibukun