2025-09-17 12:59 PM
Hi,
I'm having a project that uses LTDC (565) UART4 (for printf debugging purposes) and ETH/LwIP.
The issue i'm having is an infinite loop in `LAN8742_Init` :
```
while(regvalue & LAN8742_BCR_SOFT_RESET)
```
always evalute to true and
```
if((pObj->IO.GetTick() - tickstart) <= LAN8742_SW_RESET_TO)
```
evalutes to true as well (tickstart is 0 and pObj->IO.GetTick() also returns 0).
STM32CubeMX warns me about possible conflicts with PIN - but I don't think LTDC and UART/ETH are using the same pins. Ater enabling ETH CubeMX warned about Clock but autoresolver fixed the issue.
2025-09-17 2:16 PM - edited 2025-09-17 2:25 PM
One of reasons can be failure of handshake with the PHY.
If you suspect conflict with other components, disable them and get the ETH working first.
> tickstart is 0 and pObj->IO.GetTick() also returns 0).
Maybe the PHY setup is broken too. Replace this to HAL_GetTick(). If HAL_GetTick keeps returning 0, the tick timer is broken. Too bad.