SPRUJ53B April 2024 – September 2024 TMS320F28P550SJ , TMS320F28P559SJ-Q1
The ADC can be configured to generate an early interrupt pulse before the ADC conversion completes. If this option is used to start a CLA task, the CLA is able to read the result as soon as the conversion result is available in the ADC result register. This combination of just-in-time sampling along with the low interrupt response of the CLA enable faster system response and higher frequency control loops. The CLA task trigger to first instruction fetch interrupt latency is 4 cycles.
Timings for ADC conversions are shown in the timing diagrams of the ADC chapter. If the ADCCLK is a divided down version of the SYSCLK, the user has to account for the conversion time in SYSCLK cycles.
From a CLA perspective, the pipeline activity is shown in Table 7-4 for an N-cycle (SYSCLK) ADC conversion. The N-2 instruction arrives in the R2 phase just in time to read the result register. While the prior instructions enter the R2 phase of the pipeline too soon to read the conversion, the instructions can be efficiently used for pre-processing calculations needed by the task.
ADC Activity | CLA Activity | F1 | F2 | D1 | D2 | R1 | R2 | E | W |
---|---|---|---|---|---|---|---|---|---|
Sample | |||||||||
Sample | |||||||||
... | |||||||||
Sample | |||||||||
Conversion(Cycle 1) | Interrupt Received | ||||||||
Conversion(Cycle 2) | Task Startup | ||||||||
Conversion(Cycle 3) | Task Startup | ||||||||
Conversion(Cycle 4) | I(Cycle 4) | I(Cycle 4) | |||||||
Conversion(Cycle 5) | I(Cycle 5) | I(Cycle 5) | I(Cycle 4) | ||||||
Conversion(...) | ... | ... | ... | ... | ... | ... | ... | ||
Conversion(Cycle N-6) | I(Cycle N-6) | I(Cycle N-6) | I(Cycle N-7) | I(Cycle N-8) | I(Cycle N-9) | I(Cycle N-10) | I(Cycle N-11) | ||
Conversion(Cycle N-5) | I(Cycle N-5) | I(Cycle N-5) | I(Cycle N-6) | I(Cycle N-7) | I(Cycle N-8) | I(Cycle N-9) | I(Cycle N-10) | ||
Conversion(Cycle N-4) | I(Cycle N-4) | I(Cycle N-4) | I(Cycle N-5) | I(Cycle N-6) | I(Cycle N-7) | I(Cycle N-8) | I(Cycle N-9) | ||
Conversion(Cycle N-3) | I(Cycle N-3) | I(Cycle N-3) | I(Cycle N-4) | I(Cycle N-5) | I(Cycle N-6) | I(Cycle N-7) | I(Cycle N-8) | ||
Conversion(Cycle N-2) | Read RESULT | Read RESULT | I(Cycle N-3) | I(Cycle N-4) | I(Cycle N-5) | I(Cycle N-6) | I(Cycle N-7) | ||
Conversion(Cycle N-1) | Read RESULT | I(Cycle N-3) | I(Cycle N-4) | I(Cycle N-5) | I(Cycle N-6) | ||||
Conversion(Cycle N-0) | Read RESULT | I(Cycle N-3) | I(Cycle N-4) | I(Cycle N-5) | |||||
Conversion Complete | Read RESULT | I(Cycle N-3) | I(Cycle N-4) | ||||||
RESULT Latched | Read RESULT | I(Cycle N-3) | |||||||
RESULT Available | Read RESULT |
The ADCINTCYCLE register of the ADC can be programmed by the application to adjust the generation of the interrupt pulse to align with the ADC read operation. For example, if the first instruction in the task reads the ADC and the conversion time is N SYSCLK cycles, then the delay programmed is (N-2) - 4 = N-6.