2022-06-12 06:23 AM
I am using STM32H753 for signal sampling.
I have enabled ADC1 and ADC3, both of which are in 16 bits scan mode (4 channels).
Everything worked well until I enabled FMC / LTDC to migrate a UI application.
I noticed that most channels of ADC share IOs with FMC / LTDC. This may introduce noise into the ADC input when these peripherals are enabled at the same time.
If someone has encountered this problem?
Solved! Go to Solution.
2022-06-12 11:28 PM
I think I have found the reason. It's the cache. ADC1 and ADC3 shared the same DMA buffer, and the sampling result of ADC1 should be overwritten by the ADC3's. However, some samples were not overwritten as expected (the CPU think they are not actually), which makes the FFT result weird.
Note: The UI application is running on FreeRTOS, the MPU was disabled in RTOS configuration tab.
2022-06-12 07:28 AM
The ADC related application notes give examples and possible workarounds with noise issues, but not w.r.t. SDRAM / LTDC. I am sure increase chip activity due to FMC / LTDC wil strongly influence noise. Supply lines also may be an attack vector for noise. Did you consider that vector?
2022-06-12 08:06 AM
Thanks. I found that the noise seems get reduced after I disabled the DMA 2D accelerator in the TouchGFX tab and keep the priority of ADC-DMA low. The noise level also relates to the sampling rate. It is really weird.
2022-06-12 08:10 AM
the analog domain and digital domain are seperated properly
2022-06-12 11:28 PM
I think I have found the reason. It's the cache. ADC1 and ADC3 shared the same DMA buffer, and the sampling result of ADC1 should be overwritten by the ADC3's. However, some samples were not overwritten as expected (the CPU think they are not actually), which makes the FFT result weird.
Note: The UI application is running on FreeRTOS, the MPU was disabled in RTOS configuration tab.