cancel
Showing results for 
Search instead for 
Did you mean: 

Optimising for mono audio

Joe Wright
Associate II
Posted on January 15, 2018 at 15:06

Hi, I'm prototyping something that processes digital mono audio from a mems mic, transferring the data over i2s into an stm32f373. The only issue I have is that the DMA transfer is designed for stereo so twice as much data is transferred than necessary, with the second channel being zeros.

I'm wondering if there is a more efficient design, perhaps with a different mcu, communication type, etc.., so that only the single audio channel is transferred.  As far as I can tell i2s will always give a stereo feed to the DMA.

Can anyone think of a mono optimised design?

Thanks, Joe

4 REPLIES 4
Posted on January 15, 2018 at 15:20

What mic? Any codec?

JW

Joe Wright
Associate II
Posted on January 16, 2018 at 01:27

So far I've used Invensense ICS-43432 or Knowles SPH0641LM4H-1 which work but as they use i2s the DMA controller on the STM32F373 includes the blank data for the non-existing channel.  I'm not using a codec.

Posted on January 16, 2018 at 10:37

SAI can selectively throw away portions of received data, or at least that follows from the RM, I haven't tried personally. I also believe the 24-bits could be handled better with SAI.

SAI is to be found in some 'F4, 'F7 and 'L4; AFAIK no 'F3 has SAI.

If you have intrinsic reasons for the 'F373, I could envisage some timer-based scheme to trigger DMA picking the data more 'selectively', instead of  'natively' triggered DMA; maybe some pins would need to be interconnected externally. This would need to be experimented.

JW

Joe Wright
Associate II
Posted on January 16, 2018 at 14:44

Thanks, SAI looks good.  I'll have a play with one of the supporting F4's.