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.

MSPM0L1306: MSPM0L1306

Part Number: MSPM0L1306

What is the maximum speed of the ADC with DMA? I ma trying to setup ADC 400 kHz sample rate and use DMA to transfer ADC samples to buffer. However, after filling the buffer and receiving the DMA interrupt (DMA disables), I notice that DMA doesn't write all the data correctly.I connected to ADC miander 50kHz and expect to have in buffer four samples high leve and next four low but I see in buffer randomly high and low values.
Upon reducing the ADC sample frequency to 200 kHz, the DMA buffer correctly fills with two high values followed by two low values.

As a start project I used example adc12_max_freq_dma and modify it to trigger ADC by Timer0 event.

Could you advise what is the maximum ADC speed with DMA or where can be the mistake?

  • Hi Anatolii,


    I have confirmed the ADC runs at near full speed with no issues.
    I used the following example to capture 1024 measurements of a 1kHz, 1v p-p sine wave (offset 1v so swing between 2v and 0v) and logged every result.
    I import the data into Excel and the ADC data reproduces the sine waveform perfectly.

    C:\ti\mspm0_sdk_1_20_01_06\examples\nortos\LP_MSPM0L1306\driverlib\adc12_max_freq_dma .

    The ADC  is clocked at 32MHz and sample time is 250ns.  Looking at the datasheet, as 12-bit conversion actually takes 14 clocks (for sync).

    (1/32MHz * 14 ) +250ns = 437ns + 250ns = 687ns -> 1/687ns = 1.45 samples/sec.

     

  • Hi Dennis,

    I have updated SDK to mspm0_sdk_1_20_01_06 and now ADC + DMA works with 400k samples/sec. I don't know if the issue was related to old SDK or project settings I had but now it works.
    Thank you for support