Other Parts Discussed in Thread: RM48L952, ADS8548
What can be done to reduce the interrupt service routine latency from an General-Purpose Input/Output (GIO) input interrupt request to less than 1 µs on the RM48L952?
1. RM48L952 General-Purpose Input/Output (GIO) terminal output used to start a conversion of channel pairs A, B, C, D of the ADS8548 (GIO to CONVST_A, CONVST_B, CONVST_C, CONVST_D)
2. 1.2 µs passes
3. ADS8548 BUSY/INT pin transitions high after the conversion of all eight channels sampled simultaneously has been completed (conditions: CONFIG bit C27 = 0, all CONVST_x tied together)
4. General-Purpose Input/Output (GIO) module of RM48L952 used to generate an interrupt request for the Vectored Interrupt Manager (VIM) as a result of the rising edge of the ADS8548 BUSY/INT pin. When a normal interrupt request (IRQ) is used, it takes 8 µs from the time the BUSY/INT pin goes high to the moment the interrupt service routine begins. This is too long. Less than a 1 µs delay is needed here.
5. To reduce the latency the IRQ was changed to a fast interrupt request (FIQ). For Index Interrupt with more than one channel assigned as a FIQ the latency was still too slow.
6. To improve the FIQ latency only one channel was assigned to the FIQ interrupt and to map the ISR code corresponding to this channel directly starting at 0x1C. The latency was then reduced from 8 µs to 1.75 µs. This is still unacceptable. In the application it needs to be less than 1 µs. What can be done to minimize the interrupt service routine latency?