Skip to main content
Joe Wright
Associate
January 15, 2018
Question

Optimising for mono audio

  • January 15, 2018
  • 4 replies
  • 943 views
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

    This topic has been closed for replies.

    4 replies

    waclawek.jan
    Super User
    January 15, 2018
    Posted on January 15, 2018 at 15:20

    What mic? Any codec?

    JW

    Joe Wright
    Associate
    January 16, 2018
    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.

    waclawek.jan
    Super User
    January 16, 2018
    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
    January 16, 2018
    Posted on January 16, 2018 at 14:44

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