2025-12-09 1:17 AM - last edited on 2025-12-09 2:18 AM by mƎALLEm
Post edited by ST moderator to be inline with the community rules for the code sharing. In next time please use </> button to paste your code and a linker script content. Please read this post: How to insert source code.
Hello there,
I'm playing with the NUCLEO-H743ZI2 board and having difficultis with PTP.
When TSIE (MACIER is set the interrupt is getting retriggered endlessly.
I've tried to clear TSIS by reading both MACISR as well as MACTSSR (TXTSSIS bit set).
The manual states this is a way to achieve this, but neither register is cleared.
BTW, the alternate way (MACCSRSWCR) semes not being supported altho I've tried that as well.
Just at the interrupt entry:
macisr = ETH->MACISR; // 0x1000
mactssr = ETH->MACTSSR; // 0x8000
macisr2 = ETH->MACISR; // 0x1000
mactssr2 = ETH->MACTSSR; // 0x8000
macisr3 = ETH->MACISR; // 0x1000
Where am I doing the wrong thing?
Thank you for any input.
2025-12-09 1:19 AM - last edited on 2025-12-09 2:19 AM by mƎALLEm
The snipplet full:
volatile unsigned macisr;
volatile unsigned macisr2;
volatile unsigned macisr3;
volatile unsigned mactssr;
volatile unsigned mactssr2;
void ETH_IRQHandler(void) __attribute__ ((optimize("O2")));
void ETH_IRQHandler(void)
{
GPIOA->BSRR = 1<<0;
macisr = ETH->MACISR;
mactssr = ETH->MACTSSR;
macisr2 = ETH->MACISR;
mactssr2 = ETH->MACTSSR;
macisr3 = ETH->MACISR;
HAL_ETH_IRQHandler(&EthHandle);
GPIOA->BSRR = 1<<16;
return;
}