2025-11-05 2:01 AM
I am looking for a way to obtain the PHY timestamp of when Ethernet packets are received. I am using the board NUCLEO-F767ZI, which should support hardware timestamping. I can barely find documentation about this online, but some investigation led me to the function HAL_ETH_ReadData, which contains the following lines:
/* Get timestamp high */
heth->RxDescList.TimeStamp.TimeStampHigh = dmarxdesc->DESC7;
/* Get timestamp low */
heth->RxDescList.TimeStamp.TimeStampLow = dmarxdesc->DESC6;
I can see that this code is executed. When I print the values of dmarxdesc->DESC7 and dmarxdesc->DESC6, I always get the value 0. I am wondering if this is some sort of configuration issue, or if I am missing something.
I'm not sure how important this is, but I'm using LwIP to handle my networking stack, which seems to work correctly on a higher-level (i.e. I can receive and send packets as expected).
Any hint as to what might be happening would be appreciated, thank you!