2023-10-27 8:12 AM
Is it possible to use the awesome MDF and/or ADF on STM32U5 with input data from RAM? I have not found any configuration for BSMX for this. One use case is an high performance external delta-sigma-demodulator (ADC) on SPI with proprietary data format (24 Bit per channel, MSB first, CRC etc.) for providing the sound data. Another use case is an LSM6DSV16XTR, also connected via SPI.
2023-10-30 2:47 AM - edited 2023-10-30 3:02 AM
Hello @FB1,
Input data are only computed by the hardware filter (MDF). The memory transfer is done by the GPDMA. ADF and MDF have DMA capabilities to unload the software for the data transfer read from the peripheral and written to the memory. Channels 0 to 11 allocated for AHB/APB peripheral to SRAM transfers (in both ways) unless a 2D addressing is required for the memory, or unless the AHB peripheral supports a burst request
I suggest you to read the AN5593 (specially chapter 3.4.7).
Best Regards,
Pierre
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2023-10-31 12:26 PM
Hello Pierre,
My question is how to provide input data from RAM for MDF and/or ADF? The DFSDM block at STM32F7 for instance has 'parallel input data registers'. What are the corresponding registers at MDF and ADF or what is a proper configuration for BSMX?
2025-04-02 6:09 PM
I would also like to know. The DFSDM in earlier processors could take data from "RAM" or more importantly from a DMA transfer from some 16 bit device on the SPI bus. Very useful...
But the MDF description seems to be lacking this essential feature making the filter useless for my purposes.
Please, if there is a way to do this, tell us about it.
2026-05-11 4:34 PM - edited 2026-05-11 4:41 PM
In case ST is listening, I will just chime in here to say that this feature deletion (from DFSDM -> MDF) also makes the MDF useless for my applications. The DFSDM was fantastic for hardware downsampling of ADC data. Consider:
1) Even if you use an internal ADC (which *is* supported in most MDF instantiations), the aux parallel input is still important because the limited bit width of the DFSDM / MDF means you can't downsample very far. The solution was to DMA out to ping-pong buffers, then DMA back into another filter instance. This sadly is not possible anymore, so I assume you can only downsample by like 4x (depending which sinc^n is chosen).
2) The DFSDM was basically one component shy of a full-fledged digital downconverter, very handy for lock-in detection or any radio-like application. All you had to do in software was implement a DDS / NCO and do the I/Q multiplications, then DMA the downconverted data into the DFSDM for downsampling. This too is now unfortunately off the table, because once your data land in RAM the first time, there is no going back to the MDF.
Keeping the parallel input registers would have been literally a rounding error in the gate count for this peripheral, so it's a real shame they decided to strip that out. I realize the target market is audio beamforming, smart speakers, etc. but I wish the dev teams would occasionally keep useful and cheap stuff in the peripheral without having to justify it in $$$.