I am experiencing an issue with the mcaspPlayBk example provided in the StarterWare for the EVM which provides a simple loopback of data.
I have only modified the pin muxes from the StarterWare example so the program works with McASP0 and I2C2 (instead of McASP1 and I2C1). This way I can interface the BeagleBone with the Audio Cape RevB1 (AIC3104). The program runs fine, except the L/R channels get swapped in the AM335x.
When I send an analog signal to the CODEC left channel, I can monitor the data out of the CODEC and see that the left channel data appears while the frame sync is low (as expected according to the AIC3104 datasheet for I2S). However, after the AM335x performs the copy of input data buffers to the output buffers, the AM335x outputs the left channel data while the frame sync is high, so the CODEC plays this data on the R channel.
I have double checked the I2S format settings (XFMT, RFMT) and they agree with the TRM. Does the mcaspPlayBk example have the same behavior when running on the actual EVM?
I would appreciate any advice or assistance you could provide me!
Thanks,
Jason