SPRUJC6A December 2024 – July 2025 AM2752-Q1 , AM2754-Q1
The group interrupt is used to allow multiple stream DMA events to be tied together. That is, multiple channel inputs and outputs to be managed using a single DMA. A group is configured by writing to either the ASRC_IGRPSEL_0 to ASRC_IGRPSEL_3 registers for input groups, or the ASRC_OGRPSEL_0 to ASRC_OGRPSEL_3 registers for output groups. In the ASRC_IGRPSEL and ASRC_OGRPSEL registers there is a bit field for each channel. The group is determined by all the channels that have a 1 in them. When all of the selected streams in the input or output group are above the threshold, the corresponding group interrupt will fire. Once an ingrp_intr interrupt is fired, next interrupt will be generated only after INFIFO_THRESHOLD number of Audio RX Sync pulses has occured for all the channels of that group. Once an outgrp_intr interrupt is fired, next interrupt will be generated only after OUTFIFO_THRESHOLD number of Audio RX Sync pulses has occured for all the channels of that group.
When the CPU is used to transfer data to ASRC, whenever an ingrp_intr is triggered, SW needs to read the ASRC_IGIRQENSTS status register and needs to determine which group channels needs to be serviced. Based on interrupt status register, software can trigger DMA to initiate transactions to channels of that particular group. Data transfer will be in the same manner as described in ASRC Group Mode Audio Data Write for Channels of Group N with DMA triggered by software instead of ingrp_evt event. After servicing the channel, SW needs to clear the interrupt for that particular group.
When the CPU is used to transfer data from ASRC, whenever there is outgrp_intr is triggered, SW needs to read the ASRC_OGIRQENSTS status register and needs to determine which group channels needs to be serviced. Based on interrupt status register, software can trigger DMA to initiate transactions to channels of that particular group. Data transfer will be in the same manner as described in ASRC Group Mode Audio Data Read from Channels of Group N with DMA triggered by software instead of outgrp_evt event. After servicing the channel, SW needs to clear the interrupt for that particular group.