cancel
Showing results for 
Search instead for 
Did you mean: 

ETH_IRQHandler being called non-stop after first reception

ferkiwi
Associate
Posted on July 05, 2012 at 18:41

I'm working on a STM32F107, porting an ethernet network interface.

After solving some initialisation issues the ethernet seems to be responding, it sends data properly and the interrupt on reception is calling the ETH_IRQHandler function as expected.

However, after one reception, the handler is being called over and over, as if the interrupt wasn't being reset. Even after unplugging the ethernet cable the microcontroller is still looping executing the ETH_IRQHandler function constantly.

Any ideas on where to look at? The inicialization seems to look fine to me, and it's same as other projects where it worked.

Here's a stripped down project where only the initialization of the Ethernet is made and still presents the same problem:

https://github.com/Ferk/ttc_lwip_extension/blob/d18aeed6cae7c0c4a350abd38da6de35057001c0/main.c

#stm32f107 #ethernet #interrupt
2 REPLIES 2
Posted on July 05, 2012 at 19:07

You need to check ALL the interrupt pending (IT) registers/bits. If you don't clear one or more interrupt it will repeatedly tail-chain, and no foreground code will execute.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
ferkiwi
Associate
Posted on July 05, 2012 at 22:26

I solved it... I just overlooked some Clear for DMA. Thanks!