ZHCSEI4C July 2012 – January 2016 LMK04816
PRODUCTION DATA.
In default mode of operation, dual PLL mode with internal VCO, the phase frequency detector in PLL1 compares the active CLKinX reference divided by CLKinX_PreR_DIV and PLL1 R divider with the external VCXO or crystal attached to the PLL2 OSCin port divided by PLL1 N divider. The external loop filter for PLL1 must be narrow to provide an ultra clean reference clock from the external VCXO or crystal to the OSCin/OSCin* pins for PLL2.
The phase frequency detector in PLL2 compares the external VCXO or crystal attached to the OCSin port divided by the PLL2 R divider with the output of the internal VCO divided by the PLL2 N divider and N2 pre-scaler and optionally the VCO divider. The bandwidth of the external loop filter for PLL2 must be designed to be wide enough to take advantage of the low in-band phase noise of PLL2 and the low high offset phase noise of the internal VCO. The VCO output is also placed on the distribution path for the Clock Distribution section. The clock distribution consists of 6 groups of dividers and delays which drive 12 outputs. Each clock group allows the user to select a divide value, a digital delay value, and an analog delay. The 6 groups drive programmable output buffers. Two groups allow their input signal to be from the OSCin port directly.
When a 0-delay mode is used, a clock output is passed through the feedback mux to the PLL1 N Divider for synchronization and 0-delay.
When an external VCO mode is used, the Fin port is used to input an external VCO signal. PLL2 Phase comparison is now with this signal divided by the PLL2 N divider and N2 pre-scaler. The VCO divider may not be used. One less clock input is available when using an external VCO mode.
When a single PLL mode is used, PLL1 is powered down. OSCin is used as a reference to PLL2.
The dual-loop PLL architecture of the LMK04816 provides the lowest jitter performance over the widest range of output frequencies and phase noise integration bandwidths. The first stage PLL (PLL1) is driven by an external reference clock and uses an external VCXO or tunable crystal to provide a frequency accurate, low phase noise reference clock for the second stage frequency multiplication PLL (PLL2). PLL1 typically uses a narrow loop bandwidth (10 Hz to 200 Hz) to retain the frequency accuracy of the reference clock input signal while at the same time suppressing the higher offset frequency phase noise that the reference clock may have accumulated along its path or from other circuits. This cleaned reference clock provides the reference input to PLL2.
The low phase noise reference provided to PLL2 allows PLL2 to operate with a wide loop bandwidth (50 kHz to 200 kHz). The loop bandwidth for PLL2 is chosen to take advantage of the superior high offset frequency phase noise profile of the internal VCO and the good low offset frequency phase noise of the reference VCXO or tunable crystal.
Ultralow jitter is achieved by allowing the phase noise of the external VCXO or Crystal to dominate the final output phase noise at low offset frequencies and phase noise of the internal VCO to dominate the final output phase noise at high offset frequencies. This results in best overall phase noise and jitter performance.
The LMK04816 allows subsets of the device to be used to increase the flexibility of device. These different modes are selected using MODE: Device Mode. For instance:
See Device Functional Modes for more information on these modes.
The LMK04816 has three reference clock inputs for PLL1, CLKin0, CLKin1, and CLKin2. Ref Mux selects CLKin0, CLKin1, or CLKin2. Automatic or manual switching occurs between the inputs.
CLKin0, CLKin1, and CLKin2 each have input dividers. The input divider allows different clock input frequencies to be normalized so that the frequency input to the PLL1 R divider remains constant during automatic switching. By programming these dividers such that the frequency presented to the input of the PLL1_R divider is the same prevents the user from needing to reprogram the PLL1 R divider when the input reference is changed to another CLKin port with a different frequency.
CLKin1 is shared for use as an external 0-delay feedback (FBCLKin), or for use with an external VCO (Fin).
Fast manual switching between reference clocks is possible with a external pins Status_CLKin0, Status_CLKin1, Status_CLKin2.
The LMK04816 integrates a crystal oscillator on PLL1 for use with an external crystal and varactor diode to perform jitter cleaning.
The LMK04816 must be programmed to enable Crystal mode.
The LMK04816 provides a dedicated output which is a buffered copy of the PLL2 reference input. This reference input is typically a low-noise VCXO or Crystal. When using a VCXO, this output can be used to clock external devices such as microcontrollers, FPGAs, CPLDs, and so forth. before the LMK04816 is programmed.
The OSCout0 buffer output type is programmable to LVDS, LVPECL, or LVCMOS.
The dedicated output buffer OSCout0 can output frequency lower than the VCXO or Crystal frequency by programming the OSC Divider. The OSC Divider value range is 1 to 8. Each OSCoutX can individually choose to use the OSC Divider output or to bypass the OSC divider.
Two clock output groups can also be programmed to be driven by OSCin. This allows a total of 4 additional differential outputs to be buffered outputs of OSCin. When programmed in this way, a total of 6 differential outputs can be driven by a buffered copy of OSCin.
VCXO and Crystal-buffered outputs cannot be synchronized to the VCO clock distribution outputs. The assertion of SYNC still causes these outputs to become low. Because these outputs turn off and on asynchronously with respect to the VCO sourced clock outputs during a SYNC, it is possible for glitches to occur on the buffered clock outputs when SYNC is asserted and unasserted. If the NO_SYNC_CLKoutX_Y bits are set these outputs are not affected by the SYNC event except that the phase relationship changes with the other synchronized clocks unless a buffered clock output is used as a qualification clock during SYNC.
The LMK04816 supports holdover operation to keep the clock outputs on frequency with minimum drift when the reference is lost until a valid reference clock signal is re-established.
The LMK04816 features programmable 3rd and 4th order loop filter poles for PLL2. These internal resistors and capacitor values may be selected from a fixed range of values to achieve either a 3rd or 4th order loop filter response. The integrated programmable resistors and capacitors compliment external components mounted near the chip.
These integrated components can be effectively disabled by programming the integrated resistors and capacitors to their minimum values.
The output of the internal VCO is routed to a mux which allows the user to select either the direct VCO output or a divided version of the VCO for the clock distribution path. This same selection is also fed back to the PLL2 phase detector through a prescaler and N-divider.
The mux selectable VCO divider has a divide range of 2 to 8 with 50% output duty cycle for both even and odd divide values.
The primary use of the VCO divider is to achieve divides greater than the clock output divider supports alone.
The Fin/Fin* input allows an external VCO to be used with PLL2 of the LMK04816.
Using an external VCO reduces the number of available clock inputs by one.
The LMK04816 features a total of 12 outputs driven from the internal or external VCO.
All VCO driven outputs have programmable output types. They can be programmed to LVPECL, LVDS, or LVCMOS. When all distribution outputs are configured for LVCMOS or single ended LVPECL a total of 24 outputs are available.
If the buffered OSCin output OSCout0 is included in the total number of clock outputs the LMK04816 is able to distribute, then up to 13 differential clocks or up to 26 single-ended clocks may be generated with the LMK04816.
The following sections discuss specific features of the clock distribution channels that allow the user to control various aspects of the output clocks.
Each clock group, which is a pair of outputs such as CLKout0 and CLKout1, has a single clock output divider. The divider supports a divide range of 1 to 1045 (even and odd) with 50% output duty cycle. When divides of 26 or greater are used, the divider an delay block uses extended mode.
The VCO Divider may be used to reduce the divide needed by the clock group divider so that it may operate in normal mode instead of extended mode. This can result in a small current saving if enabling the VCO divider allows 3 or more clock output divides to change from extended to normal mode.
The clock distribution section includes both a fine (analog) and coarse (digital) delay for phase adjustment of the clock outputs.
The fine (analog) delay allows a nominal 25-ps step size and range from 0 to 475 ps of total delay. Enabling the analog delay adds a nominal 500 ps of delay in addition to the programmed value. When adjusting analog delay, glitches may occur on the clock outputs being adjusted. Analog delay may not operate at frequencies above the minimum-ensured maximum output frequency of 1536 MHz.
The coarse (digital) delay allows a group of outputs to be delayed by 4.5 to 12 clock distribution path cycles in normal mode, or from 12.5 to 522 VCO cycles in extended mode. The delay step can be as small as half the period of the clock distribution path by using the CLKoutX_Y_HS bit provided the output divide value is greater than 1. For example, 2-GHz VCO frequency without using the VCO divider results in 250-ps coarse tuning steps. The coarse (digital) delay value takes effect on the clock outputs after a SYNC event.
There are 3 different ways to use the digital (coarse) delay.
These are further discussed in the Device Functional Modes.
For increased flexibility all LMK04816 clock outputs (CLKoutX) and OSCout0 can be programmed to an LVDS, LVPECL, or LVCMOS output type.
Any LVPECL output type can be programmed to 700, 1200, 1600, or 2000-mVpp amplitude levels. The 2000-mVpp LVPECL output type is a Texas Instruments proprietary configuration that produces a 2000-mVpp differential swing for compatibility with many data converters and is also known as 2VPECL.
Using the SYNC input causes all active clock outputs to share a rising edge. See Clock Output Synchronization (SYNC) for more information.
The SYNC event also causes the digital delay values to take effect.
The 0-delay mode synchronizes the input clock phase to the output clock phase. The 0-delay feedback may performed with an internal feedback loop from any of the clock groups or with an external feedback loop into the FBCLKin port as selected by the FEEDBACK_MUX.
Without using 0-delay mode, there are n possible fixed phase relationships from clock input to clock output depending on the clock output divide value.
Using an external 0-delay feedback reduces the number of available clock inputs by one.
Before the LMK04816 is programmed, CLKout8 is enabled and operating at a nominal frequency and CLKout6 and OSCout0 are enabled and operating at the OSCin frequency. These clocks can be used to clock external devices such as microcontrollers, FPGAs, CPLDs, and so forth, before the LMK04816 is programmed.
For CLKout6 and OSCout0 to work before the LMK04816 is programmed the device must not be using Crystal mode.
The LMK04816 provides status pins which can be monitored for feedback or in some cases used for input depending upon device programming. For example:
The status pins can be programmed to a variety of other outputs including analog lock detect, PLL divider outputs, combined PLL lock detect signals, PLL1 Vtune railing, readback, etc. Refer to the MICROWIRE programming section of this datasheet for more information. Default pin programming is captured in Table 17.
Programmed registers may be read back using the MICROWIRE interface. For readback one of the status pins must be programmed for readback mode.
At no time may registers be programed to values other than the valid states defined in the datasheet.
For timing specifications, see Timing Requirements. Register programming information on the DATAuWire pin is clocked into a shift register on each rising edge of the CLKuWire signal. On the rising edge of the LEuWire signal, the register is sent from the shift register to the register addressed. A slew rate of at least 30 V/µs is recommended for these signals. After programming is complete the CLKuWire, DATAuWire, and LEuWire signals must be returned to a low state. If the CLKuWire or DATAuWire lines are toggled while the VCO is in lock, as is sometimes the case when these lines are shared with other parts, the phase noise may be degraded during this programming.
For timing specifications, see Timing Requirements. Figure 9 shows the timing for the programming sequence for loading CLKoutX_Y_DIV > 25 or CLKoutX_Y_DDLY > 12 as described in Special Programming Case for R0 to R5 for CLKoutX_Y_DIV and CLKoutX_Y_DDLY.
For timing specifications, see Timing Requirements. Figure 10 shows the timing for the programming sequence which allows SYNC_EN_AUTO = 1 when loading CLKoutX_Y_DIV > 25 or CLKoutX_Y_DDLY > 12. When SYNC_EN_AUTO = 1, a SYNC event is automatically generated on the falling edge of LEuWire. See Special Programming Case for R0 to R5 for CLKoutX_Y_DIV and CLKoutX_Y_DDLY.
For timing specifications, see Timing Requirements. See Readback for more information on performing a readback operation. Figure 11 shows timing for LEuWire for both READBACK_LE = 1 and 0.
The rising edges of CLKuWire during MICROWIRE readback continue to clock data on DATAuWire into the device during readback. If after the readback, LEuWire transitions from low to high, this clock data is latched to the decoded register. The decoded register address consists of the last 5 bits clocked on DATAuWire as shown in the MICROWIRE Timing Diagrams.
The reference clock inputs for PLL1 may be selected from either CLKin0, CLKin1, or CLKin2. The user has the capability to manually select one of the inputs or to configure an automatic switching mode of operation. See Input Clock Switching for more info.
CLKin0, CLKin1, and CLKin2 have dividers which allow the device to switch between reference inputs of different frequencies automatically without needing to reprogram the PLL1 R divider. The CLKin pre-divider values are 1, 2, 4, and 8.
CLKin1 input can alternatively be used for external feedback in 0-delay mode (FBCLKin) or for an external VCO input port (Fin).
The feedback from the external oscillator being locked with PLL1 drives the OSCin and OSCin* pins. Internally this signal is routed to the PLL1 N Divider and to the reference input for PLL2.
This input may be driven with either a single-ended or differential signal and must be AC-coupled. If operated in single-ended mode, the unused input must be connected to GND with a 0.1-µF capacitor.
The internal circuitry of the OSCin port also supports the optional implementation of a crystal based oscillator circuit. A crystal, a varactor diode, and a small number of other external components may be used to implement the oscillator. The internal oscillator circuit is enabled by setting the EN_PLL2_XTAL bit. See EN_PLL2_XTAL.
Manual, pin select, and automatic are three different kinds clock input switching modes can be set with the CLKin_SELECT_MODE register.
Below is information about how the active input clock is selected and what causes a switching event in the various clock input selection modes.
When CLKin_SELECT_MODE is 0, 1, or 2 then CLKin0, CLKin1, or CLKin2 respectively is always selected as the active input clock. Manual mode also overrides the EN_CLKinX bits such that the CLKinX buffer operates even if CLKinX is is disabled with EN_CLKinX = 0.
When CLKin_SELECT_MODE is 3, the pins Status_CLKin0 and Status_CLKin1 select which clock input is active.
STATUS_CLKin1 | STATUS_CLKin0 | ACTIVE CLOCK |
---|---|---|
0 | 0 | CLKin0 |
0 | 1 | CLKin1 |
1 | 0 | CLKin2 |
1 | 1 | Holdover |
The pin select mode overrides the EN_CLKinX bits such that the CLKinX buffer operates even if CLKinX is is disabled with EN_CLKinX = 0. To switch as fast as possible, keep the clock input buffers enabled
(EN_CLKinX = 1) that could be switched to.
When in the pin select mode, the host can monitor conditions of the clocking system which could cause the host to switch the active clock input. The LMK04816 device can also provide indicators on the Status_LD and Status_HOLDOVER like DAC Rail, PLL1 DLD, PLL1 and PLL2 DLD which the host can use in determining which clock input to use as active clock input.
When an input clock switch event is triggered and holdover mode is disabled, the active clock input immediately switches to the selected clock. When PLL1 is designed with a narrow loop bandwidth, the switching transient is minimized.
When an input clock switch event is triggered and holdover mode is enabled, the device enters holdover mode and remains in holdover until a holdover exit condition is met as described in Holdover Mode. Then, the device completes the reference switch to the pin selected clock input.
When CLKin_SELECT_MODE is 4, the active clock is selected in priority order of enabled clock inputs starting upon an input clock switch event. The priority order of the clocks is CLKin0 → CLKin1 → CLKin2, and so forth.
For a clock input to be eligible to be switched through, it must be enabled using EN_CLKinX.
When CLKin_SELECT_MODE is 6, the active clock is selected using the Status_CLKinX pins upon an input clock switch event according to Table 2.
STATUS_CLKin1 | STATUS_CLKin0 | ACTIVE CLOCK |
---|---|---|
X | 1 | CLKin0 |
1 | 0 | CLKin1 |
0 | 0 | CLKin2 |
The polarity of Status_CLKin1 and Status_CLKin0 input pins can be inverted with the CLKin_SEL_INV bit.
Holdover mode causes PLL2 to stay locked on frequency with minimal frequency drift when an input clock reference to PLL1 becomes invalid. While in holdover mode, the PLL1 charge pump is tri-stated and a fixed tuning voltage is set on CPout1 to operate PLL1 in open-loop.
Program HOLDOVER_MODE to enable holdover mode. Holdover mode can be manually enabled by programming the FORCE_HOLDOVER bit.
The holdover mode can be set to operate in 2 different sub-modes.
Updates to the DAC value for the Tracked CPout1 sub-mode occurs at the rate of the PLL1 phase detector frequency divided by DAC_CLK_DIV. These updates occur any time EN_TRACK = 1.
The DAC update rate must be programmed for <= 100 kHz to ensure DAC holdover accuracy.
When tracking is enabled the current voltage of DAC can be readback, see DAC_CNT.
The holdover mode is entered as described in Input Clock Switching. Typically this is because:
PLL1 is run in open-loop mode.
The HOLDOVER status signal can be monitored on the Status_HOLDOVER or Status_LD pin by programming the HOLDOVER_MUX or LD_MUX register to Holdover Status.
Holdover mode can be exited in one of two ways.
To exit holdover by programming, set HOLDOVER_MODE = Disabled. HOLDOVER_MODE can then be re-enabled by programming HOLDOVER_MODE = Enabled. Take care to ensure that the active clock upon exiting holdover is as expected, otherwise the CLKin_SELECT_MODE register may need to be re-programmed.
When in holdover mode PLL1 runs in open-loop and the DAC sets the CPout1 voltage. If Fixed CPout1 mode is used, then the output of the DAC is a voltage dependant upon the MAN_DAC register. If tracked CPout1 mode is used, then the output of the DAC is the voltage at the CPout1 pin before holdover mode was entered. When using Tracked mode and EN_MAN_DAC = 1, during holdover the DAC value is loaded with the programmed value in MAN_DAC, not the tracked value.
When in Tracked CPout1 mode the DAC has a worst case tracking error of ±2 LSBs once PLL1 tuning voltage is acquired. The step size is approximately 3.2 mV, therefore the VCXO frequency error during holdover mode caused by the DAC tracking accuracy is ±6.4 mV × Kv. Where Kv is the tuning sensitivity of the VCXO in use. Therefore the accuracy of the system when in holdover mode in ppm is calculated by Equation 4:
Example: consider a system with a 19.2-MHz clock input, a 153.6-MHz VCXO with a Kv of 17 kHz/V. The accuracy of the system in holdover in ppm is calculated by Equation 5:
It is important to account for this frequency error when determining the allowable frequency error window to cause holdover mode to exit.
The LMK04816 device can be programmed to automatically exit holdover mode when the accuracy of the frequency on the active clock input achieves a specified accuracy. The programmable variables include PLL1_WND_SIZE and DLD_HOLD_CNT.
See Digital Lock Detect Frequency Accuracy to calculate the register values to cause holdover to automatically exit upon reference signal recovery to within a user specified ppm error of the holdover frequency.
It is possible for the time to exit holdover to vary because the condition for automatic holdover exit is for the reference and feedback signals to have a time/phase error less than a programmable value. Because it is possible for two clock signals to be very close in frequency but not close in phase, it may take a long time for the phases of the clocks to align themselves within the allowable time and phase error before holdover exits.
The maximum phase detector frequency (fPD1) of the PLL1 is 40 MHz. Because a narrow loop bandwidth must be used for PLL1, the need to operate at high phase detector rate to lower the in-band phase noise becomes unnecessary. The maximum values for the PLL1 R and N dividers is 16,383. Charge pump current ranges from 100 to 1600 µA. PLL1 N divider may be driven by OSCin port at the OSCout0_MUX output (default) or by internal or external feedback as selected by Feedback Mux in 0-delay mode.
Low charge-pump currents and phase detector frequencies aid design of low loop bandwidth loop filters with reasonably sized components to allow the VCXO or PLL2 to dominate phase noise inside of PLL2 loop bandwidth. High charge-pump currents may be used by PLL1 when using VCXOs with leaky tuning voltage inputs to improve system performance.
The maximum phase detector frequency (fPD2) of the PLL2 is 155 MHz. Operating at highest possible phase detector rate ensures low in-band phase noise for PLL2 which in turn produces lower total jitter. The in-band phase noise from the reference input and PLL is proportional to N2. The maximum value for the PLL2 R divider is 4,095. The maximum value for the PLL2 N divider is 262,143. The N2 prescaler in the total N feedback path can be programmed for values 2 to 8 (all divides even and odd). Charge-pump current ranges from 100 to 3200 µA.
High charge-pump currents help to widen the PLL2 loop bandwidth to optimize PLL2 performance.
The PLL2 reference input at the OSCin port may be routed through a frequency doubler before the PLL2 R Divider. The frequency doubler feature allows the phase comparison frequency to be increased when a relatively low frequency oscillator is driving the OSCin port. By doubling the PLL2 phase detector frequency, the in-band PLL2 noise is reduced by about 3 dB.
For applications in which the OSCin frequency and PLL2 phase detector frequency are equal, the best PLL2 in-band noise can be achieved when the doubler is enabled (EN_PLL2_REF_2X = 1) and the PLL2 R divide value is 2. Do not use doubler disabled (EN_PLL2_REF_2X = 0) and PLL2 R divide value of 1.
When using the doubler take care to use the PLL2 R divider to reduce the phase detector frequency to the limit of the PLL2 maximum phase detector frequency.
Both PLL1 and PLL2 support digital lock detect. Digital lock detect compares the phase between the reference path (R) and the feedback path (N) of the PLL. When the time error, which is phase error, between the two signals is less than a specified window size (ε) a lock detect count increments. When the lock detect count reaches a user specified value lock detect is asserted true. Once digital lock detect is true, a single-phase comparison outside the specified window causes digital lock detect to be asserted false. This is shown in Figure 12.
The incremental lock detect count feature functions as a digital filter to ensure that lock detect is not asserted for only a brief time when the phases of R and N are within the specified tolerance for only a brief time during initial phase lock.
The digital lock detect signal can be monitored on the Status_LD or Status_Holdover pin. The pin may be programmed to output the status of lock detect for PLL1, PLL2, or both PLL1 and PLL2.
See Digital Lock Detect Frequency Accuracy for more detailed information on programming the registers to achieve a specified frequency accuracy in ppm with lock detect.
The digital lock detect feature can also be used with holdover to automatically exit holdover mode. See Holdover Mode for more info.
The Status_LD, Status_HOLDOVER, Status_CLKin0, Status_CLKin1, and SYNC/Status_CLKin2 pins can be programmed to output a variety of signals for indicating various statuses like digital lock detect, holdover, several DAC indicators, and several PLL divider outputs.
This is a vary simple output. In combination with the output _MUX register, this output can be toggled between high and low. Useful to confirm MICROWIRE programming or as a general-purpose IO.
PLL1 DLD, PLL2 DLD, and PLL1 + PLL2 are selectable on certain output pins. See Digital Lock Detect for more information.
Indicates if the device is in holdover mode. See Holdover Mode for more information.
Various flags for the DAC can be monitored including DAC Locked, DAC Rail, DAC Low, and DAC High.
When the PLL1 tuning voltage crosses the low threshold, DAC Low is asserted. When PLL1 tuning voltage crosses the high threshold, DAC High is asserted. When either DAC Low or DAC High is asserted, DAC Rail is also asserted.
DAC Locked is asserted when EN_Track = 1 and DAC is closely tracking the PLL1 tuning voltage.
The PLL divider outputs are useful for debugging failure to lock issues. It allows the user to measure the frequency the PLL inputs are receiving. The settings of PLL1_R, PLL1_N, PLL2_R, and PLL2_N output pulses at the phase detector rate. The settings of PLL1_R / 2, PLL1_N / 2, PLL2_R / 2, and PLL2_N / 2 output a 50% duty cycle waveform at half the phase detector rate.
The clock input loss of signal indicator is asserted when LOS is enabled (EN_LOS) and the clock no longer detects an input as defined by the time-out threshold, LOS_TIMEOUT.
If this clock is the currently selected/active clock, this pin is asserted.
The readback data can be output on any pin programmable to readback mode. For more information on readback see Readback.
The integrated VCO uses a frequency calibration routine when register R30 is programmed to lock VCO to target frequency. Register R30 contains the PLL2_N register.
During the frequency calibration the PLL2_N_CAL value is used instead of PLL2_N, this allows 0-delay modes to have a separate PLL2 N value for VCO frequency calibration and regular operation. See PLL2_N_CAL, PLL2 N Calibration Divider, PLL2_P, PLL2 N Prescaler Divider, and PLL2_N, PLL2 N Divider for more information.
This section discussing fixed digital delay and associated registers is fundamental to understanding digital delay and dynamic digital delay.
Clock outputs may be delayed or advanced from one another by up to 517.5 clock distribution path periods. By programming a digital delay value from 4.5 to 522 clock distribution path periods, a relative clock output delay from 0 to 517.5 periods is achieved. The CLKoutX_Y_DDLY (5 to 522) and CLKoutX_Y_HS (-0.5 or 0) registers set the digital delay as shown in Table 3.
CLKoutX_Y_DDLY | CLKoutX_Y_HS | DIGITAL DELAY |
---|---|---|
5 | 1 | 4.5 |
5 | 0 | 5 |
6 | 1 | 5.5 |
6 | 0 | 6 |
7 | 1 | 6.5 |
7 | 0 | 7 |
... | ... | ... |
520 | 0 | 520 |
521 | 1 | 520.5 |
521 | 0 | 521 |
522 | 1 | 521.5 |
522 | 0 | 522 |
NOTE
Digital delay values only take effect during a SYNC event and if the NO_SYNC_CLKoutX_Y bit is cleared for this clock group. See Clock Output Synchronization (SYNC) for more information.
The resolution of digital delay is determined by the frequency of the clock distribution path. The clock distribution path is the output of Mode Mux1 (Figure 7). The best resolution of digital delay is achieved by bypassing the VCO divider.
The digital delay between clock outputs can be dynamically adjusted with no or minimum disruption of the output clocks. See Dynamically Programming Digital Delay for more information.
Given a VCO frequency of 2457.6 MHz and no VCO divider, by using digital delay the outputs can be adjusted in 1 / (2 × 2457.6 MHz) ≈ 203.5-ps steps.
To achieve quadrature (90 degree shift) between the 122.88 MHz outputs on CLKout4 and CLKout6 from a VCO frequency of 2457.6 MHz and bypassing the VCO divider, consider the following:
This result in the following programming:
Table 4 shows some of the possible phase delays in degrees achievable in the previous example.
CLKout6_7_DDLY | CLKout6_7_HS | RELATIVE DIGITAL DELAY | DEGREES OF 122.88 MHz |
---|---|---|---|
5 | 1 | –0.5 | –9° |
5 | 0 | 0.0 | 0° |
6 | 1 | 0.5 | 9° |
6 | 0 | 1.0 | 18° |
7 | 1 | 1.5 | 27° |
7 | 0 | 2.0 | 36° |
8 | 1 | 2.5 | 45° |
8 | 0 | 3.0 | 54° |
9 | 1 | 3.5 | 63° |
9 | 0 | 4.0 | 72° |
10 | 1 | 4.5 | 81° |
10 | 0 | 5.0 | 90° |
11 | 1 | 5.5 | 99° |
11 | 0 | 6.0 | 108° |
12 | 1 | 6.5 | 117° |
12 | 0 | 7.0 | 126° |
13 | 1 | 7.5 | 135° |
13 | 0 | 8.0 | 144° |
14 | 1 | 8.5 | 153° |
... | ... | ... | ... |
Figure 14 shows clock outputs programmed with different digital delay values during a SYNC event.
Refer to Dynamically Programming Digital Delay for more information on dynamically adjusting digital delay.
The purpose of the SYNC function is to synchronize the clock outputs with a fixed and known phase relationship between each clock output selected for SYNC. SYNC can also be used to hold the outputs in a low or 0 state. The NO_SYNC_CLKoutX_Y bits can be set to disable synchronization for a clock group.
To enable SYNC, EN_SYNC must be set. See EN_SYNC, Enable Synchronization.
The digital delay value set by CLKoutX_Y_DDLY takes effect only upon a SYNC event. The digital delay due to CLKoutX_Y_HS takes effect immediately upon programming. See Dynamically Programming Digital Delay for more information on dynamically changing digital delay.
During a SYNC event, clock outputs driven by the VCO are not synchronized to clock outputs driven by OSCin. OSCout0 is always driven by OSCin. CLKout6, 7, 8, or 9 may be driven by OSCin depending on the CLKoutX_Y_OSCin_Sel bit value. While SYNC is asserted, NO_SYNC_CLKoutX_Y operates normally for CLKout6, 7, 8, and 9 under all circumstances. SYNC operates normally for CLKout6, 7, 8, and 9 when driven by VCO.
When SYNC is asserted, the outputs to be synchronized are held in a logic low state. When SYNC is unasserted, the clock outputs to be synchronized are activated and transition to a high state simultaneously with one another except where different digital delay values have been programmed.
Refer to Dynamically Programming Digital Delay for SYNC functionality when SYNC_QUAL = 1.
SYNC_TYPE | SYNC_POL _INV |
SYNC PIN | CLOCK OUTPUT STATE |
---|---|---|---|
0,1,2 (Input) | 0 | 0 | Active |
0,1,2 (Input) | 0 | 1 | Low |
0,1,2 (Input) | 1 | 0 | Low |
0,1,2 (Input) | 1 | 1 | Active |
3, 4, 5, 6 (Output) | 0 | 0 or 1 | Active |
3, 4, 5, 6 (Output) | 1 | 0 or 1 | Low |
There are five methods to generate a SYNC event:
NOTE
Due to the speed of the clock distribution path (as fast as ~325 ps period) and the slow slew rate of the SYNC, the exact VCO cycle at which the SYNC is asserted or unasserted by the SYNC is undefined. The timing diagrams show a sharp transition of the SYNC to clarify functionality.
Any CLKout groups that have their NO_SYNC_CLKoutX_Y bits set are unaffected by the SYNC event. It is possible to perform a SYNC operation with the NO_SYNC_CLKoutX_Y bits cleared, then set the NO_SYNC_CLKoutX_Y bits so that the selected clocks are not affected by a future SYNC. Future SYNC events will not effect these clocks but will still cause the newly synchronized clocks to be re-synchronized using the currently programmed digital delay values. When this happens, the phase relationship between the first group of synchronized clocks and the second group of synchronized clocks are undefined unless the SYNC pulse is qualified by an output clock. See Dynamically Programming Digital Delay.
When discussing the timing of the SYNC function, one cycle refers to one period of the clock distribution path.
Refer to Figure 13 during this discussion on the timing of SYNC. SYNC must be asserted for greater than one clock cycle of the clock distribution path to latch the SYNC event. After SYNC is asserted, the SYNC event is latched on the rising edge of the distribution path clock, at time A. After this event has been latched, the outputs do not reflect the low state for 6 cycles, at time B. Due to the asynchronous nature of SYNC with respect to the output clocks, it is possible that a glitch pulse could be created when the clock output goes low from the SYNC event. This is shown by CLKout4 in Figure 13 and CLKout2 in Figure 14. See Relative Dynamic Digital Delay for more information on synchronizing relative to an output clock to eliminate or minimize this glitch pulse.
After SYNC becomes unasserted the event is latched on the following rising edge of the distribution path clock, time C. The clock outputs rise at time D, coincident with a rising distribution clock edge that occurs after 6 cycles plus as many more cycles as programmed by the digital delay for that clock output. Therefore, the earliest a clock output becomes high is 11 cycles after the SYNC unassertion event registration, time C, when the smallest digital delay value of 5 is set. If CLKoutX_Y_HS = 1 and CLKoutX_Y_DDLY = 5, then the clock output rises 10.5 cycles after SYNC is unassertion event registration.
Figure 14 shows the timing with different digital delays programmed.
To use dynamic digital delay synchronization qualification set SYNC_QUAL = 1. This causes the SYNC pulse to be qualified by a clock output so that the SYNC event occurs after a specified time from a clock output transition. This allows the relative adjustment of clock output phase in real-time with no or minimum interruption of clock outputs. Hence the term dynamic digital delay.
NOTE
Changing the phase of a clock output requires momentarily altering in the rate of change of the clock output phase and therefore by definition results in a frequency distortion of the signal.
Without qualifying the SYNC with an output clock, the newly synchronized clocks would have a random and unknown digital delay (or phase) with respect to clock outputs not currently being synchronized.
The clock used for qualification of SYNC is selected with the feedback mux (FEEDBACK_MUX).
If the clock selected by the feedback mux has its NO_SYNC_CLKoutX_Y = 1, then an absolute dynamic digital delay adjustment is performed during a SYNC event and the digital delay of the feedback clock is not adjusted.
If the clock selected by the feedback mux has its NO_SYNC_CLKoutX_Y = 0, then a self-referenced or relative dynamic digital delay adjustment is performed during a SYNC event and the digital delay of the feedback clock is adjusted.
Clocks with NO_SYNC_CLKoutX_Y = 1 always operate without interruption.
When using a 0-delay mode absolute dynamic digital delay is recommended. Using relative dynamic digital delay with a 0-delay mode may result in a momentary clock loss on the adjusted clock also being used for 0-delay feedback that may result in PLL1 DLD becoming low. This may result in HOLDOVER mode being activated depending upon device configuration.
The minimum step size adjustment for digital delay is half a clock distribution path cycle. This is achieved by using the CLKoutX_Y_HS bit. The CLKoutX_Y_HS bit change effect is immediate without the need for SYNC. To shift digital delay using CLKoutX_Y_DDLY a SYNC signal must be generated for the change to take effect.
To dynamically adjust the digital delay with respect to an existing clock output the device must be programmed as follows:
To dynamically adjust digital delay a SYNC must occur. Once the SYNC is qualified by an output clock, 3 cycles later an internal one shot pulse occurs. The width of the one shot pulse is 3 cycles. This internal one shot pulse causes the outputs to turn off and then back on with a fixed delay with respect to the falling edge of the qualification clock. This allows for dynamic adjustments of digital delay with respect to an output clock.
The qualified SYNC timing is shown in Figure 15 for absolute dynamic digital delay and Figure 16 for relative dynamic digital delay.
When adjusting digital delay dynamically, the falling edge of the qualifying clock selected by the FEEDBACK_MUX must coincide with the falling edge of the clock distribution path. For this requirement to be met, program the CLKoutX_Y_HS value of the qualifying clock group according to Table 6.
DISTRIBUTION PATH FREQUENCY | CLKoutX_Y_DIV VALUE | CLKoutX_Y_HS |
---|---|---|
≥ 1.8 GHz | Even | Must = 1 during SYNC event. |
Odd | Must = 0 during SYNC event. | |
< 1.8 GHz | Even | Must = 0 during SYNC event. |
Odd | Must = 1 during SYNC event. |
Absolute dynamic digital delay can be used to program a clock output to a specific phase offset from another clock output.
Pros:
Cons:
To illustrate the absolute dynamic digital delay adjust procedure, consider the following example.
System Requirements:
The application requires the 307.2 MHz clock to be stepped in 22.5 degree steps (≈203.4 ps), which is the minimum step resolution allowable by the clock distribution path requiring use of the half step bit (CLKoutX_Y_HS). That is 1 / 2457.6 MHz / 2 = ≈203.4 ps. During the stepping of the 307.2-MHz clock the 819.2-MHz and 245.76-MHz clock must not be interrupted.
Step 1: The device is programmed from register R0 to R30 with values that result in the device being locked and operating as desired, see the system requirements above. The phase of all the output clocks are aligned because all the digital delay and half step values were the same when the SYNC was generated by programming register R30. The timing of this is as shown in Figure 13.
Step 2: Now the registers are programmed to prepare for changing digital delay (or phase) dynamically.
REGISTER | PURPOSE |
---|---|
SYNC_QUAL = 1 | Use a clock output for qualifying the SYNC pulse for dynamically adjusting digital delay. |
EN_SYNC = 1 (default) | Required for SYNC functionality. |
CLKout4_5_PD = 0 | Required when SYNC_QUAL = 1. CLKout4 and/or CLKout5 outputs may be powered down or in use. |
EN_FEEDBACK_MUX = 1 | Enable the feedback mux for SYNC operation for dynamically adjusting digital delay. |
FEEDBACK_MUX = 2 (CLKout4) | Use the fixed 245.76 MHz clock as the SYNC qualification clock. |
NO_SYNC_CLKout0_1 = 1 | This clock output (819.2 MHz) won't be affected by SYNC. It always operates without interruption. |
NO_SYNC_CLKout4_5 = 1 | This clock output (245.76 MHz) won't be affected by SYNC. It always operates without interruption. This clock also is the qualifying clock in this example. |
CLKout4_5_HS = 1 | Because CLKout4 is the qualifying clock and CLKoutX_Y_DIV is even, the half step bit must be set to 1. See Table 6. |
SYNC_EN_AUTO = 1 | Automatic generation of SYNC is allowed for this case. |
After the registers in Table 7 have been programmed, the application may now dynamically adjust the digital delay of CLKout2 (307.2 MHz).
Step 3: Adjust digital delay of CLKout2.
Refer to Table 8 for the programming values to set a specified phase offset from the absolute reference clock. Table 8 is dependant upon the qualifying clock divide value of 10, refer to Calculating Dynamic Digital Delay Values for Any Divide for information on creating tables for any divide value.
DEGREES OF ADJUSTMENT FROM INITIAL 307.2-MHz PHASE | PROGRAMMING | |
---|---|---|
±0 or ±360 degrees | CLKout2_3_DDLY = 14; CLKout2_3_HS = 1 | |
22.5 degrees | –337.5 degrees | CLKout2_3_DDLY = 14; CLKout2_3_HS = 0 |
45 degrees | –315 degrees | CLKout2_3_DDLY = 15; CLKout2_3_HS = 1 |
67.5 degrees | –292.5 degrees | CLKout2_3_DDLY = 5; CLKout2_3_HS = 0 |
90 degrees | –270 degrees | CLKout2_3_DDLY = 5; CLKout2_3_HS = 1 |
112.5 degrees | –247.5 degrees | CLKout2_3_DDLY = 6; CLKout2_3_HS = 0 |
135 degrees | –225 degrees | CLKout2_3_DDLY = 6; CLKout2_3_HS = 1 |
157.5 degrees | –202.5 degrees | CLKout2_3_DDLY = 7; CLKout2_3_HS = 0 |
180 degrees | –180 degrees | CLKout2_3_DDLY = 7; CLKout2_3_HS = 1 |
202.5 degrees | –157.5 degrees | CLKout2_3_DDLY = 8; CLKout2_3_HS = 0 |
225 degrees | –135 degrees | CLKout2_3_DDLY = 8; CLKout2_3_HS = 1 |
247.5 degrees | –112.5 degrees | CLKout2_3_DDLY = 9; CLKout2_3_HS = 0 |
270 degrees | –90 degrees | CLKout2_3_DDLY = 9; CLKout2_3_HS = 1 |
292.5 degrees | –67.5 degrees | CLKout2_3_DDLY = 10; CLKout2_3_HS = 0 |
315 degrees | –45 degrees | CLKout2_3_DDLY = 10; CLKout2_3_HS = 1 |
337.5 degrees | –22.5 degrees | CLKout2_3_DDLY = 10; CLKout2_3_HS = 0 |
After setting the new digital delay values, the act of programming R1 starts a SYNC automatically because SYNC_EN_AUTO = 1.
If the user elects to reduce the number of SYNCs because they are not required when only CLKout2_3_HS is set, then SYNC_EN_AUTO is = 0 and the SYNC may now be generated by toggling the SYNC pin or by toggling the SYNC_POL_INV bit. Because of the internal one shot pulse, no strict timing of the SYNC pin or SYNC_POL_INV bit is required.
After the SYNC event, the clock output adjusts according to Table 8. See Figure 15 for a detailed view of the timing diagram. The timing diagram critical points are:
Relative dynamic digital delay can be used to program a clock output to a specific phase offset from another clock output.
Pros:
Cons:
To show the relative dynamic digital delay adjust procedure, consider the following example.
System Requirements:
The application requires the 491.52-MHz clock to be stepped in 22.5 degree steps (≈203.4 ps), which is the minimum step resolution allowable by the clock distribution path. That is 1 / 2457.6 MHz / 2 = ≈203.4 ps. During the stepping of the 491.52-MHz clocks the 819.2-MHz clock must not be interrupted.
Step 1: The device is programmed from register R0 to R30 with values that result in the device being locked and operating as desired, see the system requirements above. The phase of all the output clocks are aligned because all the digital delay and half step values were the same when the SYNC was generated by programming register R30. The timing of this is as shown in Figure 13.
Step 2: Now the registers are programmed to prepare for changing digital delay (or phase) dynamically.
REGISTER | PURPOSE |
---|---|
SYNC_QUAL = 1 | Use clock output for qualifying the SYNC pulse for dynamically adjusting digital delay. |
EN_SYNC = 1 (default) | Required for SYNC functionality. |
CLKout4_5_PD = 0 | Required when SYNC_QUAL = 1. CLKout4 and/or CLKout5 outputs may be powered down or in use. |
EN_FEEDBACK_MUX = 1 | Enable the feedback mux for SYNC operation for dynamically adjusting digital delay. |
FEEDBACK_MUX = 1 (CLKout2) | Use the clock itself as the SYNC qualification clock. |
NO_SYNC_CLKout0_1 = 1 | This clock output (819.2 MHz) won't be affected by SYNC. It always operates without interruption. |
NO_SYNC_CLKout4_5 = 1 | CLKout3’s phase is not to change with respect to CLKout0. |
SYNC_EN_AUTO = 0 (default) | Automatic generation of SYNC is not allowed because of the half step requirement in relative dynamic digital delay mode. SYNC must be generated manually by toggling the SYNC_POL_INV bit or the SYNC pin. |
After the above registers have been programmed, the application may now dynamically adjust the digital delay of the 491.52-MHz clocks.
Step 3: Adjust digital delay of CLKout2 by one step which is 22.5 degrees or ≈203.4 ps.
Refer to Table 10 for the programming sequence to step one half clock distribution period forward or backwards. Refer to Calculating Dynamic Digital Delay Values for Any Divide for more information on how to calculate digital delay and half step values for other cases.
To fulfill the qualifying clock output half step requirement in Table 6 when dynamically adjusting digital delay, the CLKoutX_Y_HS bit must be cleared for clocks with even divides. So before any dynamic digital delay adjustment, CLKoutX_Y_HS must be clear because the clock divide value is even. To achieve the final required digital delay adjustment, the CLKoutX_Y_HS bit may set after SYNC.
STEP DIRECTION AND CURRENT HS STATE |
PROGRAMMING SEQUENCE |
---|---|
Adjust clock output one step forward. CLKout2_3_HS is 0. |
1. CLKout2_3_HS = 1. |
Adjust clock output one step forward. CLKout2_3_HS is 1. |
1. CLKout2_3_DDLY = 11. 2. Perform SYNC event. 3. CLKout2_3_HS = 0. |
Adjust clock output one step backward. CLKout2_3_HS is 0. |
1. CLKout2_3_HS = 1. 2. CLKout2_3_DDLY = 11. 3. Perform SYNC event. |
Adjust clock output one step backward. CLKout2_3_HS is 1. |
1. CLKout2_3_HS = 0. |
After programing the updated CLKout2_3_DDLY and CLKout2_3_HS values, perform a SYNC event. The SYNC may be generated by toggling the SYNC pin or by toggling the SYNC_POL_INV bit. Because of the internal one shot pulse, no strict timing of the SYNC pin or SYNC_POL_INV bit is required. After the SYNC event, the clock output is at the specified phase. See Figure 16 for a detailed view of the timing diagram. The timing diagram critical points are:
When 0-delay mode is enabled the clock output selected by the Feedback Mux is connected to the PLL1 N counter to ensure a fixed phase relationship between the selected CLKin and the fed back CLKout. When all the clock outputs are synced together, all the clock outputs share the same fixed phase relationship between the selected CLKin and the fed back CLKout. The feedback can be internal or external using FBCLKin port.
When 0-delay mode is enabled the lowest frequency clock output is fed back to the Feedback Mux to ensure a repeatable fixed CLKin to CLKout phase relationship between all clock outputs.
If a clock output that is not the lowest frequency output is selected for feedback, then clocks with lower frequencies have an unknown phase relationship with respect the other clocks and clock input. There are a number of possible phase relationships equal to Feedback_Clock_Frequency / Lower_Clock_Frequency that may occur.
The Feedback Mux selects the even clock output of any clock group for internal feedback or the FBCLKin port for external 0-delay feedback. The even clock can remain powered down as long as the CLKoutX_Y_PD bit is = 0 for its clock group.
To use 0-delay mode, the bit EN_FEEDBACK_MUX must be set (=1) to power up the feedback mux.
See PLL Programming for more information on programming PLL1_N for 0-delay mode.
When using an external VCO mode, internal 0-delay feedback must be used because the FBCLKin port is shared with the Fin input.
Table 11 outlines several registers to program for 0-delay mode.
REGISTER | PURPOSE |
---|---|
MODE = 2 or 5 | Select one of the 0-delay modes for device. |
EN_FEEDBACK_MUX = 1 | Enable feedback mux. |
FEEDBACK_MUX = Application Specific | Select CLKout or FBCLKin for 0-delay feedback. |
CLKoutX_Y_DIV | The divide value of the clock selected by FEEDBACK_MUX is important for PLL2 N value calculation |
PLL1_N | PLL1_N value used with CLKoutX_Y_DIV in loop. |
The LMK04816 is capable of operating in several different modes as programmed by MODE: Device Mode.
MODE R11[31:27] |
PLL1 | PLL2 | PLL2 VCO | 0-delay | Clock Dist |
---|---|---|---|---|---|
0 | X | X | Internal | X | |
2 | X | X | Internal | X | X |
3 | X | X | External | X | |
5 | X | X | External | X | X |
6 | X | Internal | X | ||
8 | X | Internal | X | X | |
11 | X | External | X | ||
16 | X |
In addition to selecting the mode of operation above, some modes require additional configuration. Also there are other features including holdover and dynamic digital delay that can also be enabled.
REGISTER | HOLDOVER | 0-DELAY | DYNAMIC DIGITAL DELAY |
---|---|---|---|
HOLDOVER_MODE | 2 | — | — |
EN_TRACK | User | — | — |
DAC_CLK_DIV | User | — | — |
EN_MAN_DAC | User | — | — |
DISABLE_DLD1_DET | User | — | — |
EN_VTUNE_RAIL_ DET |
User | — | — |
DAC_HIGH_TRIP | User | — | — |
DAC_LOW_TRIP | User | — | — |
FORCE_HOLDOVER | 0 | — | — |
SYNC_EN_AUTO | — | — | User |
SYNC_QUAL | — | — | 1 |
EN_SYNC | — | — | 1 |
CLKout4_5_PD | — | — | 0 |
EN_ FEEDBACK_MUX |
— | 1 | 1 |
FEEDBACK_MUX | — | Feedback Clock | Qualifying Clock |
NO_SYNC_ CLKoutX_Y |
— | — | User |
The LMK04816 is a flexible device that can be configured for many different use cases. The following simplified block diagrams help show the user the different use cases of the device.
Figure 17 shows the typical use case of the LMK04816 in dual-loop mode. In dual-loop mode the reference to PLL1 is either CLKin0, CLKin1, or CLKin2. An external VCXO or tunable crystal is used to provide feedback for the first PLL and a reference to the second PLL. This first PLL cleans the jitter with the VCXO or low-cost tunable crystal by using a narrow loop bandwidth. The VCXO or tunable crystal output may be buffered through the two OSCout ports and optionally on up to 4 of the CLKouts. The VCXO or tunable crystal is used as the reference to PLL2 and may be doubled using the frequency doubler. The internal VCO drives up to six divide and delay blocks which drive 12 clock outputs.
Holdover functionality is optionally available when the input reference clock is lost. Holdover works by fixing the tuning voltage of PLL1 to the VCXO or tunable crystal.
It is also possible to use an external VCO in place of the internal VCO of the PLL2.
Figure 18 shows the use case of 0-delay dual loop mode. This configuration is very similar to Dual PLL except that the feedback to the first PLL is driven by a clock output. This causes the clock outputs to have deterministic phase with the clock input. Because all the clock outputs can be synchronized together, all the clock outputs can be in phase with the clock input signal. The feedback to PLL1 can be connected internally as shown, or externally using FBCLKin (CLKin1) as an input port.
It is also possible to use an external VCO in place of the internal VCO of the PLL2.
Figure 19 shows the use case of single PLL mode. In single PLL mode only PLL2 is used and PLL1 is powered down. OSCin is used as the reference input. The internal VCO drives up to 6 divide and delay blocks which drive 12 clock outputs. The reference at OSCin can be used to drive up the OSCout0 port. OSCin can also optionally drive up to 4 of the clock outputs.
It is also possible to use an external VCO in place of the internal VCO of the PLL2.
Figure 20 shows the use case of 0-delay single PLL mode. This configuration is very similar to Single PLL except that the feedback to PLL2 comes from a clock output. This causes the clock outputs to be in phase with the reference input. Because all the clock outputs can be synchronized together, all the clock outputs can be in phase with the clock input signal. The feedback to PLL2 can be performed internally as shown, or externally using FBCLKin (CLKin1) as an input port.
It is also possible to use an external VCO in place of the internal VCO of the PLL2.
Figure 21 shows the LMK04816 used for clock distribution. CLKin1 is used to drive up to 6 divide and delay blocks which drive 12 outputs. OSCin can be used to drive the OSCout port. OSCin can also optionally drive up to 4 of the clock outputs.
LMK04816 devices are programmed using 32-bit registers. Each register consists of a 5-bit address field and 27-bit data field. The address field is formed by bits 0 through 4 (LSBs) and the data field is formed by bits 5 through 31 (MSBs). The contents of each register is clocked in MSB first (bit 31), and the LSB (bit 0) last. During programming, the LEuWire signal must be held low. The serial data is clocked in on the rising edge of the CLKuWire signal. After the LSB (bit 0) is clocked in the LEuWire signal must be toggled low-to-high-to-low to latch the contents into the register selected in the address field. TI recommends programming registers in numeric order, for example R0 to R16, and R24 to R31 to achieve proper device operation. Figure 8 shows the serial data timing sequence.
To achieve proper frequency calibration, the OSCin port must be driven with a valid signal before programming register R30. Changes to PLL2 R divider or the OSCin port frequency require register R30 to be reloaded in order to activate the frequency calibration process.
In some cases when programming register R0 to R5 to change the CLKoutX_Y_DIV divide value or CLKoutX_Y_DDLY delay value, 3 additional CLKuWire cycles must occur after loading the register for the newly programmed divide or delay value to take effect. These special cases include:
Also, because SYNC_EN_AUTO bit = 1 automatically generates a SYNC on the falling edge of LE when R0 to R5 is programmed, further programming considerations must be made when SYNC_EN_AUTO = 1.
These special programming cases requiring the additional three clock cycles may be properly programmed by one of the following methods shown in Table 14.
CLKoutX_Y_DIV and CLKoutX_Y_DDLY |
SYNC_EN_AUTO | PROGRAMMING METHOD |
---|---|---|
CLKoutX_Y_DIV ≤ 25 and CLKoutX_Y_DDLY ≤ 12 |
0 or 1 | No Additional Clocks Required (Normal) |
CLKoutX_Y_DIV > 25 or CLKoutX_Y_DDLY > 12 |
0 | Three Extra CLKuWire Clocks (Or program another register) |
CLKoutX_Y_DIV > 25 or CLKoutX_Y_DDLY > 12 |
1 | Three Extra CLKuWire Clocks while LEuWire is High |
Method: No Additional Clocks Required (Normal)
No special consideration to CLKuWire is required when changing divide value to ≤ 25, digital delay value to ≤ 12, or when the digital delay and divide value do not change. See MICROWIRE timing Figure 8.
Method: Three Extra CLKuWire Clocks
Three extra clocks must be provided before CLKoutX_Y_DIV > 25 or CLKoutX_Y_DDLY > 12 take effect. See MICROWIRE timing Figure 9.
Also, by programming another register the three clock requirement can be satisfied.
Method: Three Extra CLKuWire Clocks With LEuWire Asserted
When SYNC_EN_AUTO = 1 the falling edge of LEuWire generates a SYNC event. CLKoutX_Y_DIV and CLKoutX_Y_DDLY values must be updated before the SYNC event occurs. So 3 CLKuWire rising edges must occur before LEuWire goes low. See Figure 10.
Initial Programming Sequence
During the recommended programming sequence the device is programmed in order from R0 to R31, so it is expected that at least one additional register is programmed after programming the last CLKoutX_Y_DIV or CLKoutX_Y_DDLY value in R0 to R5. This results in the extra needed CLKuWire rising edges, so this special note is of little concern.
If programming R0 to R5 to change CLKout frequency or digital delay or dynamic digital delay at a later time in the application, take care to provide these extra CLKuWire cycles to properly load the new divide and/or delay values.
In this example, all registers have been programmed, the PLLs are locked. An LMK04816 has been generating a clock output frequency of 61.44 MHz on CLKout4 using a VCO frequency of 2457.6 MHz and a divide value of 40. SYNC_EN_AUTO = 0. At a later time the application requires a 30.72 MHz output on CLKout4. By reprogramming register R4 with CLKout4_5_DIV = 80 twice, the divide value of 96 is set for clock outputs 4 and 5 which results in an output frequency of 30.72 MHz (2457.6 MHz / 80 = 30.72 MHz) on CLKout4.
In this example the required 3 CLKuWire cycles were achieved by reprogramming the R4 register with the same value twice.
Registers are programmed in numeric order with R0 being the first and R31 being the last register programmed. The recommended programming sequence involves programming R0 with the reset bit (b17) set to 1 to ensure the device is in a default state. If R0 is programmed again, the reset bit must be cleared to 0 during the programming of R0.
At no time must the MICROWIRE registers be programmed to any value other than what is specified in the datasheet.
For debug of the MICROWIRE interface, TI recommends to simply program an output pin mux to active low and then toggle the output type register between output and inverting output while observing the output pin for a low to high transition. For example, to verify MICROWIRE programming, set the LD_MUX = 0 (Low) and then toggle the LD_TYPE register between 3 (Output, push-pull) and 4 (Output inverted, push-pull). The result is that the Status_LD pin toggles from low to high.
Readback from the MICROWIRE programming registers is available. The MICROWIRE readback function can be enabled on the Status_LD, Status_HOLDOVER, Status_CLKin0, Status_CLKin1, or SYNC pin by programming the corresponding MUX register to uWire Readback and the corresponding TYPE register to Output (push-pull). Power on reset defaults the Status_HOLDOVER pin to uWire Readback.
Figure 11 shows the serial data timing sequence for a readback operation for both cases of READBACK_LE = 0 (POR default) and READBACK_LE = 1.
To perform a readback operation first set the register to be read back by programming the READBACK_ADDR register. Then after any MICROWIRE write operation, with the LEuWire pin held low continue to clock the CLKuWire pin. On every rising edge of the CLKuWire pin a new data bit is clocked onto the any pins programmed for uWire Readback. If the READBACK_LE bit is set, the LEuWire pin must be left high after LEuWire rising edge while continuing to clock the CLKuWire pin.
It is allowable to perform a register read back in the same MICROWIRE operation which set the READBACK_ADDR register value.
Data is clocked out MSB first. After 27 clocks all the data values have been read and the read operation is complete. If READBACK_LE = 1, the LEuWire line may now be lowered. It is allowable for the CLKuWire pin to be clocked additional cycles, but the data on the readback pin is invalid.
CLKuWire must be low before the falling edge of LEuWire.
To readback register R3 perform the following steps:
Table 15 provides the register map for device programming. Normally any register can be read from the same data address it is written to. However, READBACK_LE has a different readback address. Also, the DAC_CNT register is a read only register. Table 16 shows the address for READBACK_LE and DAC_CNT. Bits marked as reserved are undefined upon readback.
Observe that only the DATA bits are readback during a readback which can result in an offset of 5 bits between the two register tables.
REGISTER | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DATA [26:0] | ADDRESS [4:0] | |||||||||||||||||||||||||||||||
R0 | CLKout 0_1_PD |
0 | CLKout1_ ADLY_SEL |
CLKout0_ ADLY_SEL |
CLKout0_1_DDLY [27:18] | RESET | CLKout 0_1_HS |
CLKout0_1_DIV [15:5] | 0 | 0 | 0 | 0 | 0 | |||||||||||||||||||
R1 | CLKout 2_3_PD |
0 | CLKout3_ ADLY_SEL |
CLKout2_ ADLY_SEL |
CLKout2_3_DDLY [27:18] | POWERDOWN | CLKout 2_3_HS |
CLKout2_3_DIV [15:5] | 0 | 0 | 0 | 0 | 1 | |||||||||||||||||||
R2 | CLKout 4_5_PD |
0 | CLKout5_ ADLY_SEL |
CLKout4_ ADLY_SEL |
CLKout4_5_DDLY [27:18] | 0 | CLKout 4_5_HS |
CLKout4_5_DIV [15:5] | 0 | 0 | 0 | 1 | 0 | |||||||||||||||||||
R3 | CLKout 6_7_PD |
CLKout6_7_ OSCin_Sel |
CLKout7_ ADLY_SEL |
CLKout6_ ADLY_SEL |
CLKout6_7_DDLY [27:18] | 0 | CLKout 6_7_HS |
CLKout6_7_DIV [15:5] | 0 | 0 | 0 | 1 | 1 | |||||||||||||||||||
R4 | CLKout 8_9_PD |
CLKout8_9_ OSCin_Sel |
CLKout9_ ADLY_SEL |
CLKout8_ ADLY_SEL |
CLKout8_9_DDLY [27:18] | 0 | CLKout 8_9_HS |
CLKout8_9_DIV [15:5] | 0 | 0 | 1 | 0 | 0 | |||||||||||||||||||
R5 | CLKout 10_11_PD |
0 | CLKout11_ ADLY_SEL |
CLKout10_ ADLY_SEL |
CLKout10_11_DDLY [27:18] | 0 | CLKout 10_11_HS |
CLKout10_11_DIV [15:5] | 0 | 0 | 1 | 0 | 1 | |||||||||||||||||||
R6 | CLKout3_TYPE [31:28] | CLKout2_TYPE [27:24] | CLKout1_TYPE [23:20] | CLKout0_TYPE [19:16] | CLKout2_3_ADLY [15:11] |
0 | CLKout0_1_ADLY [9:5] |
0 | 0 | 1 | 1 | 0 | ||||||||||||||||||||
R7 | CLKout7_TYPE [31:28] | CLKout6_TYPE [27:24] | CLKout5_TYPE [23:20] | CLKout4_TYPE [19:16] | CLKout6_7_ADLY [15:11] |
0 | CLKout4_5_ADLY [9:5] |
0 | 0 | 1 | 1 | 1 | ||||||||||||||||||||
R8 | CLKout11_TYPE [31:28] | CLKout10_TYPE [27:24] | CLKout9_TYPE [23:20] | CLKout8_TYPE [19:16] | CLKout10_11_ADLY [15:11] |
0 | CLKout8_9_ADLY [9:5] |
0 | 1 | 0 | 0 | 0 | ||||||||||||||||||||
R9 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 |
R10 | 0 | 0 | 0 | 1 | OSCout0_TYPE [27:24] | 0 | EN_OSCout0 | 0 | OSCout0_MUX | PD_OSCin | OSCout_DIV [18:16] |
0 | 1 | 0 | VCO_MUX | EN_ FEEDBACK_MUX |
VCO_DIV [10:8] |
FEEDBACK _MUX [7:5] |
0 | 1 | 0 | 1 | 0 | |||||||||
R11 | MODE [31:27] | EN_SYNC | NO_SYNC_CLKout10_11 | NO_SYNC_CLKout8_9 | NO_SYNC_CLKout6_7 | NO_SYNC_CLKout4_5 | NO_SYNC_CLKout2_3 | NO_SYNC_CLKout0_1 | SYNC _CLKin2_ MUX [19:18] |
SYNC_QUAL | SYNC_POL_INV | SYNC_EN_AUTO | SYNC _TYPE [14:12] |
0 | 0 | 0 | 0 | 0 | 0 | EN_PLL2_XTAL | 0 | 1 | 0 | 1 | 1 | |||||||
R12 | LD_MUX [31:27] | LD_TYPE [26:24] | SYNC_PLL2_DLD | SYNC_PLL1_DLD | 0 (1) |
0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | EN_TRACK | HOLDOVER _MODE [7:6] |
1 | 0 | 1 | 1 | 0 | 0 | |||||||
R13 | HOLDOVER_MUX [31:27] |
HOLDOVER _TYPE [26:24] |
0 | Status_ CLKin1 _MUX [22:20] |
0 | Status_ CLKin0 _TYPE [18:16] |
DISABLE_DLD1_DET | Status_ CLKin0 _MUX [14:12] |
CLKin _Select _MODE [11:8] |
CLKin_Sel_INV | EN_CLKin2 | EN_CLKin1 | EN_CLKin0 | 0 | 1 | 1 | 0 | 1 | ||||||||||||||
R14 | LOS_ TIMEOUT [31:30] |
0 | EN_LOS | 0 | Status_ CLKin1 _TYPE [26:24] |
0 | CLKin2_BUF_TYPE | CLKin1_BUF_TYPE | CLKin0_BUF_TYPE | DAC_HIGH_TRIP [19:14] |
0 | 0 | DAC_LOW_TRIP [11:6] |
EN_VTUNE_RAIL_DET | 0 | 1 | 1 | 1 | 0 | |||||||||||||
R15 | MAN_DAC [31:22] |
0 | EN_MAN_DAC | HOLDOVER_DLD_CNT [19:6] |
FORCE_HOLDOVER | 0 | 1 | 1 | 1 | 1 | ||||||||||||||||||||||
R16 | XTAL_ LVL |
0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | |
R24 | PLL2_C4_LF [31:28] |
PLL2_C3_LF [27:24] |
0 | PLL2_R4_LF [22:20] |
0 | PLL2_R3_LF [18:16] |
0 | PLL1_N_DLY [14:12] |
0 | PLL1_R_DLY [10:8] |
PLL1_ WND_ SIZE |
0 | 1 | 1 | 0 | 0 | 0 | |||||||||||||||
R25 | DAC_CLK_DIV [31:22] | 0 | 0 | PLL1_DLD_CNT [19:6] | 0 | 1 | 1 | 0 | 0 | 1 | ||||||||||||||||||||||
R26 | PLL2_ WND_SIZE [31:30] |
EN_PLL2_REF_2X | PLL2_CP_POL | PLL2_CP _GAIN [27:26] |
1 | 1 | 1 | 0 | 1 | 0 | PLL2_DLD_CNT [19:6] |
PLL2_CP_TRI | 1 | 1 | 0 | 1 | 0 | |||||||||||||||
R27 | 0 | 0 | 0 | PLL1_CP_POL | PLL1_CP_GAIN | CLKin2_ PreR_DIV |
CLKin1_ PreR_DIV |
CLKin0_ PreR_DIV |
PLL1_R [19:6] |
PLL1_CP_TRI | 1 | 1 | 0 | 1 | 1 | |||||||||||||||||
R28 | PLL2_R | PLL1_N [19:6] | 0 | 1 | 1 | 1 | 0 | 0 | ||||||||||||||||||||||||
R29 | 0 | 0 | 0 | 0 | 0 | OSCin_FREQ [26:24] |
PLL2_FAST_PDF | PLL2_N_CAL [22:5] | 1 | 1 | 1 | 0 | 1 | |||||||||||||||||||
R30 | 0 | 0 | 0 | 0 | 0 | PLL2_P | 0 | PLL2_N [22:5] | 1 | 1 | 1 | 1 | 0 | |||||||||||||||||||
R31 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | READBACK_LE | READBACK_ADDR [20:16] | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | uWire_LOCK | 1 | 1 | 1 | 1 | 1 |
REGISTER | RD 26 |
RD 25 |
RD 24 |
RD 23 |
RD 22 |
RD 21 |
RD 20 |
RD 19 |
RD 18 |
RD 17 |
RD 16 |
RD 15 |
RD 14 |
RD 13 |
RD 12 |
RD 11 |
RD 10 |
RD 9 |
RD 8 |
RD 7 |
RD 6 |
RD 5 |
RD 4 |
RD 3 |
RD 2 |
RD 1 |
RD 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DATA [26:0] | |||||||||||||||||||||||||||
RD R12 |
LD_MUX [26:22] | LD_TYPE [21:19] | SYNC_PLL2_DLD | SYNC_PLL1_DLD | READBACK_LE | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | EN_TRACK | HOLDOVER_MODE [2:1] |
1 | |||||||
RD R23 |
RESERVED [26:24] | DAC_CNT [23:14] | RESERVED [13:0] | ||||||||||||||||||||||||
RD R31 |
RESERVED [26:10] | uWire_LOCK |
Table 17 shows the default register settings programmed in silicon for the LMK04816 after power on or asserting the reset bit. Capital X and Y represent numeric values.
GROUP | FIELD NAME | DEFAULT VALUE (DECIMAL) | DEFAULT STATE | FIELD DESCRIPTION | REGISTER | BIT LOCATION (MSB:LSB) |
---|---|---|---|---|---|---|
Clock Output Control | CLKout0_1_PD | 1 | PD | Powerdown control for analog and digital delay, divider, and both output buffers | R0 | 31 |
CLKout2_3_PD | 1 | PD | R1 | |||
CLKout4_5_PD | 1 | PD | R2 | |||
CLKout6_7_PD | 0 | Normal | R3 | |||
CLKout8_9_PD | 0 | Normal | R4 | |||
CLKout10_11_PD | 1 | PD | R5 | |||
CLKout6_7_OSCin_Sel | 1 | OSCin | Selects the clock source for a clock group from internal VCO or external OSCin | R3 | 30 | |
CLKout8_9_OSCin_Sel | 0 | VCO | R4 | 30 | ||
CLKoutX_ADLY_SEL | 0 | None | Add analog delay for clock output | R0 to R5 | 28, 29 | |
CLKoutX_Y_DDLY | 0 | 5 | Digital delay value | R0 to R5 | 27:18 [10] | |
RESET | 0 | Not in reset | Performs power on reset for device | R0 | 17 | |
POWERDOWN | 0 | Disabled (device is active) |
Device power down control | R1 | 17 | |
CLKoutX_Y_HS | 0 | No shift | Half shift for digital delay | R0 to R5 | 16 | |
CLKout0_1_DIV | 25 | Divide-by-25 | Divide for clock outputs | R0 | 15:5 [11] | |
CLKout2_3_DIV | 25 | Divide-by-25 | R1 | |||
CLKout4_5_DIV | 25 | Divide-by-25 | R2 | |||
CLKout6_7_DIV | 1 | Divide-by-1 | R3 | |||
CLKout8_9_DIV | 25 | Divide-by-25 | R4 | |||
CLKout10_11_DIV | 25 | Divide-by-25 | R5 | |||
CLKout3_TYPE | 0 | Powerdown | Individual clock output format. Select from LVDS/LVPECL/LVCMOS. | R6 | 31:28 [4] | |
CLKout7_TYPE | 0 | Powerdown | R7 | |||
CLKout11_TYPE | 0 | Powerdown | R8 | |||
CLKout2_TYPE | 0 | Powerdown | R6 | 27:24 [4] | ||
CLKout6_TYPE | 8 | LVCMOS (Norm/Norm) |
R7 | |||
CLKout10_TYPE | 0 | Power down | R8 | |||
CLKout1_TYPE | 0 | Power down | R6 | 23:20 [4] | ||
CLKout5_TYPE | 0 | Power down | R7 | |||
CLKout9_TYPE | 0 | Power down | R8 | |||
CLKout0_TYPE | 0 | Power down | R6 | 19:16 [4] | ||
CLKout4_TYPE | 0 | Power down | R7 | |||
CLKout8_TYPE | 1 | LVDS | R8 | |||
CLKoutX_Y_ADLY | 0 | No delay | Analog delay setting for clock group | R6 to R8 | 15:11, 9:5 [5] | |
OSCout0_TYPE | 1 | LVDS | OSCout0 default clock output | R10 | 27:24 [4] | |
EN_OSCout0 | 1 | Enabled | Enable OSCout0 output buffer | R10 | 22 | |
OSCout0_MUX | 0 | Bypass Divider | Select OSCout divider for OSCout0 or bypass | R10 | 20 | |
PD_OSCin | 0 | OSCin powered | Allows OSCin to be powered down. For use in clock distribution mode. | R10 | 19 | |
OSCout_DIV | 0 | Divide-by-8 | OSCout divider value | R10 | 18:16 [3] | |
Mode | VCO_MUX | 0 | VCO | Select VCO or VCO Divider output | R10 | 12 |
EN_FEEDBACK_MUX | 0 | Disabled | Feedback MUX is powered down. | R10 | 11 | |
VCO_DIV | 2 | Divide-by-2 | VCO Divide value | R10 | 10:8 [3] | |
FEEDBACK_MUX | 0 | CLKout0 | Selects CLKout to feedback into the PLL1 N divider | R10 | 7:5 [3] | |
MODE | 0 | Internal VCO | Device mode | R11 | 31:27 [5] | |
Clock Synchronization | EN_SYNC | 1 | Enabled | Enables synchronization circuitry. | R11 | 26 |
NO_SYNC_CLKout10_11 | 0 | Will sync | Disable individual clock groups from becoming synchronized. | R11 | 25 | |
NO_SYNC_CLKout8_9 | 1 | Will not sync | R11 | 24 | ||
NO_SYNC_CLKout6_7 | 1 | Will not sync | R11 | 23 | ||
NO_SYNC_CLKout4_5 | 0 | Will sync | R11 | 22 | ||
NO_SYNC_CLKout2_3 | 0 | Will sync | R11 | 21 | ||
NO_SYNC_CLKout0_1 | 0 | Will sync | R11 | 20 | ||
SYNC_CLKin2_MUX | 0 | Logic Low | Mux controlling SYNC pin when set to output | R11 | 19:18 [2] | |
SYNC_QUAL | 0 | Not qualified | Allows SYNC operations to be qualified by a clock output. | R11 | 17 | |
SYNC_POL_INV | 1 | Logic Low | Sets the polarity of the SYNC pin when input | R11 | 16 | |
SYNC_EN_AUTO | 0 | Manual | SYNC is not started by programming a register R0 to R5. | R11 | 15 | |
SYNC_TYPE | 1 | Input with Pullup |
SYNC IO pin type | R11 | 14:12 [3] | |
Other Mode Control | EN_PLL2_XTAL | 0 | Disabled | Enable Crystal oscillator for OSCin | R11 | 5 |
LD_MUX | 3 | PLL1 & 2 DLD | Lock detect mux selection when output | R12 | 31:27 [5] | |
LD_TYPE | 3 | Output (Push-Pull) |
LD IO pin type | R12 | 26:24 [3] | |
SYNC_PLL2_DLD | 0 | Normal | Force synchronization mode until PLL2 locks | R12 | 23 | |
SYNC_PLL1_DLD | 0 | Normal | Force synchronization mode until PLL1 locks | R12 | 22 | |
EN_TRACK | 1 | Enable Tracking | DAC tracking of the PLL1 tuning voltage | R12 | 8 | |
HOLDOVER_MODE | 2 | Enable Holdover | Causes holdover to activate when lock is lost | R12 | 7:6 [2] | |
HOLDOVER_MUX | 7 | uWire Readback | Holdover mux selection | R13 | 31:27 [5] | |
HOLDOVER_TYPE | 3 | Output (Push-Pull) |
HOLDOVER IO pin type | R13 | 26:24 [3] | |
Status_CLKin1_MUX | 0 | Logic Low | Status_CLKin1 pin MUX selection | R13 | 22:20 [3] | |
Status_CLKin0_TYPE | 2 | Input with Pulldown | Status_CLKin0 IO pin type | R13 | 18:16 [3] | |
DISABLE_DLD1_DET | 0 | Not Disabled | Disables PLL1 DLD falling edge from causing HOLDOVER mode to be entered | R13 | 15 | |
Status_CLKin0_MUX | 0 | Logic Low | Status_CLKin0 pin MUX selection | R13 | 14:12 [3] | |
CLKin_SELECT_MODE | 3 | Manual Select | Mode to use in determining reference CLKin for PLL1 | R13 | 11:9 [3] | |
CLKin_Sel_INV | 0 | Active High | Invert Status 0 and 1 pin polarity for input | R13 | 8 | |
CLKin Control | EN_CLKin2 | 1 | Usable | Set CLKin2 to be usable | R13 | 7 |
EN_CLKin1 | 1 | Usable | Set CLKin1 to be usable | R13 | 6 | |
EN_CLKin0 | 1 | Usable | Set CLKin0 to be usable | R13 | 5 | |
LOS_TIMEOUT | 0 | 1200 ns, 420 kHz | Time until no activity on CLKin asserts LOS | R14 | 31:30 [2] | |
EN_LOS | 1 | Enabled | Loss of Signal Detect at CLKin | R14 | 28 | |
Status_CLKin1_TYPE | 2 | Input with Pulldown | Status_CLKin1 pin IO pin type | R14 | 26:24 [3] | |
CLKin2_BUF_TYPE | 0 | Bipolar | CLKin2 Buffer Type | R14 | 22 | |
CLKin1_BUF_TYPE | 0 | Bipolar | CLKin1 Buffer Type | R14 | 21 | |
CLKin0_BUF_TYPE | 0 | Bipolar | CLKin0 Buffer Type | R14 | 20 | |
DAC Control | DAC_HIGH_TRIP | 0 | ~50 mV from Vcc | Voltage from Vcc at which holdover mode is entered if EN_VTUNE_RAIL_DAC is enabled. | R14 | 19:14 [6] |
DAC_LOW_TRIP | 0 | ~50 mV from GND | Voltage from GND at which holdover mode is entered if EN_VTUNE_RAIL_DAC is enabled. | R14 | 11:6 [6] | |
EN_VTUNE_RAIL_DET | 0 | Disabled | Enable PLL1 unlock state when DAC trip points are achieved | R14 | 5 | |
MAN_DAC | 512 | 3 V / 2 | Writing to this register sets the value for DAC when in manual override. Readback from this register is DAC value. |
R15 | 31:22 [10] | |
EN_MAN_DAC | 0 | Disabled | Set manual DAC override | R15 | 20 | |
HOLDOVER_DLD_CNT | 512 | 512 counts | Lock must be valid n many clocks of PLL1 PDF before holdover mode is exited. | R15 | 19:6 [14] | |
FORCE_HOLDOVER | 0 | Holdover not forced | Forces holdover mode. | R15 | 5 | |
XTAL_LVL | 0 | 1.65 Vpp | Sets drive power level of Crystal | R16 | 31:30 [2] | |
PLL Control | PLL2_C4_LF | 0 | 10 pF | PLL2 integrated capacitor C4 value | R24 | 31:28 [4] |
PLL2_C3_LF | 0 | 10 pF | PLL2 integrated capacitor C3 value | R24 | 27:24 [4] | |
PLL2_R4_LF | 0 | 200 Ω | PLL2 integrated resistor R4 value | R24 | 22:20 [3] | |
PLL2_R3_LF | 0 | 200 Ω | PLL2 integrated resistor R3 value | R24 | 18:16 [3] | |
PLL1_N_DLY | 0 | No delay | Delay in PLL1 feedback path to decrease lag from input to output | R24 | 14:12 [3] | |
PLL1_R_DLY | 0 | No delay | Delay in PLL1 reference path to increase lag from input to output | R24 | 10:8 [3] | |
PLL1_WND_SIZE | 3 | 40 ns | Window size used for digital lock detect for PLL1 | R24 | 7:6 [2] | |
DAC_CLK_DIV | 4 | Divide-by-4 | DAC update clock divisor. Divides PLL1 phase detector frequency. | R25 | 31:22 [10] | |
PLL1_DLD_CNT | 1024 | 1024 cycles | Lock must be valid n many cycles before LD is asserted | R25 | 19:6 [14] | |
PLL2_WND_SIZE | 0 | Reserved (1) |
Window size used for digital lock detect for PLL2 | R26 | 31:30 [2] | |
EN_PLL2_REF_2X | 0 | Disabled, 1x | Doubles reference frequency of PLL2. | R26 | 29 | |
PLL2_CP_POL | 0 | Negative | Polarity of PLL2 Charge Pump | R26 | 28 | |
PLL2_CP_GAIN | 3 | 3.2 mA | PLL2 Charge Pump Gain | R26 | 27:26 [2] | |
PLL2_DLD_CNT | 8192 | 8192 Counts | Number of PDF cycles which phase error must be within DLD window before LD state is asserted. | R26 | 19:6 [14] | |
PLL2_CP_TRI | 0 | Active | PLL2 Charge Pump Active | R26 | 5 | |
PLL1_CP_POL | 1 | Positive | Polarity of PLL1 Charge Pump | R27 | 28 | |
PLL1_CP_GAIN | 0 | 100 uA | PLL1 Charge Pump Gain | R27 | 27:26 [2] | |
CLKin2_PreR_DIV | 0 | Divide-by-1 | CLKin2 Pre-R divide value (1, 2, 4, or 8) | R27 | 25:24 [2] | |
CLKin1_PreR_DIV | 0 | Divide-by-1 | CLKin1 Pre-R divide value (1, 2, 4, or 8) | R27 | 23:22 [2] | |
CLKin0_PreR_DIV | 0 | Divide-by-1 | CLKin0 Pre-R divide value (1, 2, 4, or 8) | R27 | 21:20 [2] | |
PLL1_R | 96 | Divide-by-96 | PLL1 R Divider (1 to 16383) | R27 | 19:6 [14] | |
PLL1_CP_TRI | 0 | Active | PLL1 Charge Pump Active | R27 | 5 | |
PLL2_R | 4 | Divide-by-4 | PLL2 R Divider (1 to 4095) | R28 | 31:20 [12] | |
PLL1_N | 192 | Divide-by-192 | PLL1 N Divider (1 to 16383) | R28 | 19:6 [14] | |
OSCin_FREQ | 7 | 448 to 511 MHz | OSCin frequency range | R29 | 26:24 [3] | |
PLL2_FAST_PDF | 1 | PLL2 PDF > 100 MHz | When set, PLL2 PDF of greater than 100 MHz may be used | R29 | 23 | |
PLL2_N_CAL | 48 | Divide-by-48 | Must be programmed to PLL2_N value. | R29 | 22:5 [18] | |
PLL2_P | 2 | Divide-by-2 | PLL2 N Divider Prescaler (2 to 8) | R30 | 26:24 [3] | |
PLL2_N | 48 | Divide-by-48 | PLL2 N Divider (1 to 262143) | R30 | 22:5 [18] | |
READBACK_LE | 0 | LEuWire Low for Readback | State LEuWire pin must be in for readback | R31 | 21 | |
READBACK_ADDR | 31 | Register 31 | Register to read back | R31 | 20:16 [5] | |
uWire_LOCK | 0 | Writable | The values of registers R0 to R30 are lockable | R31 | 5 |
Registers R0 through R5 control the 12 clock outputs CLKout0 to CLKout11. Register R0 controls CLKout0 and CLKout1, Register R1 controls CLKout2 and CLKout3, and so on. All functions of the bits in these six registers are identical except the different registers control different clock outputs. The X and Y in CLKoutX_Y_PD, CLKoutX_ADLY_SEL, CLKoutY_ADLY_SEL, CLKoutX_Y_DDLY, CLKoutX_Y_HS, CLKoutX_Y_DIV denote the actual clock output which may be from 0 to 11 where X is even and Y is odd. Two clock outputs CLKoutX and CLKoutY form a clock output group and are often run together in bit names as CLKoutX_Y.
The RESET bit is only in register R0.
The POWERDOWN bit is only in register R1.
The CLKoutX_Y_OSCin_Sel bit is only in registers R3 and R4.
This bit powers down the clock group as specified by CLKoutX and CLKoutY. This includes the divider, digital delay, analog delay, and output buffers.
R0-R5[31] | STATE |
---|---|
0 | Power up clock group |
1 | Power down clock group |
This bit sets the source for the clock output group CLKoutX_Y. The selected source is either from a VCO via Mode Mux1 or from the OSCin buffer.
This bit is valid only for registers R3 and R4, clock groups CLKout6_7 and CLKout8_9 respectively. All other clock output groups are driven by a VCO via Mode Mux1.
R3-R4[30] | CLOCK GROUP SOURCE |
---|---|
0 | VCO |
1 | OSCin |
These bits individually select the analog delay block (CLKoutX_Y_ADLY) for use with CLKoutX or CLKoutY. It is not required for both outputs of a clock output group to use analog delay, but if both outputs do select the analog delay block, then the analog delay is the same for each output, CLKoutX, and CLKoutY. When neither clock output uses analog delay, the analog delay block is powered down.
R0-R5[29] | R0-R5[28] | STATE |
---|---|---|
0 | 0 | Analog delay powered down |
0 | 1 | Analog delay on even CLKoutX |
1 | 0 | Analog delay on odd CLKoutY |
1 | 1 | Analog delay on both CLKouts |
CLKoutX_Y_DDLY and CLKoutX_Y_HS sets the digital delay used for CLKoutX and CLKoutY. This value only takes effect during a SYNC event and if the NO_SYNC_CLKoutX_Y bit is cleared for this clock group. See Clock Output Synchronization (SYNC).
Programming CLKoutX_Y_DDLY can require special attention. See section Special Programming Case for R0 to R5 for CLKoutX_Y_DIV and CLKoutX_Y_DDLY for more details.
Using a CLKoutX_Y_DDLY value of 13 or greater causes the clock group to operate in extended mode regardless of the clock group's divide value or the half step value.
One clock cycle is equal to the period of the clock distribution path. The period of the clock distribution path is equal to VCO Divider value divided by the frequency of the VCO. If the VCO divider is disabled or an external VCO is used, the VCO divide value is treated as 1.
tclock distribution path = VCO divide value / fVCO
R0-R5[27:18] | DELAY | POWER MODE |
---|---|---|
0 (0x00) | 5 clock cycles | Normal Mode |
1 (0x01) | 5 clock cycles | |
2 (0x02) | 5 clock cycles | |
3 (0x03) | 5 clock cycles | |
4 (0x04) | 5 clock cycles | |
5 (0x05) | 5 clock cycles | |
6 (0x06) | 6 clock cycles | |
7 (0x07) | 7 clock cycles | |
... | ... | |
12 (0x0C) | 12 clock cycles | |
13 (0x0D) | 13 clock cycles | Extended Mode |
... | ... | |
520 (0x208) | 520 clock cycles | |
521 (0x209) | 521 clock cycles | |
522 (0x20A) | 522 clock cycles |
The RESET bit is located in register R0 only. Setting this bit causes the silicon default values to be loaded. When programming register R0 with the RESET bit set, all other programmed values are ignored. After resetting the device, the register R0 must be programmed again (with RESET = 0) to set non-default values in register R0.
The reset occurs on the falling edge of the LEuWire pin which loaded R0 with RESET = 1.
The RESET bit is automatically cleared upon writing any other register. For instance, when R0 is written to again with default values.
R0[17] | STATE |
---|---|
0 | Normal operation |
1 | Reset (automatically cleared) |
The POWERDOWN bit is located in register R1 only. Setting the bit causes the device to enter power-down mode. Normal operation is resumed by clearing this bit with MICROWIRE.
R1[17] | STATE |
---|---|
0 | Normal operation |
1 | Powerdown |
This bit subtracts a half clock cycle of the clock distribution path period to the digital delay of CLKoutX and CLKoutY. CLKoutX_Y_HS is used together with CLKoutX_Y_DDLY to set the digital delay value.
When changing CLKoutX_Y_HS, the digital delay immediately takes effect without a SYNC event.
R0-R5[16] | STATE |
---|---|
0 | Normal |
1 | Subtract half of a clock distribution path period from the total digital delay |
CLKoutX_Y_DIV sets the divide value for the clock group. The divide may be even or odd. Both even and odd divides output a 50% duty cycle clock.
Using a divide value of 26 or greater causes the clock group to operate in extended mode regardless of the clock group's digital delay value.
Programming CLKoutX_Y_DIV can require special attention. See section Special Programming Case for R0 to R5 for CLKoutX_Y_DIV and CLKoutX_Y_DDLY for more details.
R0-R5[15:5] | DIVIDE VALUE | POWER MODE |
---|---|---|
0 (0x00) | Reserved | Normal Mode |
1 (0x01) | 1 (1) | |
2 (0x02) | 2 (2) | |
3 (0x03) | 3 | |
4 (0x04) | 4 (2) | |
5 (0x05) | 5 (2) | |
6 (0x06) | 6 | |
... | ... | |
24 (0x18) | 24 | |
25 (0x19) | 25 | |
26 (0x1A) | 26 | Extended Mode |
27 (0x1B) | 27 | |
... | ... | |
1044 (0x414) | 1044 | |
1045 (0x415) | 1045 |
Registers R6 to R8 set the clock output types and analog delays.
The clock output types of the LMK04816 are individually programmable. The CLKoutX_TYPE registers set the output type of an individual clock output to LVDS, LVPECL, LVCMOS, or powers down the output buffer.
NOTE
LVPECL supports four different amplitude levels and LVCMOS supports single LVCMOS outputs, inverted, and normal polarity of each output pin for maximum flexibility.
The programming addresses table shows at what register and address the specified clock output CLKoutX_TYPE register is located.
The CLKoutX_TYPE table shows the programming definition for these registers.
CLKoutX | PROGRAMMING ADDRESS |
---|---|
CLKout0 | R6[19:16] |
CLKout1 | R6[23:20] |
CLKout2 | R6[27:24] |
CLKout3 | R6[31:28] |
CLKout4 | R7[19:16] |
CLKout5 | R7[23:20] |
CLKout6 | R7[27:24] |
CLKout7 | R7[31:28] |
CLKout8 | R8[19:16] |
CLKout9 | R8[23:20] |
CLKout10 | R8[27:24] |
CLKout11 | R8[31:28] |
R6-R8[31:28, 27:24, 23:20] | DEFINITION |
---|---|
0 (0x00) | Power down |
1 (0x01) | LVDS |
2 (0x02) | LVPECL (700 mVpp) |
3 (0x03) | LVPECL (1200 mVpp) |
4 (0x04) | LVPECL (1600 mVpp) |
5 (0x05) | LVPECL (2000 mVpp) |
6 (0x06) | LVCMOS (Norm/Inv) |
7 (0x07) | LVCMOS (Inv/Norm) |
8 (0x08) | LVCMOS (Norm/Norm) |
9 (0x09) | LVCMOS (Inv/Inv) |
10 (0x0A) | LVCMOS (Low/Norm) |
11 (0x0A) | LVCMOS (Low/Inv) |
12 (0x0C) | LVCMOS (Norm/Low) |
13 (0x0D) | LVCMOS (Inv/Low) |
14 (0x0E) | LVCMOS (Low/Low) |
These registers control the analog delay of the clock group CLKoutX_Y. Adding analog delay to the output increases the noise floor of the output. For this analog delay to be active for a clock output, it must be selected with CLKout(X or Y)_ADL_SEL. If neither clock output in a clock group selects the analog delay, then the analog delay block is powered down.
In addition to the programmed delay, a fixed 500 ps of delay is added by engaging the delay block.
The programming addresses table shows at what register and address the specified clock output CLKoutX_Y_ADLY register is located.
The CLKoutX_Y_ADLY table shows the programming definition for these registers.
CLKoutX_Y_ADLY | PROGRAMMING ADDRESS |
---|---|
CLKout0_1_ADLY | R6[9:5] |
CLKout2_3_ADLY | R6[15:11] |
CLKout4_5_ADLY | R7[9:5] |
CLKout6_7_ADLY | R7[15:11] |
CLKout8_9_ADLY | R8[9:5] |
CLKout10_11_ADLY | R8[15:11] |
R6-R8[15:11, 9:5] | DEFINITION |
---|---|
0 (0x00) | 500 ps + No delay |
1 (0x01) | 500 ps + 25 ps |
2 (0x02) | 500 ps + 50 ps |
3 (0x03) | 500 ps + 75 ps |
4 (0x04) | 500 ps + 100 ps |
5 (0x05) | 500 ps + 125 ps |
6 (0x06) | 500 ps + 150 ps |
7 (0x07) | 500 ps + 175 ps |
8 (0x08) | 500 ps + 200 ps |
9 (0x09) | 500 ps + 225 ps |
10 (0x0A) | 500 ps + 250 ps |
11 (0x0B) | 500 ps + 275 ps |
12 (0x0C) | 500 ps + 300 ps |
13 (0x0D) | 500 ps + 325 ps |
14 (0x0E) | 500 ps + 350 ps |
15 (0x0F) | 500 ps + 375 ps |
16 (0x10) | 500 ps + 400 ps |
17 (0x11) | 500 ps + 425 ps |
18 (0x12) | 500 ps + 450 ps |
19 (0x13) | 500 ps + 475 ps |
20 (0x14) | 500 ps + 500 ps |
21 (0x15) | 500 ps + 525 ps |
22 (0x16) | 500 ps + 550 ps |
23 (0x17) | 500 ps + 575 ps |
The OSCout0 clock output has a programmable output type. The OSCout0_TYPE register sets the output type to LVDS, LVPECL, LVCMOS, or powers down the output buffer.
NOTE
LVPECL supports four different amplitude levels and LVCMOS supports dual and single LVCMOS outputs with inverted, and normal polarity of each output pin for maximum flexibility.
To turn on the output, the OSCout0_TYPE must be set to a non-power down setting and enabled with EN_OSCout0, OSCout0 Output Enable.
R10[27:24] | DEFINITION |
---|---|
0 (0x00) | Power down |
1 (0x01) | LVDS |
2 (0x02) | LVPECL (700 mVpp) |
3 (0x03) | LVPECL (1200 mVpp) |
4 (0x04) | LVPECL (1600 mVpp) |
5 (0x05) | LVPECL (2000 mVpp) |
6 (0x06) | LVCMOS (Norm/Inv) |
7 (0x07) | LVCMOS (Inv/Norm) |
8 (0x08) | LVCMOS (Norm/Norm) |
9 (0x09) | LVCMOS (Inv/Inv) |
10 (0x0A) | LVCMOS (Low/Norm) |
11 (0x0B) | LVCMOS (Low/Inv) |
12 (0x0C) | LVCMOS (Norm/Low) |
13 (0x0D) | LVCMOS (Inv/Low) |
14 (0x0E) | LVCMOS (Low/Low) |
EN_OSCout0 is used to enable an oscillator buffered output.
R10[22] | OUTPUT STATE |
---|---|
0 | OSCout0 Disabled |
1 | OSCout0 Enabled |
OSCout0 note: In addition to enabling the output with EN_OSCout0. The OSCout0_TYPE must be programmed to a non-power down value for the output buffer to power up.
Sets OSCout0 buffer to output a divided or bypassed OSCin signal. The divisor is set by OSCout_DIV, Oscillator Output Divide.
R10[20] | MUX OUTPUT |
---|---|
0 | Bypass divider |
1 | Divided |
Except in clock distribution mode, the OSCin buffer must always be powered up.
In clock distribution mode, the OSCin buffer must be powered down if not used.
R10[19] | OSCin BUFFER |
---|---|
0 | Normal Operation |
1 | Powerdown |
The OSCout divider can be programmed from 2 to 8. Divide by 1 is achieved by bypassing the divider with OSCout0_MUX, Clock Output Mux.
NOTE
OSCout_DIV is in the PLL1 N feedback path if OSCout0_MUX selects divided as an output. When OSCout_DIV is in the PLL1 N feedback path, the OSCout_DIV divide value must be accounted for when programming PLL1 N.
See PLL Programming for more information on programming PLL1 to lock.
R10[18:16] | DIVIDE |
---|---|
0 (0x00) | 8 |
1 (0x01) | 2 |
2 (0x02) | 2 |
3 (0x03) | 3 |
4 (0x04) | 4 |
5 (0x05) | 5 |
6 (0x06) | 6 |
7 (0x07) | 7 |
When the internal VCO is used, the VCO divider can be selected to divide the VCO output frequency to reduce the frequency on the clock distribution path. TI recomments using the VCO directly unless:
A consequence of using the VCO divider is a small degradation in phase noise.
R10[12] | DIVIDE |
---|---|
0 | VCO selected |
1 | VCO divider selected |
When using 0-delay or dynamic digital delay (SYNC_QUAL = 1), EN_FEEDBACK_MUX must be set to 1 to power up the feedback mux.
R10[11] | DIVIDE |
---|---|
0 | Feedback mux powered down |
1 | Feedback mux enabled |
Divide value of the VCO Divider.
See PLL Programming for more information on programming PLL2 to lock.
R10[10:8] | DIVIDE |
---|---|
0 (0x00) | 8 |
1 (0x01) | 2 |
2 (0x02) | 2 |
3 (0x03) | 3 |
4 (0x04) | 4 |
5 (0x05) | 5 |
6 (0x06) | 6 |
7 (0x07) | 7 |
When in 0-delay mode, the feedback mux selects the clock output to be fed back into the PLL1 N Divider.
R10[7:5] | DIVIDE |
---|---|
0 (0x00) | CLKout0 |
1 (0x01) | CLKout2 |
2 (0x02) | CLKout4 |
3 (0x03) | CLKout6 |
4 (0x04) | CLKout8 |
5 (0x05) | CLKout10 |
6 (0x06) | FBCLKin/FBCLKin* |
MODE determines how the LMK04816 operates from a high level. Different blocks of the device can be powered up and down for specific application requirements from a dual loop architecture to clock distribution.
The LMK04816 can operate in:
For the PLL modes, 0-delay can be used have deterministic phase with the input clock.
For the PLL modes it is also possible to use an external VCO.
R11[31:27] | VALUE |
---|---|
0 (0x00) | Dual PLL, Internal VCO |
1 (0x01) | Reserved |
2 (0x02) | Dual PLL, Internal VCO, 0-Delay |
3 (0x03) | Dual PLL, External VCO (Fin) |
4 (0x04) | Reserved |
5 (0x05) | Dual PLL, External VCO (Fin), 0-Delay |
6 (0x06) | PLL2, Internal VCO |
7 (0x07) | Reserved |
8 (0x08) | PLL2, Internal VCO, 0–Delay |
9 (0x09) | Reserved |
10 (0x0A) | Reserved |
11 (0x0B) | PLL2, External VCO (Fin) |
12 (0x0C) | Reserved |
13 (0x0D) | Reserved |
14 (0x0E) | Reserved |
15 (0x0F) | Reserved |
16 (0x10) | Clock Distribution |
The EN_SYNC bit (default on) must be enabled for synchronization to work. Synchronization is required for dynamic digital delay.
The synchronization enable may be turned off once the clocks are operating to save current. If EN_SYNC is set after it has been cleared (a transition from 0 to 1), a SYNC is generated that can disrupt the active clock outputs. Setting the NO_SYNC_CLKoutX_Y bits prevents this SYNC pulse from affecting the output clocks. Setting the EN_SYNC bit is not a valid method for synchronizing the clock outputs. See the Clock Output Synchronization (SYNC) section for more information on synchronization.
R11[26] | DEFINITION |
---|---|
0 | Synchronization disabled |
1 | Synchronization enabled |
The NO_SYNC_CLKoutX_Y bits prevent individual clock groups from becoming synchronized during a SYNC event. A reason to prevent individual clock groups from becoming synchronized is that during synchronization, the clock output is in a fixed low state or can have a glitch pulse.
By disabling SYNC on a clock group, it continues to operate normally during a SYNC event.
Digital delay requires a SYNC operation to take effect. If NO_SYNC_CLKoutX_Y is set before a SYNC event, the digital delay value is unused.
Setting the NO_SYNC_CLKoutX_Y bit has no effect on clocks already synchronized together.
NO_SYNC_CLKoutX_Y | PROGRAMMING ADDRESS |
---|---|
CLKout0 and 1 | R11:20 |
CLKout2 and 3 | R11:21 |
CLKout4 and 5 | R11:22 |
CLKout6 and 7 | R11:23 |
CLKout8 and 9 | R11:24 |
CLKout10 and 11 | R11:25 |
R11[25, 24, 23, 22, 21, 20] | DEFINITION |
---|---|
0 | CLKoutX_Y will synchronize |
1 | CLKoutX_Y will not synchronize |
Mux controlling SYNC/Status_CLKin2 pin.
All the outputs logic is active high when SYNC_TYPE = 3 (Output). All the outputs logic is active low when SYNC_TYPE = 4 (output inverted). For example, when SYNC_MUX = 0 (logic low) and SYNC_TYPE = 3 (Output) then SYNC outputs a logic low. When SYNC_MUX = 0 (logic low) and SYNC_TYPE = 4 (output inverted) then SYNC outputs a logic high.
R11[19:18] | SYNC PIN OUTPUT |
---|---|
0 (0x00) | Logic Low |
1 (0x01) | CLKin2 LOS |
2 (0x02) | CLKin2 Selected |
3 (0x03) | uWire Readback |
When SYNC_QUAL is set, clock outputs are synchronized to an existing clock output selected by FEEDBACK_MUX. By using the NO_SYNC_CLKoutX_Y bits, selected clock outputs are not interrupted during the SYNC event.
Qualifying the SYNC by an output clock means that the pulse which turns the clock outputs off and on have a fixed time relationship to the qualifying output clock.
SYNC_QUAL = 1 requires CLKout4_5_PD = 0 for proper operation. CLKout4_TYPE and CLKout5_TYPE may be set to power-down mode.
See Clock Output Synchronization (SYNC) for more information.
R11[17] | MODE |
---|---|
0 | No qualification |
1 | Qualification by clock output from feedback mux (Must set CLKout4_5_PD = 0) |
Sets the polarity of the SYNC pin when input. When SYNC is asserted the clock outputs transition to a low state.
See Clock Output Synchronization (SYNC) for more information on SYNC. A SYNC event can be generated by toggling this bit through the MICROWIRE interface.
R11[16] | POLARITY |
---|---|
0 | SYNC is active high |
1 | SYNC is active low |
When set, causes a SYNC event to occur when programming register R0 to R5 to adjust digital delay values.
The SYNC event coincides with the LEuWire pin falling edge.
Refer to Special Programming Case for R0 to R5 for CLKoutX_Y_DIV and CLKoutX_Y_DDLY for more information on possible special programming considerations when SYNC_EN_AUTO = 1.
R11[15] | MODE |
---|---|
0 | Manual SYNC |
1 | SYNC Internally Generated |
Sets the IO type of the SYNC pin.
R11[14:12] | POLARITY |
---|---|
0 (0x00) | Input |
1 (0x01) | Input with pullup resistor |
2 (0x02) | Input with pulldown resistor |
3 (0x03) | Output (push-pull) |
4 (0x04) | Output inverted (push-pull) |
5 (0x05) | Output (open-source) |
6 (0x06) | Output (open-drain) |
When in output mode the SYNC input is forced to 0 regardless of the SYNC_MUX setting. A synchronization can then be activated by uWire by programming the SYNC_POL_INV register to active low to assert SYNC. SYNC can then be released by programming SYNC_POL_INV to active high. Using this uWire programming method to create a SYNC event saves the need for an IO pin from another device.
If an external crystal is being used to implement a discrete VCXO, the internal feedback amplifier must be enabled with this bit in order to complete the oscillator circuit.
R11[5] | OSCILLATOR AMPLIFIER STATE |
---|---|
0 | Disabled |
1 | Enabled |
LD_MUX sets the output value of the LD pin.
All the outputs logic is active high when LD_TYPE = 3 (output). All the outputs logic is active low when LD_TYPE = 4 (output inverted). For example, when LD_MUX = 0 (logic low) and LD_TYPE = 3 (output) then Status_LD outputs a logic low. When LD_MUX = 0 (logic low) and LD_TYPE = 4 (output inverted) then Status_LD outputs a logic high.
R12[31:27] | DIVIDE |
---|---|
0 (0x00) | Logic Low |
1 (0x01) | PLL1 DLD |
2 (0x02) | PLL2 DLD |
3 (0x03) | PLL1 & PLL2 DLD |
4 (0x04) | Holdover Status |
5 (0x05) | DAC Locked |
6 (0x06) | Reserved |
7 (0x07) | uWire Readback |
8 (0x08) | DAC Rail |
9 (0x09) | DAC Low |
10 (0x0A) | DAC High |
11 (0x0B) | PLL1_N |
12 (0x0C) | PLL1_N/2 |
13 (0x0D) | PLL2 N |
14 (0x0E) | PLL2 N/2 |
15 (0x0F) | PLL1_R |
16 (0x10) | PLL1_R/2 |
17 (0x11) | PLL2 R (1) |
18 (0x12) | PLL2 R/2 (1) |
Sets the IO type of the LD pin.
R12[26:24] | POLARITY |
---|---|
0 (0x00) | Reserved |
1 (0x01) | Reserved |
2 (0x02) | Reserved |
3 (0x03) | Output (push-pull) |
4 (0x04) | Output inverted (push-pull) |
5 (0x05) | Output (open-source) |
6 (0x06) | Output (open-drain) |
By setting SYNC_PLLX_DLD a SYNC mode is engaged (asserted SYNC) until PLL1 and/or PLL2 locks.
SYNC_QUAL must be 0 to use this functionality.
R12[23] | SYNC MODE FORCED |
---|---|
0 | No |
1 | Yes |
R12[22] | SYNC MODE FORCED |
---|---|
0 | No |
1 | Yes |
Enable the DAC to track the PLL1 tuning voltage. For optional use in in holdover mode.
Tracking can be used to monitor PLL1 voltage by readback of DAC_CNT register in any mode.
R12[8] | DAC TRACKING |
---|---|
0 | Disabled |
1 | Enabled |
Enable the holdover mode.
R12[7:6] | HOLDOVER MODE |
---|---|
0 | Reserved |
1 | Disabled |
2 | Enabled |
3 | Reserved |
HOLDOVER_MUX sets the output value of the Status_Holdover pin.
The outputs are active high when HOLDOVER_TYPE = 3 (output). The outputs are active low when HOLDOVER_TYPE = 4 (output inverted).
R13[31:27] | DIVIDE |
---|---|
0 (0x00) | Logic Low |
1 (0x01) | PLL1 DLD |
2 (0x02) | PLL2 DLD |
3 (0x03) | PLL1 & PLL2 DLD |
4 (0x04) | Holdover Status |
5 (0x05) | DAC Locked |
6 (0x06) | Reserved |
7 (0x07) | uWire Readback |
8 (0x08) | DAC Rail |
9 (0x09) | DAC Low |
10 (0x0A) | DAC High |
11 (0x0B) | PLL1 N |
12 (0x0C) | PLL1 N/2 |
13 (0x0D) | PLL2 N |
14 (0x0E) | PLL2 N/2 |
15 (0x0F) | PLL1 R |
16 (0x10) | PLL1 R/2 |
17 (0x11) | PLL2 R (1) |
18 (0x12) | PLL2 R/2 (1) |
Sets the IO mode of the Status_Holdover pin.
R13[26:24] | POLARITY |
---|---|
0 (0x00) | Reserved |
1 (0x01) | Reserved |
2 (0x02) | Reserved |
3 (0x03) | Output (push-pull) |
4 (0x04) | Output inverted (push-pull) |
5 (0x05) | Output (open-source) |
6 (0x06) | Output (open-drain) |
Status_CLKin1_MUX sets the output value of the Status_CLKin1 pin. If Status_CLKin1_TYPE is set to an input type, this register has no effect. This MUX register only sets the output signal.
The outputs are active high when Status_CLKin1_TYPE = 3 (output). The outputs are active low when Status_CLKin1_TYPE = 4 (output inverted).
R13[22:20] | DIVIDE |
---|---|
0 (0x00) | Logic Low |
1 (0x01) | CLKin1 LOS |
2 (0x02) | CLKin1 Selected |
3 (0x03) | DAC Locked |
4 (0x04) | DAC Low |
5 (0x05) | DAC High |
6 (0x06) | uWire Readback |
Status_CLKin0_TYPE sets the IO type of the Status_CLKin0 pin.
R13[18:16] | POLARITY |
---|---|
0 (0x00) | Input |
1 (0x01) | Input with pullup resistor |
2 (0x02) | Input with pulldown resistor |
3 (0x03) | Output (push-pull) |
4 (0x04) | Output inverted (push-pull) |
5 (0x05) | Output (open-source) |
6 (0x06) | Output (open-drain) |
DISABLE_DLD1_DET disables the HOLDOVER mode from being activated when PLL1 lock detect signal transitions from high to low.
When using pin select mode as the input clock switch mode, this bit must normally be set.
R13[15] | HOLDOVER DLD1 DETECT |
---|---|
0 | PLL1 DLD causes clock switch event |
1 | PLL1 DLD does not cause clock switch event |
CLKin0_MUX sets the output value of the Status_CLKin0 pin. If Status_CLKin0_TYPE is set to an input type, this register has no effect. This MUX register only sets the output signal.
The outputs logic is active high when Status_CLKin0_TYPE = 3 (output). The outputs logic is active low when Status_CLKin0_TYPE = 4 (output inverted).
R13[14:12] | DIVIDE |
---|---|
0 (0x00) | Logic Low |
1 (0x01) | CLKin0 LOS |
2 (0x02) | CLKin0 Selected |
3 (0x03) | DAC Locked |
4 (0x04) | DAC Low |
5 (0x05) | DAC High |
6 (0x06) | uWire Readback |
CLKin_SELECT_MODE sets the mode used in determining reference CLKin for PLL1.
R13[11:9] | MODE |
---|---|
0 (0x00) | CLKin0 Manual |
1 (0x01) | CLKin1 Manual |
2 (0x02) | CLKin2 Manual |
3 (0x03) | Pin Select Mode |
4 (0x04) | Auto Mode |
5 (0x05) | Reserved |
6 (0x06) | Auto mode and next clock pin select |
7 (0x07) | Reserved |
CLKin_Sel_INV sets the input polarity of Status_CLKin0 and Status_CLKin1 pins.
R13[8] | INPUT |
---|---|
0 | Active High |
1 | Active Low |
Each clock input can individually be enabled to be used during auto-switching CLKin_SELECT_MODE. Clock input switching priority is always CLKin0 → CLKin1 → CLKin2 → CLKin0.
R13[7] | VALID |
---|---|
0 | No |
1 | Yes |
R13[6] | VALID |
---|---|
0 | No |
1 | Yes |
R13[5] | Valid |
---|---|
0 | No |
1 | Yes |
This bit controls the amount of time in which no activity on a CLKin causes loss-of-signal (LOS) to be asserted.
R14[31:30] | TIMEOUT |
---|---|
0 (0x00) | 1200 ns, 420 kHz |
1 (0x01) | 206 ns, 2.5 MHz |
2 (0x02) | 52.9 ns, 10 MHz |
3 (0x03) | 23.7 ns, 22 MHz |
Enables the loss-of-signal (LOS) timeout control.
R14[28] | LOS |
---|---|
0 | Disabled |
1 | Enabled |
Sets the IO type of the Status_CLKin1 pin.
R14[26:24] | POLARITY |
---|---|
0 (0x00) | Input |
1 (0x01) | Input with pullup resistor |
2 (0x02) | Input with pulldown resistor |
3 (0x03) | Output (push-pull) |
4 (0x04) | Output inverted (push-pull) |
5 (0x05) | Output (open-source) |
6 (0x06) | Output (open-drain) |
There are two input buffer types for the PLL1 reference clock inputs: either bipolar or CMOS. Bipolar is recommended for differential inputs such as LVDS and LVPECL. CMOS is recommended for DC-coupled single-ended inputs.
When using bipolar, CLKinX and CLKinX* input pins must be AC-coupled when using a differential or single-ended input.
When using CMOS, CLKinX and CLKinX* input pins may be AC or DC-coupled with a differential input.
When using CMOS in single-ended mode, the unused clock input pin (CLKinX or CLKinX*) must be AC-grounded. The used clock input pin (CLKinX* or CLKinX) may be AC or DC-coupled to the signal source.
The programming addresses table shows at what register and address the specified CLKinX_BUF_TYPE bit is located.
The CLKinX_BUF_TYPE table shows the programming definition for these registers.
CLKinX_BUF_TYPE | PROGRAMMING ADDRESS |
---|---|
CLKin2_BUF_TYPE | R14[22] |
CLKin1_BUF_TYPE | R14[21] |
CLKin0_BUF_TYPE | R14[20] |
R14[22, 21, 20] | CLKinX BUFFER TYPE |
---|---|
0 | Bipolar |
1 | CMOS |
Voltage from Vcc at which holdover mode is entered if EN_VTUNE_RAIL_DAC is enabled. DAC_HIGH_TRIP also sets flags that can be monitored by the Status_LD or the Status_Holdover pins.
Step size is approximately 51 mV.
R14[19:14] | TRIP VOLTAGE FROM Vcc (V) |
---|---|
0 (0x00) | 1 × Vcc / 64 |
1 (0x01) | 2 × Vcc / 64 |
2 (0x02) | 3 × Vcc / 64 |
3 (0x03) | 4 × Vcc / 64 |
4 (0x04) | 5 × Vcc / 64 |
... | ... |
61 (0x3D) | 62 × Vcc / 64 |
62 (0x3E) | 63 × Vcc / 64 |
63 (0x3F) | 64 × Vcc / 64 |
Voltage from GND at which holdover mode is entered if EN_VTUNE_RAIL_DAC is enabled. DAC_LOW_TRIP also sets flags that can be monitored by the Status_LD or the Status_Holdover pins.
Step size is approximately 51 mV.
R14[11:6] | TRIP VOLTAGE FROM GND (V) |
---|---|
0 (0x00) | 1 × Vcc / 64 |
1 (0x01) | 2 × Vcc / 64 |
2 (0x02) | 3 × Vcc / 64 |
3 (0x03) | 4 × Vcc / 64 |
4 (0x04) | 5 × Vcc / 64 |
... | ... |
61 (0x3D) | 62 × Vcc / 64 |
62 (0x3E) | 63 × Vcc / 64 |
63 (0x3F) | 64 × Vcc / 64 |
Enables the DAC Vtune rail detection. When the DAC achieves a specified Vtune, if this bit is enabled, the current clock input is considered invalid and an input clock switch event is generated.
R14[5] | STATE |
---|---|
0 | Disabled |
1 | Enabled |
Sets the DAC value when in manual DAC mode in approximately 3.2-mV steps.
R15[31:22] | DAC VOLTAGE |
---|---|
0 (0x00) | 0 × Vcc / 1023 |
1 (0x01) | 1 × Vcc / 1023 |
2 (0x02) | 2 × Vcc / 1023 |
... | ... |
1023 (0x3FF) | 1023 × Vcc / 1023 |
This bit enables the manual DAC mode.
R15[20] | DAC MODE |
---|---|
0 | Automatic |
1 | Manual |
Lock must be valid for this many clocks of PLL1 PDF before holdover mode is exited.
R15[19:6] | EXIT COUNTS |
---|---|
0 (0x00) | Reserved |
1 (0x01) | 1 |
2 (0x02) | 2 |
... | ... |
16,383 (0x3FFF) | 16,383 |
This bit forces the holdover mode.
When holdover is forced, if in fixed CPout1 mode, then the DAC sets the programmed MAN_DAC value. If in tracked CPout1 mode, then the DAC sets the current tracked DAC value.
Setting FORCE_HOLDOVER does not constitute a clock input switch event unless DISABLE_DLD1_DET = 0, because in holdover mode, PLL1_DLD = 0 triggers the clock input switch event.
R15[5] | HOLDOVER |
---|---|
0 | Disabled |
1 | Enabled |
Sets the peak amplitude on the tunable crystal.
Increasing this value can improve the crystal oscillator phase noise performance at the cost of increased current and higher crystal power dissipation levels.
R15[31:22] | PEAK AMPLITUDE(1) |
---|---|
0 (0x00) | 1.65 Vpp |
1 (0x01) | 1.75 Vpp |
2 (0x02) | 1.90 Vpp |
3 (0x03) | 2.05 Vpp |
This register must not be programmed, it is a readback only register.
The DAC_CNT register is 10 bits in size and located at readback bit position [23:14]. When using tracking mode for holdover, the DAC value can be readback at this address.
Internal loop filter components are available for PLL2, enabling either 3rd or 4th order loop filters without requiring external components.
Internal loop filter capacitor C4 can be set according to Table 79.
R24[31:28] | LOOP FILTER CAPACITANCE (pF) |
---|---|
0 (0x00) | 10 pF |
1 (0x01) | 15 pF |
2 (0x02) | 29 pF |
3 (0x03) | 34 pF |
4 (0x04) | 47 pF |
5 (0x05) | 52 pF |
6 (0x06) | 66 pF |
7 (0x07) | 71 pF |
8 (0x08) | 103 pF |
9 (0x09) | 108 pF |
10 (0x0A) | 122 pF |
11 (0x0B) | 126 pF |
12 (0x0C) | 141 pF |
13 (0x0D) | 146 pF |
14 (0x0E) | Reserved |
15 (0x0F) | Reserved |
Internal loop filter components are available for PLL2, enabling either 3rd or 4th order loop filters without requiring external components.
Internal loop filter capacitor C3 can be set according to Table 80.
R24[27:24] | LOOP FILTER CAPACITANCE (pF) |
---|---|
0 (0x00) | 10 pF |
1 (0x01) | 11 pF |
2 (0x02) | 15 pF |
3 (0x03) | 16 pF |
4 (0x04) | 19 pF |
5 (0x05) | 20 pF |
6 (0x06) | 24 pF |
7 (0x07) | 25 pF |
8 (0x08) | 29 pF |
9 (0x09) | 30 pF |
10 (0x0A) | 33 pF |
11 (0x0B) | 34 pF |
12 (0x0C) | 38 pF |
13 (0x0D) | 39 pF |
14 (0x0E) | Reserved |
15 (0x0F) | Reserved |
Internal loop filter components are available for PLL2, enabling either 3rd or 4th order loop filters without requiring external components.
Internal loop filter resistor R4 can be set according to Table 81.
R24[22:20] | RESISTANCE |
---|---|
0 (0x00) | 200 Ω |
1 (0x01) | 1 kΩ |
2 (0x02) | 2 kΩ |
3 (0x03) | 4 kΩ |
4 (0x04) | 16 kΩ |
5 (0x05) | Reserved |
6 (0x06) | Reserved |
7 (0x07) | Reserved |
Internal loop filter components are available for PLL2, enabling either 3rd or 4th order loop filters without requiring external components.
Internal loop filter resistor R3 can be set according to Table 82.
R24[18:16] | RESISTANCE |
---|---|
0 (0x00) | 200 Ω |
1 (0x01) | 1 kΩ |
2 (0x02) | 2 kΩ |
3 (0x03) | 4 kΩ |
4 (0x04) | 16 kΩ |
5 (0x05) | Reserved |
6 (0x06) | Reserved |
7 (0x07) | Reserved |
Increasing delay of PLL1_N_DLY causes the outputs to lead from CLKinX. For use in 0-delay mode.
R24[14:12] | DEFINITION |
---|---|
0 (0x00) | 0 ps |
1 (0x01) | 205 ps |
2 (0x02) | 410 ps |
3 (0x03) | 615 ps |
4 (0x04) | 820 ps |
5 (0x05) | 1025 ps |
6 (0x06) | 1230 ps |
7 (0x07) | 1435 ps |
Increasing delay of PLL1_R_DLY causes the outputs to lag from CLKinX. For use in 0-delay mode.
R24[10:8] | DEFINITION |
---|---|
0 (0x00) | 0 ps |
1 (0x01) | 205 ps |
2 (0x02) | 410 ps |
3 (0x03) | 615 ps |
4 (0x04) | 820 ps |
5 (0x05) | 1025 ps |
6 (0x06) | 1230 ps |
7 (0x07) | 1435 ps |
PLL1_WND_SIZE sets the window size used for digital lock detect for PLL1. If the phase error between the reference and feedback of PLL1 is less than specified time, then the PLL1 lock counter increments.
Refer to Digital Lock Detect Frequency Accuracy for more information.
R24[7:6] | DEFINITION |
---|---|
0 | 5.5 ns |
1 | 10 ns |
2 | 18.6 ns |
3 | 40 ns |
The DAC update clock frequency is the PLL1 phase detector frequency divided by this divisor.
R25[31:22] | DIVIDE |
---|---|
0 (0x00) | Reserved |
1 (0x01) | 1 |
2 (0x02) | 2 |
3 (0x03) | 3 |
... | ... |
1,022 (0x3FE) | 1022 |
1,023 (0x3FF) | 1023 |
The reference and feedback of PLL1 must be within the window of phase error as specified by PLL1_WND_SIZE for this many phase detector cycles before PLL1 digital lock detect is asserted.
Refer to Digital Lock Detect Frequency Accuracy for more information.
R25[19:6] | DIVIDE |
---|---|
0 | Reserved |
1 | 1 |
2 | 2 |
3 | 3 |
... | ... |
16,382 (0x3FFE) | 16,382 |
16,383 (0x3FFF) | 16,383 |
PLL2_WND_SIZE sets the window size used for digital lock detect for PLL2. If the phase error between the reference and feedback of PLL2 is less than specified time, then the PLL2 lock counter increments. This value must be programmed to 2 (3.7 ns).
Refer to Digital Lock Detect Frequency Accuracy for more information.
R26[31:30] | DEFINITION |
---|---|
0 | Reserved |
1 | Reserved |
2 | 3.7 ns |
3 | Reserved |
Enabling the PLL2 reference frequency doubler allows for higher phase detector frequencies on PLL2 than would normally be allowed with the given VCXO or Crystal frequency.
Higher phase detector frequencies reduces the PLL N values which makes the design of wider loop bandwidth filters possible.
Refer to PLL Programming for more information on how to program the PLL dividers to lock the PLL.
R26[29] | DESCRIPTION |
---|---|
0 | Reference frequency normal (1) |
1 | Reference frequency doubled (2x) |
PLL2_CP_POL sets the charge pump polarity for PLL2. The internal VCO requires the negative charge pump polarity to be selected. Many VCOs use positive slope.
A positive slope VCO increases output frequency with increasing voltage. A negative slope VCO decreases output frequency with increasing voltage.
R26[28] | DESCRIPTION |
---|---|
0 | Negative Slope VCO/VCXO |
1 | Positive Slope VCO/VCXO |
This bit programs the PLL2 charge pump output current level. The table below also shows the impact of the PLL2 tri-state bit in conjunction with PLL2_CP_GAIN.
R26[27:26] | PLL2_CP_TRI R27[5] |
CHARGE-PUMP CURRENT (µA) |
---|---|---|
X | 1 | Hi-Z |
0 (0x00) | 0 | 100 |
1 (0x01) | 0 | 400 |
2 (0x02) | 0 | 1600 |
3 (0x03) | 0 | 3200 |
The reference and feedback of PLL2 must be within the window of phase error as specified by PLL2_WND_SIZE for PLL2_DLD_CNT cycles before PLL2 digital lock detect is asserted.
Refer to Digital Lock Detect Frequency Accuracy for more information
R26[19:6] | DIVIDE |
---|---|
0 (0x00) | Reserved |
1 (0x01) | 1 |
2 (0x02) | 2 |
3 (0x03) | 3 |
... | ... |
16,382 (0x3FFE) | 16,382 |
16,383 (0x3FFF) | 16,383 |
This bit allows for the PLL2 charge-pump output pin, CPout2, to be placed into tri-state.
R26[5] | DESCRIPTION |
---|---|
0 | PLL2 CPout2 is active |
1 | PLL2 CPout2 is at tri-state |
PLL1_CP_POL sets the charge-pump polarity for PLL1. Many VCXOs use positive slope.
A positive slope VCXO increases output frequency with increasing voltage. A negative slope VCXO decreases output frequency with increasing voltage.
R27[28] | DESCRIPTION |
---|---|
0 | Negative Slope VCO/VCXO |
1 | Positive Slope VCO/VCXO |
This bit programs the PLL1 charge-pump output current level. The table below also shows the impact of the PLL1 tri-state bit in conjunction with PLL1_CP_GAIN.
R26[27:26] | PLL1_CP_TRI R27[5] |
CHARGE-PUMP CURRENT (µA) |
---|---|---|
X | 1 | Hi-Z |
0 (0x00) | 0 | 100 |
1 (0x01) | 0 | 200 |
2 (0x02) | 0 | 400 |
3 (0x03) | 0 | 1600 |
The pre-R dividers before the PLL1 R divider can be programmed such that when the active clock input is switched, the frequency at the input of the PLL1 R divider is the same. This allows PLL1 to stay in lock without needing to re-program the PLL1 R register when different clock input frequencies are used. This is especially useful in the auto CLKin switching modes.
CLKinX_PreR_DIV | PROGRAMMING ADDRESS |
---|---|
CLKin2_PreR_DIV | R27[25:24] |
CLKin1_PreR_DIV | R27[23:22] |
CLKin0_PreR_DIV | R27[21:20] |
R27[25:24, 23:22, 21:20] | DIVIDE |
---|---|
0 (0x00) | 1 |
1 (0x01) | 2 |
2 (0x02) | 4 |
3 (0x03) | 8 |
The reference path into the PLL1 phase detector includes the PLL1 R divider. Refer to PLL Programming for more information on how to program the PLL dividers to lock the PLL.
The valid values for PLL1_R are shown in Table 98.
R27[19:6] | DIVIDE |
---|---|
0 (0x00) | Reserved |
1 (0x01) | 1 |
2 (0x02) | 2 |
3 (0x03) | 3 |
... | ... |
16,382 (0x3FFE) | 16,382 |
16,383 (0x3FFF) | 16,383 |
This bit allows for the PLL1 charge pump output pin, CPout1, to be placed into tri-state.
R27[5] | DESCRIPTION |
---|---|
0 | PLL1 CPout1 is active |
1 | PLL1 CPout1 is at tri-state |
The reference path into the PLL2 phase detector includes the PLL2 R divider.
Refer to PLL Programming for more information on how to program the PLL dividers to lock the PLL.
The valid values for PLL2_R are shown in Table 100.
R28[31:20] | DIVIDE |
---|---|
0 (0x00) | Not Valid |
1 (0x01) | 1 (1) |
2 (0x02) | 2 |
3 (0x03) | 3 |
... | ... |
4,094 (0xFFE) | 4,094 |
4,095 (0xFFF) | 4,095 |
The feedback path into the PLL1 phase detector includes the PLL1 N divider.
Refer to PLL Programming for more information on how to program the PLL dividers to lock the PLL.
The valid values for PLL1_N are shown in Table 101.
R28[19:6] | DIVIDE |
---|---|
0 (0x00) | Not Valid |
1 (0x01) | 1 |
2 (0x02) | 2 |
... | ... |
4,095 (0xFFF) | 4,095 |
The frequency of the PLL2 reference input to the PLL2 Phase Detector (OSCin/OSCin* port) must be programmed in order to support proper operation of the frequency calibration routine which locks the internal VCO to the target frequency.
R29[26:24] | OSCin FREQUENCY |
---|---|
0 (0x00) | 0 to 63 MHz |
1 (0x01) | >63 MHz to 127 MHz |
2 (0x02) | >127 MHz to 255 MHz |
3 (0x03) | Reserved |
4 (0x04) | >255 MHz to 400 MHz |
When PLL2 phase detector frequency is greater than 100 MHz, set the PLL2_FAST_PDF to ensure proper operation of device.
R29[23] | PLL2 PDF |
---|---|
0 | Less than or equal to 100 MHz |
1 | Greater than 100 MHz |
During the frequency calibration routine, the PLL uses the divide value of the PLL2_N_CAL register instead of the divide value of the PLL2_N register to lock the VCO to the target frequency.
Refer to PLL Programming for more information on how to program the PLL dividers to lock the PLL.
R30[22:5] | DIVIDE |
---|---|
0 (0x00) | Not Valid |
1 (0x01) | 1 |
2 (0x02) | 2 |
... | ... |
262,143 (0x3FFFF) | 262,143 |
If an internal VCO mode is used, programming Register 30 triggers the frequency calibration routine. This calibration routine also generates a SYNC event. See Clock Output Synchronization (SYNC) for more details on a SYNC.
The PLL2 N Prescaler divides the output of the VCO as selected by Mode_MUX1 and is connected to the PLL2 N divider.
Refer to PLL Programming for more information on how to program the PLL dividers to lock the PLL.
R30[26:24] | DIVIDE VALUE |
0 (0x00) | 8 |
1 (0x01) | 2 |
2 (0x02) | 2 |
3 (0x03) | 3 |
4 (0x04) | 4 |
5 (0x05) | 5 |
6 (0x06) | 6 |
7 (0x07) | 7 |
The feeback path into the PLL2 phase detector includes the PLL2 N divider.
Each time register 30 is updated via the MICROWIRE interface, a frequency calibration routine runs to lock the VCO to the target frequency. During this calibration PLL2_N is substituted with PLL2_N_CAL.
Refer to PLL Programming for more information on how to program the PLL dividers to lock the PLL.
The valid values for PLL2_N are shown in Table 106.
R30[22:5] | DIVIDE |
---|---|
0 (0x00) | Not Valid |
1 (0x01) | 1 |
2 (0x02) | 2 |
... | |
262,143 (0x3FFFF) | 262,143 |
Sets the required state of the LEuWire pin when performing register readback.
Refer to Readback
R31[21] | REGISTER |
---|---|
0 (0x00) | LE must be low for readback |
1 (0x01) | LE must be high for readback |
Sets the address of the register to read back when performing readback.
When reading register 12, the READBACK_ADDR is read back at R12[20:16].
When reading back from R31 bits 6 to 31 must be ignored. Only uWire_LOCK is valid.
Refer to Register Readback for more information on readback.
R31[20:16] | REGISTER |
---|---|
0 (0x00) | R0 |
1 (0x01) | R1 |
2 (0x02) | R2 |
3 (0x03) | R3 |
4 (0x04) | R4 |
5 (0x05) | R5 |
6 (0x06) | R6 |
7 (0x07) | R7 |
8 (0x08) | R8 |
9 (0x09) | Reserved |
10 (0x0A) | R10 |
11 (0x0B) | R11 |
12 (0x0C) | R12 |
13 (0x0D) | R13 |
14 (0x0E) | R14 |
15 (0x0F) | R15 |
16 (0x10) | Reserved |
17 (0x11) | Reserved |
... | ... |
22 (0x16) | Reserved |
23 (0x17) | Reserved |
24 (0x18) | R24 |
25 (0x19) | R25 |
26 (0x1A) | R26 |
27 (0x1B) | R27 |
28 (0x1C) | R28 |
29 (0x1D) | R29 |
30 (0x1E) | R30 |
31 (0x1F) | R31 |
Setting uWire_LOCK prevents any changes to uWire registers R0 to R30. Only by clearing the uWire_LOCK bit in R31 can the uWire registers be unlocked and written to once more.
It is not necessary to lock the registers to perform a readback operation.
R31[5] | STATE |
---|---|
0 | Registers unlocked |
1 | Registers locked, Write-protect |