Skip to main content
Graduate
October 16, 2023
Solved

STM32H735 ADC DMA Ethernet memory issue

  • October 16, 2023
  • 3 replies
  • 2138 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

 

    This topic has been closed for replies.
    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

    Technical Moderator
    October 16, 2023
    Technical Moderator
    October 16, 2023

    Hello,

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

    EzraKrauseAuthorAnswer
    Graduate
    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.

    Visitor II
    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?