Skip to main content
Associate
October 16, 2023
Solved

STM32H735 ADC DMA Ethernet memory issue

  • October 16, 2023
  • 3 replies
  • 2141 views

Hi

I have implemented ADC1 on a DMA and verified its operation. I then implemented the ethernet stack and verified that it can be pinged. The issue I'm having is that the ADC DMA stops working once the ethernet stack is implemented.

 

I believe the error might be within the memory assignment within the MPU and the DMA memory allocation. I've gone through quite a few forum posts but still have no success.

 

Any assistance on how to configure these would be greatly appreciated.

 

Regards

Ezra

 

Best answer by EzraKrause

Thanks for the info guys. I'm responding a bit late, but I was able to get it working by allocating memory to both the ADC and TCP related buffers in the linker file. The MPU still need some work, but I'll fix this in the future.

3 replies

ST Technical Moderator
October 16, 2023
In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question. Thanks
mƎALLEm
ST Technical Moderator
October 16, 2023

Hello,

First, double check the boundaries of your memory used by the ETH stack and the ADC-DMA

To give better visibility on the answered topics, please click "Best answer" on the reply which solved your issue or answered your question.
EzraKrauseAuthorBest answer
Associate
November 24, 2023

Thanks for the info guys. I'm responding a bit late, but I was able to get it working by allocating memory to both the ADC and TCP related buffers in the linker file. The MPU still need some work, but I'll fix this in the future.

Associate
October 16, 2024

Hello!

I'm experiencing this exact same issue with a STM32 H723ZG board. I successfully implemented the ADC collecting data just fine. As soon as I integrated the ETH and LWIP components (which worked), suddenly the buffer used by the ADC was no longer getting populated (despite the "complete" callback being invoked).

Our ETH buffers were in SRAM1, which was far away from our DMA buffer for the ADC (which was declared in our application variable space).

What was your solution to this issue?  Can you provide some example code and/or Flash.id examples that you used to address your problem?