Hi @Prerna_Nibe ,
These methods are used for data transfer depending on the application, and each has its advantages and limitations.
For example:
• DMA is highly efficient for large data transfers, significantly reducing CPU workload, data transfer is constant and faster but setting up and debugging can be complex.
• Polling is simple to implement, but it is inefficient for high-speed tasks. It consumes more CPU time and power resources because the CPU must repeatedly check the status of the data transfer, even when no data is ready.
• Interrupts are great for time-sensitive tasks, they allows the CPU to perform other task between interruptions, but they add complexity and require careful handling to avoid overhead.
For continuous audio data transmission, DMA is typically the most suitable option it is scalable to high frequencies and large buffers and ensure that data transfer is constant and without interruption.
It is helpful to examine the data frame and clock signals to check for any gaps or timing inconsistencies during the process. If you can share the data frame or clock signals, I can help visualize and analyze any potential issues in the transfer process.
BR,
IsaulO.