SPRZ488D March   2022  – September 2023 AM2631 , AM2631-Q1 , AM2632 , AM2632-Q1 , AM2634 , AM2634-Q1

 

  1.   1
  2. 1Usage Notes and Advisories Matrices
  3. 2Silicon Usage Notes
    1.     i2324
    2.     i2348
    3.     i2364
  4. 3Silicon Advisories
    1.     i2310
    2.     i2311
    3.     i2313
    4.     i2329
    5.     i2345
    6.     i2346
    7.     i2347
    8.     i2349
    9.     i2350
    10.     i2352
    11.     i2353
    12.     i2354
    13.     i2355
    14.     i2356
    15.     i2357
    16.     i2358
    17.     i2359
    18.     i2374
    19.     i2375
    20.     i2386
    21.     i2392
    22.     i2394
    23.     i2395
    24.     i2401
    25.     i2402
    26.     i2403
    27.     i2404
    28.     i2405
  5.   Trademarks
  6. 4Revision History

i2355

CONTROLSS-ADC: DMA Read of Stale Result

Details:

The ADCINT flag can be set before the ADCRESULT value is latched (see the tLAT and tINT(LATE) columns in the ADC Timings tables of the AM263x Technical Reference Manual).

The DMA can read the ADCRESULT value as soon as 3 cycles after the ADCINT trigger is set. As a result, the DMA could read a prior ADCRESULT value when the user expects the latest result if all of the following are true:

  • The ADC is in late interrupt mode.
  • The ADC operates in a mode where tINT (LATE) occurs 3 or more cycles before tLAT (ADCCTL2 [PRESCALE] > 2 for 12-bit mode).
  • The DMA is triggered from the ADCINT signal.
  • The DMA immediately reads the ADCRESULT value associated with that ADCINT signal without reading any other values first.
  • The DMA was idle when it received the ADCINT trigger.

Only the DMA reads listed above could result in reads of stale data; the following non-DMA methods will always read the expected data:

  • The ADCINT flag triggers a CLA task.
  • The ADCINT flag triggers a CPU ISR.
  • The CPU polls the ADCINT flag.

Workaround(s):

Trigger two DMA channels from the ADCINT flag. The first channel acts as a dummy transaction. This will result in enough delay that the second channel will always read the fresh ADC result.