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.

Piccolo ADC Conversion Priority

Let's say that SOC0-SOC5 are assigned high priority, but SOC0-SOC1 have a trigger1 source and SOC2-SOC5 have a different trigger2 source.

If trigger2 is received first, then trigger1 is received before the other trigger2 SOC's are finished, will SOC0-SOC1 pre-empt the queue and be processed right away or will they have to wait until all SOC's triggered by trigger2 are finished?

 

  • Manoel,

    My understanding is this:

    *Trigger 2 is received, SOC2 through SOC5 flags are set to pending, SOC2 starts converting immediately

    *Trigger 1 is received a few cycles later (assume that SOC2 has not completed yet), SOC0 and SOC1 flags are set to pending (along with SOC3 through SOC5 flags which were already pending).

    *When SOC2 completes, then SOC0 will convert, then SOC1, then SOC3, then SOC4, then SOC5

    Essentially each trigger sets the SOC pending flags as soon as it is received.  The ADC state machine looks at these flags: always when idle, or immediately when a conversion completes. If there are flags set, it always kicks off the highest priority SOC.