I am trying to input I2s interleaved audio input directly into external memory. I am starting with the SPDIF to Analog TalkThru with SRC (C) example project (21489). I have tried defining the SPORT receive buffers in external memory, but they are no longer populated once I do this.
I can't seem to find any clear info on how this should be done. Can anyone give me some clear instructions?
I understand that only DMA0 and DMA1 can be used for transferring data to and from external memory, so these would have to be used to input directly into external memory (assuming I can transfer data from SPORT directly to external memory without the need for an intermediate buffer). This would all be configured in initSPORT which only runs once on start-up. I am currently using DMA0 and DMA1 to transfer data between internal and external memory and vice versa in a different part of my project. So, my second question is this:
Is it possible to configure SPORTs to transfer between internal and external memory and also use DMA0 and DMA1 to transfer data between internal and external memory (and vice versa) in a different part of the program? It would mean DMA0 and DMA1 would have to be configured for each SPORT DMA transfer and re-configured for the other transfers. I am thinking maybe SPORT related DMA transfers could be protected by a semaphore for this purpose so they would never be disrupted and then configured in the SPORTisr.
Any thoughts/insights would be much appreciated.