1 of 1 people found this helpful
Burt - two interleaved questions there. If you're working at normal audio rates, we're finalizing a solution to add more PDM channels to PSoC 6 devices with UDBs. The processing is split over UDBs and the CPU; the final stage FIR filtering is pretty CPU-intensive but a total of 8 channels (i.e. an extra 6) at 48 ksps is within reach. Speech stuff at 16 ksps is less demanding, of course.
For ultrasonic applications, there's a SINC_RATE register setting in the internal PDM-to-PCM block which should enable you to push up the sample rate from 48 ksps to say 192 ksps with a 3.072 MHz mic clock. We've never tried it, so I don't know if there are any gain consequences. How many wideband PDM mic channels in total do you need in total?
Thanks @kvcp. It sounds like you are working for Cypress, can you clarify what your role is?
To answer you question, I'm not sure how may ultrasonic channels I will need, it could depend on the coverage patterns at ultrasonic frequencies, something not well specked by the mic vendors. I was initially thinking I'd make all 8 microphones run at between 3.072 or 4.096 MHz, but that certainly may be overkill.
At this point I'm thinking a PSOC 5LP based prototype may make sense. Are there any hardware differences between 5LP and 6 relevant to this?
I'm glad to hear someone is are working to finalize support for multichannel PDM. Doing my own research, the most promising item I found was on GitHub - yourskp/PioneerKit_P5LP_USB_Audio: USB audio and PDM microphone interface with PSoC 5LP on the Pioneer kit. Contained components named PDM_CIC_v2_0, PDM_Comb_v1_0, and PDM_Integrator _v1_0, but little documentation of the design. These components seemed interesting but lacked any sort of datasheet. Is the internal PDM-to-PCM block you refer to related to this? It seemed like that project was using the DFB to perform the final stage processing (referred to as a "Droop Filter" in places. I gather this is a time-domain FIR to compensate for audio-frequency impact of the of the CIC. I don't understand much about how the DFB works yet, but it seemed logical to me to make any adjustments to restore flat response for audio in DSP-like hardware rather than the CPU.
1 of 1 people found this helpful
Hi Burt - I'm the guy in the PSoC and MCU division most directly responsible for audio and analog solution architectures, especially anything involving filtering and extracting information from signals.
At 100 kHz the wavelength of sound in air is about 3.4 mm so your frequency response and directivity will be entirely determined by how you mount the microphones. I don't suppose there's much a mic manufacturer can do to bypass the constraints of geometrical acoustics.
If your requirements are at all proprietary we should go offline to talk about them. The processing overhead is strongly determined by whether you need to force the signal channel to have a flat electrical frequency response before you do any kind of processing. My speculation on the needs for such wideband processing point me towards not trying to flatten the CIC filter's response, but to modifying your analysis methodology to accommodate all the system frequency response characteristics. The acoustic response of the mic itself will be all over the place, so you may need to correct that with non-real-time post-processing anyway.
The advantage of the PSoC 5LP is that it can be had with 24 UDBs, whereas the current PSoC 6 has only 12. In the PSoC 5LP stereo PDM design, we could therefore afford to be 'wasteful' with UDBs, using them for the combs as well as the integrators (the CPU could easily handle the comb part). The last 2x decimation in the PSoC 5LP solution indeed uses the DFB, which is ideal for the job, but can only really handle two channels at the tap count required for conventional audio expectations of flatness and alias prevention. In the hybrid solution on PSoC 6 we use the substantially higher compute horsepower of the Cortex M4 to do six channels of decent FIR filtering. As you pin down your exact needs, the best way to go may become apparent. You can reach me on filterwizard at cypress dot com.
Great, thanks filterwizard. It sounds like you are just the guy I need.
Hi, I'm using Psoc 6 (CY8CMOD-062-4343W) and I cannot find this register in Modus Toolbox. Where is it supposed to be placed?