I have a TI PCM1870 that I need to get working with a BF514 on SPORT1. I have successfully SPIed over to the control port to tell it to be a master, and the clocks (LR Clock and data clock) look right. The LR clock and data signals are connected to RFS1 and DR1PRI pins, respectively, and the appropriate PORTH_FER and PORTH_MUX registers are programmed to let the pins be SPORT1 capable. And once I send the SPI sequence to set things up, the chip seems to be generating the LR clock and data clock (and some nice looking random data).
The problem I have is that I have no idea how I can get the thing to give me data in the right format.
It is giving me data in the i2s format, with the LR clock low=left, and with 16 bit samples left-justified in a 32 bit dword per sample. There doesn't appear to be any way to get the part to give me 16 bit samples packed in 16 bit words--it looks like it has to be 32 bit dwords that contain the 16 bit samples.
What I want to end up with is an array of 16 bit samples from one channel, as a packed array in memory. That is, I don't want 32 bit samples, and I don't want both channels. I somehow need the SPORT + DMA to give me the first 16 bits of data after the assertion of the Left-clock signal (LR clock goes low), then ignore the upper 16 bits of wasted left-channel space, and ignore the entire 32 bits of right channel data.
How can I set it up to do that?
Thanks for your help!