Max number of PDM microphones XUF216

If you have a simple question and just want an answer.
Post Reply
SGapp
Member++
Posts: 21
Joined: Mon May 04, 2020 4:32 pm
Location: Berlin, Germany

Max number of PDM microphones XUF216

Post by SGapp »

Hello everyone,
I am designing an interface for 32 PDM microphones that should be streamed to a host computer via USB. The host computer takes care of the data processing (e.g. DoA).
I want to use the "Microphone array library" https://www.xmos.com/download/lib_mic_a ... .1rc1).pdf . According to the "Features" on page one, the library supports 16 PDM interfaces per tile. Later in the "Overview" section, in Fig. 3 there is an example for up to 16 channels.
As I understand a single PDM data line can carry the data of two PDM microphones. My question is: When the user guide mentions 16 PDM interfaces, does this mean you can connect two microphones per interface (thus 32 microphones in total) or is the library designed for one microphone per PDM interface?

I am not sure which device is capable of handling 32 microphones. According to this post: here, the XUF216 is capable of doing so but is close to its limits.
This discussion here recommends a four tile device, which would be at least the XUF224.
I would prefer the XUF216 since it comes in an TQ128 package which is easier to solder and also to debug.

Any help and hints are highly appreciated. Thanks!


User avatar
mon2
XCore Legend
Posts: 1913
Joined: Thu Jun 10, 2010 11:43 am
Contact:

Post by mon2 »

SGapp
Member++
Posts: 21
Joined: Mon May 04, 2020 4:32 pm
Location: Berlin, Germany

Post by SGapp »

Hello Mon2,
Thank you very much for your answer. I forgot to have a look in the thread you mentioned since the title is hard to interpret ;) maybe an admin can change the title?
Allow me to ask some follow-up questions that are still unclear to me:

1. Does the PDM microphone array library (lib_mic_array) support two microphones per data line? The user manual says nothing about this and the xCORE Microphone Array Kit is designed with one microphone per data line. Could you clarify that for me?

2. I am still confused whether the XUF216 can handle 32 PDM microphones and stream them via USB. The XUF216 has a total of 16 cores.
I work through the reference software and adapt it to the needs of my 32 PDM microphone. If I understand it correctly, 6 cores are required per 16 PDM inputs (assuming the lib_mic_array does not support two microphones per data line), this results in a total of 12 cores for the receiver and decimation stages, and 1 additional core for sending data to the USB transmitter. This leaves 3 cores for the USB part.
According to the XUD module documentation the XUD core must run with at least 80 MIPS. When compiling the project in the xTimeComposer, a warning is shown if more than 6 cores are used on the XUD tile.

If I'm right, this would mean that the XUF216 is not able to convert 32 PDM streams into PCM streams and send them to a host via USB. The next larger chip would be the XUF216 with a total number of 24 cores which should be sufficient enough to do the task.

Please let me know if I missed anything.
Post Reply