I am searching for clarification about the interaction of various features on the BF548 SPORT. I will have SPORT2 connected to two AD1938 audio codecs, one on DT/DR2PRI, the other on DT/DR2SEC, both configured to use TDM data modes (I currently only have one for development). On the BF548 I am using multi-channel mode and packed 2D DMA (ping-pong style descriptors) to move the incoming/outgoing data into the proper buffers. My question relates to how this all fits together once I add in the second codec on DT/DR2SEC; does the multi-channel setup alter the interleaving of the primary/secondary data in the SPORTx_TX/RX register in any way? For instance, if I wanted to receive data on channel 1 of the first codec (C1_1) and channel 3 of the second codec (C2_3), would I have my DMA move a sample for C1_1 followed immediatly by a sample for C2_3 and interleave the multi-channel select registers like this:
SPORT2_MRCS0 : 0000 0000 0000 0000 0000 0000 0010 0001
Codec 2 chan 3 enable__________________________| | | | | |
Codec 1 chan 3 disable __________________________| | | | |
Codec 2 chan 2 disable____________________________| | | |
Codec 1 chan 2 disable_____________________________| | |
Codec 2 chan 1 disable______________________________| |
Codec 1 chan 1 enable _______________________________|
Or is the channel number only incremented after reading a "primary" piece of data from the SPORTx_RX, not a secondary?
Thanks, and I'm sorry if my little drawing there displays oddly once this is posted.