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.

MSP432E401Y: MSP432E401Y ADC DMA

Part Number: MSP432E401Y

I m using MSP432E eval board and would like to program all 20 ADC channels for sampling voltage. Initial implementation i have done using interrupt so, to read all 20 channels 3 interrupts get generated with 8+8+4 sequence mode. So the CPU need to serve all 3 interrupts to read all 20 channels.

I would like to use DMA instead to reduce CPU overhead. for that i would like to know what is the best way to configure DMA so that all 20 channels can be sampled and read by CPU with single interrupt? 

  • Arathi,
    There is a limit on the # of samples that can be handled by the sequencers for each ADC (only 17 total samples (8,4,4,1) on each ADC's). So, I would suggest setting up both ADCs as follows:

    ADC 1- Sequencer SS0 8 samples
    ADC 2- Sequencer SS0 8 samples
    ADC 2- Sequencer SS1 4 samples

    DMAs are set to transfer data trigger by the end of each SSx sequencer
    Interrupt is triggered by end of ADC 2 SS1 sequencer.

    I'm assuming for now that you want to trigger the sampling via software. In this case you can trigger ADC1 & 2 together (in 2 separate API calls, but essentially simultaneous. Since ADC2 is sampling more channels, we can guarantee that when it asserts an interrupt all 20 channels of data will be available, and you can handle all processing with one ISR.

    Hope that helps.
    -Bob L.
  • Hi Bob,

    Thanks for the reply.

    Just one clarification here.. In this scenario also all 3 DMA sequence ISR will get triggered wright?

    or I can set only to trigger last sequencer?  Processing I can do with last triggered ISR off course..

  • You don't need an ISR, you can use the end-of-conversion event from each sequencer to trigger a DMA transfer that you've previously set up. You'd use the (2nd) ADC's last end-of-sequence event to trigger an ISR and do any needed processing with the just-DMA'd data.
    -Bob

**Attention** This is a public forum