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.

AM6422: SDK8.6 R5F ADC CONTINUOUS DMA

Part Number: AM6422

Tool/software:

Hello,

    We are currently utilizing the R5F for development, employing its internal ADC for sampling. Data is acquired in continuous mode and stored in a double - buffer configuration via DMA. For instance, when operating at a sampling rate of 100K, we set the DMA transfer count to generate an event interrupt. The interrupt occurs every 100 sampling points, which translates to an event interrupt once every 1ms. Once the first interrupt is triggered, the ADC can continue functioning normally and store data in the second buffer, thus avoiding data overwriting. The examples provided mostly focus on single - shot sampling and offer limited information on the integration with DMA. We would greatly appreciate it if you could offer some guidance to help us develop the functionality we've mentioned. Thank you very much.

  • Hello Wanglilli,

    You may get delayed replies as I am in other escalations .

    I will get back to you on this soon.

    Regards,

    Anil.

  • Hello,

        Is anything news about the question?

  • Hello,

        Is anything news about the question?

  • Hello Wanglili,

    In MCU+SDK V11.0, we are using PKTDMA (Packet DMA) for continuous data sampling with the ADC.

    Since PKTDMA does not support linked or chained transfers, the DMA Transfer Request (TR) must be manually resubmitted after each transfer completes.

    For example, if you’re sampling at 100 kHz, and you configure the DMA to transfer 100 samples per TR, the PKTDMA interrupt will be triggered every 1 ms (after 100 samples). Once this interrupt occurs, you must:
    1. Process the completed buffer (or mark it for later processing),
    2. Resubmit a new TR descriptor (TRPD) for the next buffer,
    3. And restart the PKTDMA transfer to the alternate buffer.

    This manual resubmission enables a software-based double-buffering mechanism, which helps maintain continuous ADC sampling without data loss.

    Regards,

    Anil.

  • Hello,

        Thanks for your reply.Is the current SDK version 8.6 not supporting this scenario? Specifically, if an interrupt is generated every 1ms, and within the interrupt handler, we need to copy 100 sampled data points while simultaneously preparing a new buffer region for the next DMA transfer (with the ADC continuing to sample data in the background), would a sampling point be missed if the processing time exceeds 10μs during this interval? Is that the case?

  • Hello Wanglili,

    The ADC with the DMA example is available in the link below.

    The ADC interrupt triggers every 1msec. In this interrupt you need to update the new buffer and resubmit the new TR.

    This way you can achieve your requirement.

    The ADC processing time is more than 10usec. Then what is the problem ? The ADC DMA interrupt triggers every 1msec.

    C:\ti\mcu_plus_sdk_am64x_08_06_00_43\examples\drivers\udma\udma_adc_read

    Regards,

    Anil.