The list below is the startup procedure for the device:
- Power up the device with ball
RESET asserted using the
procedure in Section 8.3.1.
- Apply CLK and then de-assert RESET.
- Wait for fuse values to be loaded (register FUSE_DONE returns 1).
- Set up all the operational parameters (registers can be programmed in any order):
- Program interpolation factor in the DUC_L register.
- Determine the total interpolation factor (LT), which is needed in the next steps.
LT = DUC_L.
- Determine many sample streams are needed and program the JESD_M register.
- Select a JESD204C mode from Table 7-22. Make sure the selected mode supports the value
of LT computed previously and the desired
link layer encoding. Also make sure the mode
supports the number of desired streams set in the
JESD_M register. Program the mode number
into the JMODE register.
- Program the JENC register to select 8b/10b or 64b/66b operation.
- Compute the value of R using Table 7-22 and the LT value computed earlier.
- Using Table 7-17 (8b/10b) or Table 7-18 (64b/66b), identify a row that matches the R value and DAC clock frequency. Program REFDIV, MPY, RATE and VRANGE according to the tables.
- If necessary, program LANE_SELn to bind the physical lanes 6 and 14 to logical lanes 0 and
1. Program LANE_INV if necessary to account for any
lane inversion (differential pairs swapped on
PCB).
- Program other common settings according to your desired usage (SUBCLASS, SFORMAT, SCR in JCTRL).
- If using 8b/10b encoding, program the KM1 register to set the K parameter. KM1
must match the link partner. Be sure to honor the
constraint imposed by the KR parameter from Table 7-22.
- If subclass 1 operation is desired (SUBCLASS=1), you must also program RBD. Determine the appropriate value for RBD by referring to: Programming RBD.
- Optional Serdes parameters can also be programmed if necessary (that is, JPHY_CNTL, EQ_CNTL, EQZERO, LANE_EQn).
- Program any DAC or DUC related registers, for example the DAC_SRC register to route data to your desired DACs and configure MXMODE to set the DAC output mode.
- Program the transmitter (link partner, that is, FPGA or ASIC), and instruct the transmitter to begin transmission.
- Program JESD_EN=1 to start up the receiver.
- Program DP_EN=1 to enable the datapath. This is required to allow data to flow to the DAC. If only JESD204C diagnostics are performed, you can leave DP_EN at 0.
- Wait for the VDDDIG supply voltage to re-stablize as the supply current transient can result in a dip in the supply voltage. 80 microseconds is be sufficient, but this can be optimized based on actual measurements.
- If SUBCLASS=1, SYSREF is necessary to establish the LMFC/LEMC phase in the receiver. Follow this procedure:
- Using two separate transactions, program SYSREF_RECV_SLEEP=0 and then SYSREF_PROC_EN=1 (both in register SYSREF_CNTL).
- Program SYSREF_SEL to a known good value (see SYSREF Windowing for details on how to calculate SYSREF_SEL using the SYSREF windowing function).
- Program SYSREF_ALIGN_EN=1.
- Apply at least five SYSREF pulses to the SYSREF input. The period of each SYSREF cycle must meet the requirements in Table 7-3.
- Read the JESD_STATUS register to confirm operation of the link (LINK_UP field in JESD_STATUS = 1). If the LINK_UP field returns 0, verify these items:
- If the PLL_LOCKED field in JESD_STATUS returns 0, verify the correct PLL settings (REFDIV, MPY, RATE and VRANGE). Verify the CLK frequency is correct.
- If SUBCLASS = 1, and the ALIGNED field in JESD_STATUS returns 0, verify SYSREF has been applied and the SYSREF processor is enabled SYSREF_PROC_EN.
- If above are not the problem, then read the LANE_STATUSn (only read registers for logical lanes 0 to L-1). Identify if some lanes cannot acquire code group or block synchronization. If so, verify the transmitter has been programmed correctly. Verify LANE_SELn is programmed correctly. Consider performing PHY tests to verify/optimize PHY operation (PRBS testing using JTEST, eye-scan testing, or equalizer optimization).
- If coherency between multiple NCOs is required, the NCOs must be re-synchronized using one of the methods described in section NCO Synchronization for multi-device/deterministic synchronization, or using SPI_SYNC with NCO_SYNC_SRC if only internal NCO phase is required.
- To configure the part for a different mode, set DP_EN=0 and JESD_EN=0. Then return to step 4.