The list below is the startup procedure for the device:
- Power up the device with ball RESET asserted using the procedure in Power Up and Down Sequence.
- Apply DACCLK and then de-assert RESET.
- If using the CPLL, set CPLL_EN = 1.
- Set up all the operational parameters (registers can be programmed in any order):
- Program DSP_MODEn to a mode that uses the JESD204C
interface.
- If using the DUC mode or DDS Stream mode, choose the Interpolation/Upsampling factor and program the DSP _L register.
- Determine the total interpolation factor (LT) as the value is needed in the next steps.
- Decide how many sample streams are needed and program the JESD_M register.
- Select a JESD204C mode from JJESD Interface Modes. Make sure the selected mode supports the value of LT computed previously and the desired link layer encoding. Also makes 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 JESD Interface Modes and the LT value computed earlier.
- Using Table 7-47 (8b/10b) or Table 7-48 (64b/66b), identify a row that matches the R value and DAC clock
frequency. Program REFDIV, MPY and RATE according to the tables.
- If necessary, program LANE_SEL[n] to bind the
appropriate physical lanes to logical lanes. Program LANE_INV if
necessary to account for any lane inversion (the differential pair +/-
are swapped).
- Program other common settings according to your desired usage ( SUBCLASS, SFORMAT, SCR in the JCNTL register).
- If using 8b/10b encoding, program the KM1 register to set the K parameter to match the link partner. Be sure to honor the constraint imposed by the KR parameter from JESD Interface Modes.
- If subclass 1 operation is desired (SUBCLASS =
1), you must also program RBD. Determine the appropriate value for
RBD by referring to Programming RBD.
- Program optional Serdes parameters if necessary
(CDR0, EQ_CTRL, EQZERO, EQLEVEL).
- If SUBCLASS = 1, SYSREF is necessary to establish
the LMFC/LEMC phase in the receiver. Follow this procedure to use the automatic
SYSREF calibration:
- Set SRCAL_AVG and SRTRK_AVG to appropriate settings
- Set SRTRK_ENSRTRK_EN if tracking is desired
- Set SYSREF_RX_ENSYSREF_RX_EN=1. If necessary, wait some amount of time for
the SYSREF receiver to stabilize.
- Enable the SYSREF
generator to produce a periodic SYSREF signal. The period of each SYSREF
cycle must meet the requirements in SYSREF Frequency Requirements. If SYSREF is AC-coupled,
allow sufficient time for the coupling capacitor to settle before
proceeding.
- Set SRCAL_EN=1
- Wait for SYSREF_CAL_DONE=1. Verify that SYSREF_CAL_FAILSYSREF_CAL_FAIL=0.
- Program the transmitter (link partner, such as FPGA or ASIC), and begin transmission.
- Wait for fuse values to be loaded (register FUSE_DONE returns 1).
- Program SYS_EN=1 to start up the receiver.
- If SUBCLASS=1, the receiver must process enough
valid SYSREF pulses to set the JESD_ALIGNED register, otherwise, the JESDlink
remains down. Refer to the JESD_ALIGNED register description for details.
- 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 in order:
- If PLL_LOCKED returns 0, verify the correct PLL
settings (REFDIV, MPY and RATE). Verify the DACCLK frequency is
correct.
- If SUBCLASS = 1 and ALIGNED returns 0, verify SYSREF has been applied and the SYSREF processor is enabled SYSREF_PROC_EN = 1. Verify the SYSREF period is valid.
- If PLL_LOCKED = 1 (and ALIGNED = 1 or SUBCLASS = 0), then read the LANE_STATUS[n] register (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_SEL[n] is programmed correctly. Consider performing PHY tests to verify/optimize PHY operation (PRBS testing using JTEST, eye-scan testing, or equalizer optimization).
- d. If SUBCLASS = 1 and EB_ERR = 1, then one
possibility is the RBD value is set incorrectly. See Programming RBD.
- If SUBCLASS = 1 and the link is up, the SYSREF
signal can be turned off if desired. If SYSREF is DC-coupled, SYSREF can be
synchronously gated at the source. If SYSREF is AC-coupled, program
SYSREF_PROC_EN = 0 before turning off the SYSREF transmitter or setting
SYSREF_RX_EN = 0 (this approach is also valid for a DC-coupled SYSREF).
- To configure the part for a different mode, set
SYS_EN = 0. Then return to step 4.