2012-07-05 09:41 AM
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 #interrupt2012-07-05 10:07 AM
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.
2012-07-05 01:26 PM
I solved it... I just overlooked some Clear for DMA. Thanks!