Hard Processor System Technical Reference Manual: Agilex™ 5 SoCs

ID 814346
Date 4/01/2024
Public
Document Table of Contents

5.1.7.17.1. Generating a Single Pulse on PPS

To generate single Pulse on PPS:

  1. Program 11 or 10 (for interrupt) in bits[6:5], TRGTMODSEL, of MAC_PPS_Control register. This instructs the MAC to use the target time registers for start time of PPS signal output.
  2. Program the start time value in the target time registers.
  3. Program the width of the PPS signal output in MAC_PPS0_Width register.
  4. Program bits[3:0], PPSCMD, of MAC_PPS_Control register to 0001. This instructs the MAC to generate single pulse on the PPS signal output at the time programmed in the target time registers.

When the PPSCMD is executed (PPSCMD bits = 0), you can cancel the pulse generation by giving the cancel start command (PPSCMD=0011) before the programmed start time elapses. You can also program the behavior of the next pulse in advance. To program the next pulse:

  1. Program the start time for the next pulse in the target time registers. This time must be more than the time at which the falling edge occurs for the previous pulse.
  2. Program the width of the next PPS signal output in MAC_PPS0_Width register.
  3. Program bits[3:0], PPSCMD, of MAC_PPS_Control to generate a single pulse after the time at which the previous pulse is de-asserted. This instructs the MAC to generate single pulse on the PPS signal output, at the time programmed in target time registers.

If you give this command before the previous pulse becomes low, then the new command overwrites the previous command and the EMAC may generate only one extended pulse.