This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

mono audio I2S transmission from OMAP to TPS65950?

Other Parts Discussed in Thread: TPS65950, OMAP3530

I am working on a custom sound driver using the OMAP3530 McBSP2 and the TPS65950 audio codec (platform is the BeagleBoard). I have gotten basic stereo .wav files to play at 8kHz sample rate/ 16bits per sample, now I am trying to support mono 8kHz/16bps files.

I have the stereo frames configured as follows: I2S frame length: 32bits, word length: 16bits, frame sync width 16,  frame sync period 32.

Is there a way to configure the TPS65950 for "mono" I2S mode? Basically only transmit one channel, to either L or R output. All examples in the TRM are for stereo data transmission. Is there a way to do this through McBSP2/TPS65950 configuration, or do I need to handle it in the software (ie, zero fill the second channel data, or maybe just mirror the data from the single mono channel into the second channel).

  • Hi Andy,

    First of all, I hope you solved your problem long ago? In case not I think I will give it a try.

    I unfortunately do not know of any hardware ways of converting from mono to stereo in the TPS65950 codec either. I hope Gandhar (or somebody else) can kick in, in case I'm wrong? You approach of writing the data two times from the OMAP is therefore as well what I would recommend. In case of writing the data into the McBSP FIFO from a pure software loop I agree that it's easy to just repeat the write twice in case of mono.

    In case of utilizing aDMA channel for keeping the McBSP FIFO filled things get a little more complicated, but I'm pretty sure you can program the DMA (using the Frame Index I think) to repeat the samples twice, although it might hit you a little on the needed DMA memory/L3 bus usage since the DMA frames need to be programmed rather short (2 x 16 bit samples) for the method to work. I haven't tested this, but see no reason why this method shouldn't work...

    In case anybody know how to let TPS65950 accept mono data please let us know, since this will of cause be a more "correct" solution than trying to work around the problem...

    Best regards and thanks
      Søren