AnsweredAssumed Answered

BF51x SPORT question

Question asked by kbrafford on Jan 24, 2011
Latest reply on Jan 25, 2011 by Prashant



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!


--Keith Brafford