Hi,
I have an external Skyworks PLL clock which outputs 125MHz syc clock.
I have connected the 125MHz external sys clock to 1588_CLK_IN (J11 pin9) of NXP LS1028ARDB to trigger the 1588 timer counter (TMR_CNT). RCW field EC1_SAI4_5_PMUX is set to b101. I need to generate 1PPS from 1588_PLUSE_OUT2 and the 1PPS shall be need phase-aligned pulses.



Now I want to set the NXP LS1028A 1588 timer to normal mode as per the reference manual and Support for IEEE 1588™ Protocol in PowerQUICC and QorIQ Processors.




Suppose my desired nominal frequency is 100MHz as per the document above. I need to generate 1PPS from NXP LS1028ARDB Below is the register I have set.
TMR_CTRL[TCLK_PERIOD] = 10ns
TMR_CTRL[CKSEL] = 00
MR_PRSC = 2
TMR_ADD=2^32*100/125 = 0xCCCCCCCD
TMR_CTRL[TE] =1
MR_CTRL[FS] =1
Since 1PPS is required and needs phase-aligned pulse, I try to set TMR_FIPER1 to 10^9 ÷ TCLK_PERIOD and it doesn’t work (1PPS is not phased aligned and the offset between this 1PPS and that from GM is 4us, furthermore, the phase offset becomes bigger and bigger as time passes). But as per the document, the TMR_FIPER1 shall be set to
(MR_PRSC × tclk_per × N) – tclk_per
I don’t know how to set the N.
And the TMR_ALARM1 also need a value.
So could anybody let me know what values should be written to TMR_ALARM1 and TMR_FIPER1?
BTW, do I need to set any bits in TMR_TEMASK register? I see some of the event enable bits there (OFF by default) but I don’t know if I shall set them to ON.
Best Regards,
Jin Mai