TSSS | Timestamp subseconds
The value in this field is the subseconds part of the update.
ADDSUB is 1: This field must be programmed with the complement of the subseconds part of the update value as described.
ADDSUB is 0: This field must be programmed with the subseconds part of the update value, with an accuracy based on the TSCTRLSSR bit of the Timestamp control Register (ETH_MACTSCR).
TSCTRLSSR field in the Timestamp control Register (ETH_MACTSCR)is 1:
- The programmed value must be 10^9 .
- Each bit represents 1 ns and the programmed value should not exceed 0x3B9A_C9FF.
TSCTRLSSR field in the Timestamp control Register (ETH_MACTSCR) is 0:
- The programmed value must be 2^31 - <subsecond_value>.
- Each bit represents an accuracy of 0.46 ns.
For example, to subtract 2.000000001 seconds from the system time, then the TSSS field in the ETH_MACSTNUR register must be 0x7FFF_FFFF (that is, 2^31 1), when TSCTRLSSR bit in Timestamp control Register (ETH_MACTSCR) is reset and 0x3B9A_C9FF (that is, 10^9 1), when TSCTRLSSR bit in Timestamp control Register (ETH_MACTSCR) is set.
When the ADDSUB bit is set, TSSS[30:0] field cannot be set to 0. The TSSS bitfield must be programmed to 0x7FFF FFFF (resulting in 0.46 ns) even if 0 ns must be subtracted.
For example, to subtract 2.000000000 seconds from the system time, System time nanoseconds update register (ETH_MACSTNUR) must be 0xFFFF FFFF (ADDSUB = 1 and TSSS[30:0] = 0) and the TSS field in the System time seconds update register (ETH_MACSTSUR) must be 0xFFFF FFFE (that is, 2^32 1).
|