cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H7 Ethernet DMA Error

e-zeki
Associate III

Hi,

I never used ethernet before, please excuse my ignorance. II dont want to use lwIP or FreeRTOS. My main goal is to use Ethernet hardware for fast communication between my distanced units.

created a project for my 2 piece NUCLEO-H743ZI2 board using CubeMX there are no compiling errors but when ever I tried to send a frame, sender unit goes DMA error which is DMAErrorCode 0x00055082. There aren't errors or reception at the other end.

I've added MPU Configuration as it stated in FAQ and lwIP example but still same.

Please guide me on this issue some related documents or project to increase my knowledge in order to solve the problems.

Thanks

Zeki

1 ACCEPTED SOLUTION

Accepted Solutions
Piranha
Chief II

Ethernet has it's own dedicated DMA and there is no option of not using it, because of performance requirements. H7 is a complex beast - check if the provided buffers are accessible by ETH DMA at all. For example, in H7 DTCM is not accessible by peripherals.

Also take a look here: https://community.st.com/s/question/0D50X0000BOtfhnSQB/how-to-make-ethernet-and-lwip-working-on-stm32

View solution in original post

3 REPLIES 3
TDK
Guru

It looks like DMAErrorCode returns the value of the ETH_DMACSR register. So figure out what bits are set in there to find out what the errors are and go from there.

If you feel a post has answered your question, please click "Accept as Solution".
e-zeki
Associate III

I've looked into it it gives almost every error related with transmission and reception including Fatal Bus Error. I think cubeMX doesnt automatically add dma configuration into generated code, but I coulnd't find how I should configure dma to ethernet use by hand.

Piranha
Chief II

Ethernet has it's own dedicated DMA and there is no option of not using it, because of performance requirements. H7 is a complex beast - check if the provided buffers are accessible by ETH DMA at all. For example, in H7 DTCM is not accessible by peripherals.

Also take a look here: https://community.st.com/s/question/0D50X0000BOtfhnSQB/how-to-make-ethernet-and-lwip-working-on-stm32