0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心
发布
  • 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
AD9558/PCBZ

AD9558/PCBZ

  • 厂商:

    AD(亚德诺)

  • 封装:

    -

  • 描述:

    BOARD EVAL FOR AD9558

  • 数据手册
  • 价格&库存
AD9558/PCBZ 数据手册
Quad Input Multiservice Line Card Adaptive Clock Translator with Frame Sync AD9558 Data Sheet FEATURES Pin program function for easy frequency translation configuration Software controlled power-down 64-lead, 9 mm × 9 mm, LFCSP package Supports GR-1244 Stratum 3 stability in holdover mode Supports smooth reference switchover with virtually no disturbance on output phase Supports Telcordia GR-253 jitter generation, transfer, and tolerance for SONET/SDH up to OC-192 systems Supports ITU-T G.8262 synchronous Ethernet slave clocks Supports ITU-T G.823, G.824, G.825, and G.8261 Auto/manual holdover and reference switchover 4 reference inputs (single-ended or differential) Input reference frequencies: 2 kHz to 1250 MHz Reference validation and frequency monitoring (1 ppm) Programmable input reference switchover priority 20-bit programmable input reference divider 6 pairs of clock output pins with each pair configurable as a single differential LVDS/HSTL output or as 2 single-ended CMOS outputs Output frequencies: 352 Hz to 1250 MHz Programmable 17-bit integer and 23-bit fractional feedback divider in digital PLL Programmable digital loop filter covering loop bandwidths from 0.1 Hz to 5 kHz (2 kHz maximum for 705 MHz The reference input divide-by-2 block must be engaged for fIN > 705 MHz Minimum limit imposed for jitter performance Internally generated Minimum differential voltage across pins is required to ensure switching between logic levels; instantaneous voltage on either pin must not exceed the supply rails mV mV mV mV kΩ pF 390 640 0.002 40 Test Conditions/Comments V V V kΩ pF ns ns Rev. C | Page 8 of 105 Minimum limit imposed for jitter performance Data Sheet AD9558 REFERENCE MONITORS Table 8. Parameter REFERENCE MONITORS Reference Monitor Loss of Reference Detection Time Min Frequency Out-of-Range Limits 1 WRITE: REGISTER 0x0005 = 0x01 START TIMEOUT CLOCK: TIME = 0 REGISTER PROGRAMMING OVERVIEW NO DISTRIBUTION SYNCHRONIZATION OPERATION YES WRITE REGISTER 0x0A02 = 0x02 4. WRITE REGISTER 0x0005 = 0x01 WRITE REGISTER 0x0A02 = 0x00 END 09758-233 WRITE REGISTER 0x0005 = 0x01 5. Figure 37. AD9558 APLL Initialization Subprocess Flowchart Rev. C | Page 28 of 105 Set the system clock PLL input type and divider values. Set the system clock period. It is essential to program the system clock period because many of the AD9558 subsystems rely on this value. Set the system clock stability timer. It is highly recommended that the system clock stability timer be programmed. This is especially important when using the system clock multiplier and also applies when using an external system clock source, especially if the external source is not expected to be completely stable when power is applied to the AD9558. The system clock stability timer specifies the amount of time that the system clock PLL must be locked before the device declares that the system clock is stable. The default value is 50 ms. Program the free run tuning word. The free run frequency of the digital PLL (DPLL) determines the frequency appearing at the APLL input when free run mode is selected. The free run tuning word is at Register 0x0300 to Register 0x0303. The correct free run frequency is required for the APLL to calibrate and lock correctly. Set user free run mode (Register 0x0A01, Bit 5 = 1b). Data Sheet AD9558 Initialize and Calibrate the Output PLL (APLL) Generate the Output Clock The registers controlling the APLL are at Register 0x0400 to Register 0x0408. This low noise, integer-N PLL multiplies the DPLL output (which is usually 175 MHz to 200 MHz) to a frequency in the 3.35 GHz to 4.05 GHz range. After the system clock is configured and the free run tuning word is set in Register 0x0300 to Register 0x0303, the user can set the manual APLL VCO calibration bit (Register 0x0405, Bit 0) and issue an I/O update (Register 0x0005, Bit 0). This process performs the APLL VCO calibration. VCO calibration ensures that, at the time of calibration, the dc control voltage of the APLL VCO is centered in the middle of its operating range. It is important to remember the following points when calibrating the APLL VCO: If Register 0x0500, Bits[1:0] is programmed for automatic clock distribution synchronization via the DPLL phase or frequency lock, the synthesized output signal appears at the clock distribution outputs. Otherwise, set and then clear the soft sync clock distribution bit (Register 0x0A02, Bit 1), or use a multifunction pin input (if programmed for use) to generate a clock distribution sync pulse, which causes the synthesized output signal to appear at the clock distribution outputs. • • • • • The system clock must be stable. The APLL VCO must have the correct frequency from the 30-bit digitally controlled oscillator (DCO) during calibration. The APLL VCO must be recalibrated any time the APLL frequency changes. APLL VCO calibration occurs on the low-to-high transition of the manual APLL VCO calibration bit, and this bit is not autoclearing. Therefore, this bit must be cleared (and an I/O update issued) before another APLL calibration is started. The best way to monitor successful APLL calibration is to monitor Bit 2 in Register 0x0D01 (APLL lock). Program the Clock Distribution Outputs The APLL output goes to the clock distribution block. The clock distribution parameters reside in Register 0x0500 to Register 0x0515. They include the following: • • • • • Output power-down control Output enable (disabled by default) Output synchronization Output mode control Output divider functionality Program the Multifunction Pins (Optional) This step is required only if the user intends to use any of the multifunction pins for status or control. The multifunction pin parameters are in Register 0x0200 to Register 0x0208. Program the IRQ Functionality (Optional) This step is required only if the user intends to use the IRQ feature. The IRQ monitor registers are in Register 0x0D02 to Register 0x0D09. If the desired bits in the IRQ mask registers at Register 0x020A to Register 0x020F are set high, the appropriate IRQ monitor bit at Register 0x0D02 to Register 0x0D07 is set high when the indicated event occurs. Individual IRQ events are cleared by using the IRQ clearing the registers at Register 0x0A04 to Register 0x0A09, or by setting the clear all IRQs bit (Register 0x0A03, Bit 1) to 1b. The default values of the IRQ mask registers are such that interrupts are not generated. The IRQ pin mode default is open-drain NMOS. Program the Watchdog Timer (Optional) This step is required only if the user intends to use the watchdog timer. The watchdog timer control is in Register 0x0210 and Register 0x0211 and is disabled by default. The watchdog timer is useful for generating an IRQ after a fixed amount of time. The timer is reset by setting the clear watchdog timer bit (Register 0x0A03, Bit 0) to 1b. See the Clock Distribution section for more information. Rev. C | Page 29 of 105 AD9558 Data Sheet Program the Digital Phase-Locked Loop (DPLL) Program the Reference Profiles The DPLL parameters reside in Register 0x0300 to Register 0x032E. They include the following: The reference profile parameters reside in Register 0x0700 to Register 0x07E6. The AD9558 evaluation software contains a wizard that calculates these values based on the user input frequency. See the Reference Profiles section for details on programming these functions. They include the following: • • • • • Free run frequency DPLL pull-in range limits DPLL closed-loop phase offset Phase slew control (for hitless reference switching) Tuning word history control (for holdover operation) Program the Reference Inputs The reference input parameters reside in Register 0x0600 to Register 0x0602. See the Reference Clock Input section for details on programming these functions. They include the following: • • • Reference power-down Reference logic family Reference priority • • • • • • • • Reference period Reference period tolerance Reference validation timer Selection of high phase margin loop filter coefficients DPLL loop bandwidth Reference prescaler (R divider) Feedback dividers (N1, N2, N3, FRAC1, and MOD1) Phase and frequency lock detector controls Generate the Reference Acquisition After the registers are programmed, the user can clear the user free run bit (Register 0x0A01, Bit 5) and issue an I/O update, using Register 0x0005, Bit 0, to invoke all of the register settings that are programmed up to this point. After the registers are programmed, the DPLL locks to the first available valid reference that has the highest priority. Rev. C | Page 30 of 105 Data Sheet AD9558 SPI/I2C SERIAL PORT EEPROM REFA REFA ÷2 REFB REFB ÷2 REFC REFC ÷2 REFD REFD ÷2 XO OR XTAL PINCONTROL REGISTER SPACE M0 M1 M2 M3 M4 M5 M6 M7 IRQ ROM AND FSM R DIVIDER (20-BIT) 17-BIT INTEGER FRAC1/ ÷N1 MOD1 ÷2 ×2 RF DIVIDER 1 ÷3 TO ÷11 DIGITAL LOOP FILTER FRAME SYNC MODE ONLY ÷M1 ×2 TUNING WORD CLAMP AND HISTORY ÷M2 ÷M3 FRAME SYNC PULSE OUT1 OUT1 OUT3 OUT3 OUT4 OUT4 ÷M3b ×2 OUT5 OUT5 ÷N2 OUTPUT PLL (APLL) REF MONITORING AUTOMATIC SWITCHING OUT0 OUT2 30-BIT NCO DIGITAL PLL (DPLL) OUT0 OUT2 MAX 1.25GHz RF DIVIDER 2 ÷3 TO ÷11 FREE RUN TW DPFD ÷M0 TO ÷M3b ARE 10-BIT INTEGER DIVIDERS ÷M0 MULTIFUNCTION I/O PINS (CONTROL AND STATUS READBACK) SYSTEM PFD/CP ÷N3 CLOCK MULTIPLIER LF 23-BIT/23-BIT RESOLUTION AD9558 XO OR REF FREQUENCIES 10MHz TO 600MHz XTAL: 10MHz TO 50MHz PFD/CP 2kHz TO 8kHz FRAME SYNC SIGNAL APLL STATUS LF 360kHz TO 1.25GHz 2kHz TO 1.25GHz SPI/I2C RESET 352Hz TO 1.25GHz SYNC 3.35GHz TO 4.05GHz LF_VCO2 09758-135 THEORY OF OPERATION Figure 38. Detailed Block Diagram OVERVIEW The AD9558 provides clocking outputs that are directly related in phase and frequency to the selected (active) reference, but with jitter characteristics that are governed by the system clock, the DCO, and the analog integer-N PLL (APLL). The AD9558 supports up to four reference inputs and input frequencies ranging from 2 kHz to 1250 MHz. The core of this product is a digital phase-locked loop (DPLL). The DPLL has a programmable digital loop filter that greatly reduces jitter that is transferred from the active reference to the output. The AD9558 supports both manual and automatic holdover. While in holdover, the AD9558 continues to provide an output as long as the system clock is present. The holdover output frequency is a time average of the output frequency history just prior to the transition to the holdover condition. The device offers manual and automatic reference switchover capability if the active reference is degraded or fails completely. The AD9558 also has adaptive clocking capability that allows the DPLL divider ratios to be changed while the DPLL is locked. The AD9558 has a system clock multiplier, a DPLL, and an APLL. The input signal goes first to the DPLL, which performs the jitter cleaning and most of the frequency translation. The DPLL features a 30-bit digitally controlled oscillator (DCO) output that generates a signal in the 175 MHz to 200 MHz range. The DPLL output goes to an APLL, which multiplies the signal up to the 3.35 GHz to 4.05 GHz range. That signal is then sent to the clock distribution section, which has two divide-by-3 to divideby-11 RF dividers that are cascaded with 10-bit integer (divideby-1 to divide-by-1024) channel dividers. The XOA and XOB pins provide the input for the system clock. These pins accept a reference clock in the 10 MHz to 600 MHz range, or a 10 MHz to 50 MHz crystal connected directly across the XOA and XOB pins. The system clock provides the clocks to the frequency monitors, the DPLL, and internal switching logic. The AD9558 has six output drivers, arranged into four channels. Each channel has a dedicated 10-bit programmable post divider. Channel 0 and Channel 3 have one driver each, and Channel 1 and Channel 2 have two drivers each. Each driver is programmable either as a single differential or dual single-ended CMOS output. The clock distribution section operates at up to 1250 MHz. In differential mode, the output drivers run on a 1.8 V power supply to offer very high performance with minimal power consumption. There are two differential modes: LVDS and 1.8 V HSTL. In 1.8 V HSTL mode, the voltage swing is compatible with LVPECL. If LVPECL signal levels are required, the designer can ac couple the AD9558 output and use Thevenin-equivalent termination at the destination to drive the LVPECL inputs. In single-ended mode, each differential output driver can operate as two single-ended CMOS outputs. OUT0 and OUT5 support either 1.8 V or 3.3 V CMOS operation. OUT1 through OUT4 support only 1.8 V operation. Note that the APLL is also referred to as the output PLL elsewhere in this data sheet. Rev. C | Page 31 of 105 AD9558 Data Sheet REFERENCE CLOCK INPUTS Reference Validation Timer Four pairs of pins provide access to the reference clock receivers. To accommodate input signals with slow rising and falling edges, both the differential and single-ended input receivers employ hysteresis. Hysteresis also ensures that a disconnected or floating input does not cause the receiver to oscillate. Each reference input has a dedicated validation timer. The validation timer establishes the amount of time that a previously faulted reference must remain unfaulted before the AD9558 declares it valid. The timeout period of the validation timer is programmable via a 16-bit register. The 16-bit number stored in the validation register represents units of milliseconds (ms), which yields a maximum timeout period of 65,535 ms. When configured for differential operation, the input receivers accommodate either ac- or dc-coupled input signals. The input receivers are capable of accepting dc-coupled LVDS and 2.5 V and 3.3 V LVPECL signals. The receiver is internally dc biased to handle ac-coupled operation, but there is no internal 50 Ω or 100 Ω termination. When configured for single-ended operation, the input receivers exhibit a pull-down load of 45 kΩ (typical). Three user-programmable threshold voltage ranges are available for each single-ended receiver. REFERENCE MONITORS The accuracy of the input reference monitors depends on a known and accurate system clock period. Therefore, the functioning of the reference monitors is not operable until the system clock is stable. Reference Period Monitor Each reference input has a dedicated monitor that repeatedly measures the reference period. The AD9558 uses the reference period measurements to determine the validity of the reference based on a set of user-provided parameters in the profile register area of the register map. The monitor works by comparing the measured period of a particular reference input with the parameters stored in the profile register assigned to that same reference input. The parameters include the reference period, an inner tolerance, and an outer tolerance. A 40-bit number defines the reference period in units of femtoseconds (fs). The 40-bit range allows a reference period entry of up to 1.1 ms. A 20-bit number defines the inner and outer tolerances. The value stored in the register is the reciprocal of the tolerance specification. For example, a tolerance specification of 50 ppm yields a register value of 1/(50 ppm) = 1/0.000050 = 20,000 (0x04E20). The use of two tolerance values provides hysteresis for the monitor decision logic. The inner tolerance applies to a previously faulted reference and specifies the largest period tolerance that a previously faulted reference can exhibit before it qualifies as nonfaulted. The outer tolerance applies to an already nonfaulted reference. It specifies the largest period tolerance that a nonfaulted reference can exhibit before being faulted. To produce decision hysteresis, the inner tolerance must be less than the outer tolerance. That is, a faulted reference must meet tighter requirements to become nonfaulted than a nonfaulted reference must meet to become faulted. It is possible to disable the validation timer by programming the validation timer to 0b. With the validation timer disabled, the user must validate a reference manually via the manual reference validation override controls register (Address 0x0A0B). Reference Validation Override Control The user also has the ability to override the reference validation logic and can either force an invalid reference to be treated as valid, or force a valid reference to be treated as an invalid reference. These controls are in Register 0x0A0B to Register 0x0A0D. REFERENCE PROFILES The AD9558 has an independent profile for each reference input. A profile consists of a set of device parameters such as the R divider and N divider, among others. The profiles allow the user to prescribe the specific device functionality that takes effect when one of the input references becomes the active reference. The AD9558 evaluation software includes a frequency planning wizard that can configure the profile parameters, given the input and output frequencies. Do not change a profile that is currently in use because unpredictable behavior may result. The user can either select free run or holdover mode or invalidate the reference input prior to changing it. REFERENCE SWITCHOVER An attractive feature of the AD9558 is its versatile reference switchover capability. The flexibility of the reference switchover functionality resides in a sophisticated prioritization algorithm that is coupled with register-based controls. This scheme provides the user with maximum control over the state machine that handles reference switchover. The main reference switchover control resides in the loop mode register (Address 0x0A01). The REF switchover mode bits (Register 0x0A01, Bits[4:2]) allow the user to select one of the five operating modes of the reference switchover state machine, as follows: • • • • • Rev. C | Page 32 of 105 Automatic revertive mode Automatic nonrevertive mode Manual with automatic fallback mode Manual with holdover mode Full manual mode (without automatic holdover) Data Sheet AD9558 In the automatic modes, a fully automatic priority-based algorithm selects which reference is the active reference. When programmed for an automatic mode, the device chooses the highest priority valid reference. When both references have the same priority, REFA gets preference over REFB. However, the reference position is used only as a tie-breaker and does not initiate a reference switch. The following list gives an overview of the five operating modes: • • • • • Automatic revertive mode. The device selects the highest priority valid reference and switches to a higher priority reference if it becomes available, even if the reference in use is still valid. In this mode, the user reference is ignored. Automatic non-revertive mode. The device stays with the currently selected reference as long as it is valid, even if a higher priority reference becomes available. The user reference is ignored in this mode. Manual with automatic fallback mode. The device uses the user reference for as long as it is valid. If it becomes invalid, the reference input with the highest priority is chosen in accordance with the priority-based algorithm. Manual with holdover mode. The user reference is the active reference until it becomes invalid. At that point, the device automatically goes into holdover. Manual mode without holdover. The user reference is the active reference, regardless of whether or not it is valid. The user also has the option to force the device directly into holdover or free run operation via the user holdover and user free run bits. In free run mode, the free run frequency tuning word register defines the free run output frequency. In holdover mode, the output frequency depends on the holdover control settings (see the Holdover section). Phase Build-Out Reference Switching The AD9558 supports phase build-out reference switching, which is the term given to a reference switchover that completely masks any phase difference between the previous reference and the new reference. That is, there is virtually no phase change detectable at the output when a phase build-out switchover occurs. TUNING WORD CLAMP AND HISTORY 17-BIT 23-BIT/23-BIT INTEGER RESOLUTION A TDC samples the output of the R-divider. The TDC/PFD produces a time series of digital words and delivers them to the digital loop filter. The digital loop filter offers the following advantages: • • • • Determination of the filter response by numeric coefficients rather than by discrete component values The absence of analog components (R/L/C), which eliminates tolerance variations due to aging The absence of thermal noise associated with analog components The absence of control node leakage current associated with analog components (a source of reference feedthrough spurs in the output spectrum of a traditional analog PLL) The digital loop filter produces a time series of digital words at its output and delivers them to the frequency tuning input of a Σ-Δ modulator (SDM). The digital words from the loop filter steer the DCO frequency toward frequency and phase lock with the input signal (fTDC). The fractional portion of the feedback divider can be bypassed by setting FRAC1 to 0, but MOD1 must never be 0. The DPLL output frequency is usually 175 MHz to 200 MHz for optimal performance. TO APLL FROM APLL 09758-136 + ×2 30-BIT NCO FRAC1/ MOD1 DPFD ÷N1 DIGITAL LOOP FILTER fR R +1 where: N1 is the 17-bit value stored in the appropriate profile registers (Register 0x0715 to Register 0x0717 for REFA). FRAC1 and MOD1 are the 23-bit numerators and denominators of the fractional feedback divider block. SYSTEM CLOCK FREE RUN TW f TDC = FRAC1  f OUT _ DPLL = f TDC × (N1 + 1) + MOD1   DPLL Overview R DIVIDER (20-BIT) The start of the DPLL signal chain is the reference signal, fR, which is the frequency of the reference input. A reference prescaler reduces the frequency of this signal by an integer factor, R + 1, where R is the 20-bit value stored in the appropriate profile register and 0 ≤ R ≤ 1,048,575. Therefore, the frequency at the output of the R-divider (or the input to the time-to-digital converter (TDC)) is The DPLL includes a feedback divider that causes the digital loop to operate at an integer-plus-fractional multiple. The output of the DPLL is DIGITAL PLL (DPLL) CORE FROM REF INPUT MUX A diagram of the DPLL core of the AD9558 appears in Figure 39. The phase/frequency detector, feedback path, lock detectors, phase offset, and phase slew rate limiting that comprise this second generation DPLL are all digital implementations. Figure 39. Digital PLL Core Rev. C | Page 33 of 105 AD9558 Data Sheet TDC/PFD DPLL Digitally Controlled Oscillator Free Run Frequency The phase-frequency detector (PFD) is an all-digital block. It compares the digital output from the TDC (which relates to the active reference edge) with the digital word from the feedback block. It uses a digital code pump and digital integrator (rather than a conventional charge pump and capacitor) to generate the error signal that steers the DCO frequency toward phase lock. The AD9558 uses an SDM as a DCO. The DCO free run frequency can be calculated from the following equation: Programmable Digital Loop Filter The AD9558 loop filter is a third-order digital IIR filter that is analogous to the third-order analog loop shown in Figure 40. R3 R2 C2 C3 2 FTW0 8 230 where: FTW0 is the value in Register 0x0300 to Register 0x0303. fSYS is the system clock frequency. See the System Clock section for information on calculating the system clock frequency. Adaptive Clocking 09758-015 C1 f DCO _ FREERUN  f SYS  Figure 40. Third-Order Analog Loop Filter The AD9558 loop filter block features a simplified architecture in which the user enters the desired loop characteristics directly into the profile registers. This architecture makes the calculation of individual coefficients unnecessary in most cases, while still offering complete flexibility. The AD9558 has two preset digital loop filters: high (88.5°) phase margin and normal (70°) phase margin. The loop filter coefficients are stored in Register 0x0317 to Register 0x0322 for high phase margin and Register 0x0323 to Register 0x032E for normal phase margin. The high phase margin loop filter is intended for applications in which the closed-loop transfer function must not have greater than 0.1 dB of peaking. Bit 0 of the following registers selects which filter is used for each profile: Register 0x070E for Profile A, Register 0x074E for Profile B, Register 0x078E for Profile C, and Register 0x07CE for Profile D. The loop bandwidth for each profile is set in the following registers: Register 0x070F to Register 0x0711 for Profile A, Register 0x074F to Register 0x0751 for Profile B, Register 0x078F to Register 0x0791 for Profile C, and Register 0x07CF to Register 0x07D1 for Profile D. The two preset conditions cover all of the intended applications for the AD9558. For special cases where these conditions must be modified, the tools for calculating these coefficients are available by contacting Analog Devices directly. The AD9558 can support adaptive clocking applications such as asynchronous mapping and demapping. In these applications, the output frequency can be dynamically adjusted by up to ±100 ppm from the nominal output frequency without manually breaking the DPLL loop and reprogramming the device. This function is supported for REFA only, not REFB. The following registers are used in this function:    Register 0x0715 to Register 0x0717 (DPLL N1 divider) Register 0x0718 to Register 0x071A (DPLL FRAC1 divider) Register 0x071B to Register 0x071D (DPLL MOD1 divider) Writing to these registers requires an I/O update by writing 0x01 to Register 0x0005 before the new values take effect. To make small adjustments to the output frequency, the user can vary the FRAC1 and issue an I/O update. The advantage to using only FRAC1 to adjust the output frequency is that the DPLL does not briefly enter holdover. Therefore, the FRAC1 bit can be updated as fast as the phase detector frequency of the DPLL. Writing to the N1 and MOD1 dividers allows larger changes to the output frequency. When the AD9558 detects that the N1 or MOD1 values have changed, it automatically enters and exits holdover for a brief instant without any disturbance in the output frequency. This limits how quickly the output frequency can be adapted. It is important to realize that the amount of frequency adjustment is limited to ±100 ppm before the output PLL (APLL) needs a recalibration. Variations that are larger than ±100 ppm are possible; however, the ability of the AD9558 to maintain lock over temperature extremes may be compromised. It is also important to remember that the rate of change in output frequency depends on the DPLL loop bandwidth. Rev. C | Page 34 of 105 Data Sheet AD9558 DPLL Phase Lock Detector it removes one drain bucket from the tub. Note that it is not the polarity of the phase error sample, but its magnitude relative to the phase threshold value, that determines whether to fill or drain. If more filling is taking place than draining, the water level in the tub eventually rises above the high water mark (+1024), which causes the phase lock detector to indicate lock. If more draining is taking place than filling, the water level in the tub eventually falls below the low water mark (−1024), which causes the phase lock detector to indicate unlock. The ability to specify the threshold level, fill rate, and drain rate enables the user to tailor the operation of the phase lock detector to the statistics of the timing jitter associated with the input reference signal. The DPLL contains an all-digital phase lock detector. The user controls the threshold sensitivity and hysteresis of the phase detector via the profile registers. The phase lock detector behaves in a manner analogous to water in a tub (see Figure 41). The total capacity of the tub is 4096 units with −2048 denoting empty, 0 denoting the 50% point, and +2048 denoting full. The tub also has a safeguard to prevent overflow. Furthermore, the tub has a low water mark at −1024 and a high water mark at +1024. To change the water level, the user adds water with a fill bucket or removes water with a drain bucket. The user specifies the size of the fill and drain buckets via the 8-bit fill rate and drain rate values in the profile registers. PREVIOUS STATE LOCKED Note that when the AD9558 enters the free run or holdover mode, the DPLL phase lock detector indicates an unlocked state. However, when the AD9558 performs a reference switch, the lock detector state prior to the switch is preserved during the transition period. UNLOCKED 2048 LOCK LEVEL 1024 DPLL Frequency Lock Detector DRAIN RATE UNLOCK LEVEL –1024 –2048 09758-017 0 FILL RATE Figure 41. Lock Detector Diagram The water level in the tub is what the lock detector uses to determine the lock and unlock conditions. When the water level is below the low water mark (−1024), the detector indicates an unlock condition. Conversely, when the water level is above the high water mark (+1024), the detector indicates a lock condition. When the water level is between the marks, the detector simply holds its last condition. This concept appears graphically in Figure 41, with an overlay of an example of the instantaneous water level (vertical) vs. time (horizontal) and the resulting lock/unlock states. During any given PFD cycle, the detector either adds water with the fill bucket or removes water with the drain bucket (one or the other but not both). The decision of whether to add or remove water depends on the threshold level specified by the user. The phase lock threshold value is a 16-bit number stored in the profile registers and is expressed in picoseconds (ps). Thus, the phase lock threshold extends from 0 ns to ±65.535 ns and represents the magnitude of the phase error at the output of the PFD. The phase lock detector compares each phase error sample at the output of the PFD to the programmed phase threshold value. If the absolute value of the phase error sample is less than or equal to the programmed phase threshold value, the detector control logic dumps one fill bucket into the tub. Otherwise, The operation of the frequency lock detector is identical to that of the phase lock detector. The only difference is that the fill or drain decision is based on the period deviation between the reference and feedback signals of the DPLL instead of the phase error at the output of the PFD. The frequency lock detector uses a 24-bit frequency threshold register specified in units of picoseconds (ps). Therefore, the frequency threshold value extends from 0 μs to ±16.777215 μs. It represents the magnitude of the difference in period between the reference and feedback signals at the input to the DPLL. For example, if the reference signal is 1.25 MHz and the feedback signal is 1.38 MHz, the period difference is approximately 75.36 ns (|1/1,250,000 − 1/1,380,000| ≈ 75.36 ns). Frequency Clamp The AD9558 DPLL features a digital tuning word clamp that ensures that the DPLL output frequency stays within a defined range. This feature is very useful to eliminate undesirable behavior in cases where the reference input clocks may be unpredictable. The tuning word clamp is also useful to guarantee that the APLL never loses lock by ensuring that the APLL VCO frequency stays within its tuning range. Frequency Tuning Word History The AD9558 has the ability to track the history of the tuning word samples generated by the DPLL digital loop filter output. It does so by periodically computing the average tuning word value over a user-specified interval. This average tuning word is used during holdover mode to maintain the average frequency when no input references are present. Rev. C | Page 35 of 105 AD9558 Data Sheet LOOP CONTROL STATE MACHINE Switchover Switchover occurs when the loop controller switches directly from one input reference to another. The AD9558 handles a reference switchover by briefly entering holdover mode, loading the new DPLL parameters, and then immediately recovering. During the switchover event, however, the AD9558 preserves the status of the lock detectors to avoid phantom unlock indications. Holdover The holdover state of the DPLL is typically used when none of the input references are present, although the user can also manually engage holdover mode. In holdover mode, the output frequency remains constant. The accuracy of the AD9558 in holdover mode is dependent on the device programming and availability of tuning word history. Recovery from Holdover When the AD9558 is in holdover mode and a valid reference becomes available, the device exits holdover operation. The loop state machine restores the DPLL to closed-loop operation, locks to the selected reference, and sequences the recovery of all the loop parameters based on the profile settings for the active reference. Note that, if the user holdover bit is set, the device does not automatically exit holdover when a valid reference is available. However, automatic recovery can occur after clearing the user holdover bit (Bit 6 in Register 0x0A01). Rev. C | Page 36 of 105 Data Sheet AD9558 SYSTEM CLOCK (SYSCLK) SYSTEM CLOCK INPUTS Functional Description The SYSCLK circuit provides a low jitter, stable, high frequency clock for use by the rest of the chip. The XOA and XOB pins connect to the internal SYSCLK multiplier. The SYSCLK multiplier can synthesize the system clock by connecting a crystal resonator across the XOA and XOB input pins or by connecting a low frequency clock source. The optimal signal for the system clock input is either a crystal in the 50 MHz range or an ac-coupled square wave with a 1 V p-p amplitude. System Clock Period For the AD9558 to accurately measure the frequency of incoming reference signals, the user must enter the system clock period into the nominal system clock period registers (Register 0x0103 to Register 0x0105). The SYSCLK period is entered in units of nanoseconds (ns). System Clock Details There are two internal paths for the SYSCLK input signal: low frequency non-xtal (LF) and crystal resonator (XTAL). Using a TCXO for the system clock is a common use for the LF path. Applications requiring DPLL loop bandwidths of less than 50 Hz or high stability in holdover require a TCXO. As an alternative to the 49.152 MHz crystal for these applications, the AD9558 reference design uses a 19.2 MHz TCXO, which offers excellent holdover stability and a good combination of low jitter and low spurious content. The 1.8 V differential receiver connected to the XOA and XOB pins is self-biased to a dc level of approximately 1 V, and ac coupling is strongly recommended. When a 3.3 V CMOS oscillator is in use, it is important to use a voltage divider to reduce the input high voltage to a maximum of 1.8 V. See Figure 34 for details on connecting a 3.3 V CMOS TCXO to the system clock input. The non-xtal input path permits the user to provide an LVPECL, LVDS, 1.8 V CMOS, or sinusoidal low frequency clock for multiplication by the integrated SYSCLK PLL. The LF path handles input frequencies from 3.5 MHz up to 100 MHz. However, when using a sinusoidal input signal, it is best to use a frequency that is in excess of 20 MHz. Otherwise, the resulting low slew rate can lead to substandard noise performance. Note that the non-XTAL path includes an optional 2× frequency multiplier to double the rate at the input to the SYSCLK PLL and potentially reduce the PLL in-band noise. However, to avoid exceeding the maximum PFD rate of 150 MHz, the 2× frequency multiplier is only for input frequencies that are below 75 MHz. The non-XTAL path also includes an input divider (M) that is programmable for divide-by-1, -2, -4, or -8. The purpose of the divider is to limit the frequency at the input to the PLL to less than 150 MHz (the maximum PFD rate). The XTAL path enables the connection of a crystal resonator (typically 10 MHz to 50 MHz) across the XOA and XOB input pins. An internal amplifier provides the negative resistance required to induce oscillation. The internal amplifier expects an AT cut, fundamental mode crystal with a maximum motional resistance of 100 Ω. The following crystals, listed in alphabetical order, may meet these criteria. Analog Devices, Inc., does not guarantee their operation with the AD9558 nor does Analog Devices endorse one crystal supplier over another. The AD9558 reference design uses a 49.152 MHz crystal, which is high performance, low spurious content, and readily available. • • • • • • • AVX/Kyocera CX3225SB ECS ECX-32 Epson/Toyocom TSX-3225 Fox FX3225BS NDK NX3225SA Siward SX-3225 Suntsu SCM10B48-49.152 MHz The AD9558 reference design also has a place to mount a 5 mm × 7 mm TCXO. A TCXO with a CMOS output is strongly recommended instead of a clipped sine wave output. The following TCXOs, listed in alphabetical order, may meet this criteria. Analog Devices does not guarantee their does Analog Devices endorse one TCXO supplier over another.operation with the AD9558 nor • • • AVX/Kyocera KT7050A Vectron TX-700 Rakon RPT7050J SYSTEM CLOCK MULTIPLIER The SYSCLK PLL multiplier is an integer-N design with an integrated VCO. It provides a means to convert a low frequency clock input to the desired system clock frequency, fSYS (750 MHz to 805 MHz). The SYSCLK PLL multiplier accepts input signals of between 3.5 MHz and 600 MHz; however, frequencies that are in excess of 150 MHz require the system clock P divider to ensure compliance with the maximum PFD rate (150 MHz). The PLL contains a feedback divider (N) that is programmable for divide values between 4 and 255. f SYS = f OSC × sysclk _ Ndiv sysclk _ Pdiv where: fOSC is the frequency at the XOA and XOB pins. sysclk_Ndiv is the value stored in Register 0x0100. sysclk_Pdiv is the system clock P divider that is determined by the setting of Register 0x0101, Bits[2:1]. If the system clock doubler is used, the value of sysclk_Ndiv must be half of its original value. The system clock multiplier features a simple lock detector that compares the time difference between the reference and feedback edges. The most common cause of the SYSCLK multiplier not locking is a non-50% duty cycle at the SYSCLK input while the system clock doubler is enabled. Rev. C | Page 37 of 105 AD9558 Data Sheet System Clock Stability Timer Because the reference monitors depend on the system clock being at a known frequency, it is important that the system clock be stable before activating the monitors. At initial powerup, the system clock status is not known, and, therefore, it is reported as being unstable. After the device has been programmed, the system clock PLL (if enabled) eventually locks. When a stable operating condition is detected, a timer is run for the duration that is stored in the system clock stability period registers. If at any time during this waiting period, the condition is violated, the timer is reset and halted until a stable condition is reestablished. After the specified period elapses, the AD9558 reports the system clock as stable. Rev. C | Page 38 of 105 Data Sheet AD9558 OUTPUT PLL (APLL) Calibration of the APLL must be performed at startup and when the nominal input frequency to the APLL changes by more than ±100 ppm, although the APLL maintains lock over voltage and temperature extremes without recalibration. Calibration centers the dc operating voltage at the input to the APLL VCO. A diagram of the output PLL (APLL) is shown in Figure 42. INTEGER DIVIDER ÷N2 OUTPUT PLL DIVIDER (APLL) PFD CP LF_VCO2 LF TO CLOCK DISTRIBUTION VCO2 3.35GHz TO 4.05GHz LF CAP 09758-138 FROM DPLL Figure 42. Output PLL Block Diagram The APLL provides the frequency upconversion from the DPLL output to the 3.35 GHz to 4.05 GHz range, while also providing noise filtering on the DPLL output. The APLL reference input is the output of the DPLL. The feedback divider is an integer divider. The loop filter is partially integrated with the one external 6.8 nF capacitor. The nominal loop bandwidth for this PLL is 250 kHz, with 68°of phase margin. The frequency wizard that is included in the evaluation software configures the APLL, and the user does not need to make changes to the APLL settings. However, there may be special cases where the user may want to adjust the APLL loop bandwidth to meet a specific phase noise requirement. The easiest way to change the APLL loop bandwidth is to adjust the APLL charge pump current in Register 0x0400. There is sufficient stability (68° of phase margin) in the APLL default settings to permit a broad range of adjustment without causing the APLL to be unstable. Contact Analog Devices directly if more detail is needed. APLL calibration at startup can be accomplished during initial register loading by following the instructions in the Device Register Programming Using a Register Setup File section of this data sheet. To recalibrate the APLL VCO after the chip has been running, the user must first input the new settings (if any). Ensure that the system clock is still locked and stable, and that the DPLL is in free run mode with the free run tuning word set to the same output frequency that is used when the DPLL is locked. Take the following steps to calibrate the APLL VCO: 1. 2. 3. 4. 5. 6. Ensure that the system clock is locked and stable. Ensure that the DPLL is in user free run mode (Register 0x0A01[5] = 1b), and that the free run tuning word is set. Write Register 0x0405 = 0x20. Write Register 0x0005 = 0x01. Write Register 0x0405 = 0x21. Write Register 0x0005 = 0x01. Monitor the APLL status using Bit 2 in Register 0x0D01. Rev. C | Page 39 of 105 AD9558 Data Sheet CLOCK DISTRIBUTION RF DIVIDER 1 ÷3 TO ÷11 FRAME SYNC MODE ONLY ÷M1 OUT0 OUT0 OUT1 OUT1 OUT2 FROM APLL (3.35GHz TO 4.05GHz) OUT2 RF DIVIDER 2 ÷3 TO ÷11 MAX 1.25GHz ÷M2 OUT3 OUT3 360kHz TO 1.25GHz ÷M0 MAX 1.25GHz OUT4 OUT4 SYNC/SOFT_SYNC CHANNEL SYNC BLOCK SYNC SIGNAL TO M0 TO M3 DIVIDERS ÷M3 FRAME SYNC FRAME SYNC ENGAGED SIGNAL FSYNC_ALIGN_METHOD SELECTED INPUT FRAME PULSE ÷M3b FRAME SYNC BLOCK ×2 OUT5 OUT5 09758-139 FRAME SYNC MONITOR 352Hz TO 1.25GHz CHIP RESET Figure 43. Clock Distribution Block Diagram RF DIVIDERS (RF DIVIDER 2 AND RF DIVIDER 1) OUTPUT ENABLE The first block in each clock distribution section is the RF divider. The RF dividers divide the VCO output frequency down to a maximum frequency of ≤1.25 GHz and has special circuitry to maintain a 50% duty cycle for any divide ratio. Each of the output channels offers independent control of enable/ disable functionality via the distribution enable register. The distribution outputs use synchronization logic to control enable/disable activity to avoid the production of runt pulses and to ensure that outputs with the same divide ratios become active/inactive in unison. The following register addresses contain the RF divider settings: • • RF Divider 1: Register 0x0407, Bits[3:0] RF Divider 2: Register 0x0407, Bits[7:4] OUTPUT MODE In normal operation, the RF dividers do not need to be reset because the APLL VCO calibration (which normally occurs after programming the RF divider) automatically performs an RF divider reset. However, in cases where the user wants to change either of the RF dividers, but not recalibrate the corresponding APLL VCO afterward, the user must first reset that RF divider by writing 0x0F to the appropriate RF divider register and then issuing an I/O update by writing Register 0x0005 = 0x01. At this point, the user can program the new RF divider value, and issue another I/O update. The user has independent control of the operating mode of each of the four output channels via the output clock distribution registers (Address 0x0500 to Address 0x0515). The operating mode control includes • • • • • Logic family and pin functionality Output drive strength Output polarity Divide ratio Phase of each output channel CHANNEL DIVIDERS Channel 0 and Channel 3 provide 3.3 V CMOS and 1.8 V CMOS modes. Channel 1 and Channel 2 have 1.8 V CMOS, LVDS, and HSTL modes. The channel divider blocks, M0, M1, M2, M3, and M3b, are 10-bit integer dividers with a divide range of 1 to 1023. The channel divider block contains duty cycle correction that guarantees 50% duty cycle for both even and odd divide ratios. All CMOS drivers feature a CMOS drive strength that allows the user to choose between a strong, high performance CMOS driver or a lower power setting with less EMI and crosstalk. The best setting is application dependent. OUTPUT POWER-DOWN For applications where LVPECL levels are required, the user must choose the HSTL mode and ac couple the output signal. See the Input/Output Termination Recommendations section for recommended termination schemes. The output drivers can be individually powered down. Rev. C | Page 40 of 105 Data Sheet AD9558 CLOCK DISTRIBUTION SYNCHRONIZATION receive a sync signal from the channel sync block only if the APLL is calibrated and locked, unless the APLL locked controlled sync disable bit (Register 0x0405, Bit 3) is set. Divider Synchronization The dividers in the clock distribution channels can be synchronized with each other. At power-up, the clock dividers are held static until a sync signal is initiated by the channel sync block. The following are possible sources of a sync signal, and these settings are found in Register 0x0500: • • • • • • Direct sync via Bit 2 of Register 0x0500 Direct sync via a sync op code (0xA1) in the EEPROM storage sequence during EEPROM loading DPLL phase or frequency lock A rising edge of the selected reference input The SYNC pin A multifunction pin configured for the sync signal A channel can be programmed to ignore the sync function by setting the mask channel sync bits in Register 0x0500, Bits[7:4]. When programmed to ignore the sync, the channel ignores both the user initiated sync signal and the zero delay initiated sync signals, and the channel divider starts toggling, provided that the APLL is calibrated and locked, or if the APLL locked controlled sync disable bit (Register 0x0405, Bit 3) is set. If the output sync function is to be controlled using an M pin, take the following steps: 1. 2. 3. The APLL lock detect signal gates the sync signal from the channel sync block shown in Figure 43. The channel dividers Enable the M pins by writing Register 0x0200 = 0x01. Issue an I/O update (Register 0x0005 = 0x01). Set the appropriate M pin function. If this process is not followed, a sync pulse is issued automatically. Rev. C | Page 41 of 105 AD9558 Data Sheet FRAME SYNCHRONIZATION The AD9558 provides frame synchronization function/mode. With this function, the AD9558 can take a pair of signals consisting of a reference clock and a 2 kHz or 8 kHz frame pulse as input signals and generate a pair of signals consisting of a synchronized output clock and an output frame pulse, while the output frame pulse is also synchronized with the input frame pulse. The reference clock is used to synthesize the output clock and output frame pulse through the DPLL, output PLL, or distribution and the input frame pulse is used to control the phase of the output frame pulse. Frame synchronization is not supported in the soft or hard pin control mode. REFERENCE CONFIGURATION IN FRAME SYNCHRONIZATION MODE In frame synchronization mode, four AD9558 reference inputs (REFA, REFB, REFC, and REFD) are arranged into two pairs of signals: REFA and REFC form a pair of input clock/input frame pulses, with REFA as the input clock and REFC as the frame pulse. REFB and REFD form the second pair of input clock/ input frame pulses with REFB as the input clock and REFD is the frame pulse. During reference switchover, only two input clocks, REFA and REFB, are assigned with a priority index. The two frame pulses, REFC and REFD, are not assigned with the priority index (the priority register bits in the profiles associated with input frame pulse are ignored). Each pair of input clock/ frame pulses participates in the reference selection as a group, and the valid state and priority of the pair are used in determining the reference selection. The priority of the pair is indicated by the priority index of the input clock in the pair. Users have the option to either include or exclude the valid state of the input frame pulse in the reference selection by programming the validate FSYNC reference bit (Register 0x0641, Bit 3). When Register 0x0641, Bit 3 is programmed to 1b, the valid state of the input frame pulse and the valid state of the paired input clock are logically AND’ed, and the result is used to indicate the valid state of the pair. When the validate FSYNC reference bit is programmed to 0b, the valid state of the input frame pulse is excluded in reference selection and only the valid state of the input clock in the pair is used to indicate the valid state of the pair. The valid pair with the higher priority index is selected as the DPLL reference and input frame pulse to control the phase of the output frame pulse. If no pair is valid, the selection does not change, and the DPLL is switched to either holdover or free run mode, and the phase of the output frame pulse is not controlled by any of the input frame pulses. The five reference switchover modes for frame synchronization mode is the same as for normal mode. CLOCK OUTPUTS IN FRAME SYNCHRONIZATION MODE The AD9558 has six outputs (OUT0 to OUT5). In frame sync mode, OUT0 and OUT5 form the pair of output clock (OUT0) and output frame (OUT5) pulses. The frequency of OUT0 is required to have the integer relation with the frequency of the OUT5 (fOUT0 = M × fOUT5). The rest of the outputs (OUT1 to OUT4) do not participate in frame synchronization mode and are programmed and synchronized with each other, the same as in normal mode (except for the SYNC function). However, OUT1 to OUT4 must not be synchronized with the OUT0/OUT5. CONTROL REGISTERS FOR FRAME SYNCHRONIZATION MODE The frame synchronization function is enabled by setting Register 0x0640, Bit 0 to 1b. When Register 0x0640, Bit 0 = 1b, the following occurs: • • The frame synchronization control bits (Register 0x0641, Bits[3:0]) are enabled. The SYNC pin switches from the SYNC function to frame SYNC function. In frame synchronization mode, SYNC cannot be used as clock distribution synchronization function as it is in normal mode. Instead it is used as the frame synchronization arm function. When the AD9558 is in frame synchronization mode, the frame synchronization function can be armed by either the SYNC pin or the arm soft FSYNC bit (Register 0x0641, Bit 0), which is selected by the FSYNC arm method bit (Register 0x0641, Bit 1). A value of 0b (which is the default) selects the SYNC pin as the arm method. If SYNC is selected as the arm method, SYNC = low arms OUT5; if the register is selected as the arm method, Register 0x0641, Bit 0 = 1b arms OUT5. Once armed, the output frame pulse on OUT5 is edge aligned with the paired output clock edge after the rising edge of the input frame pulse. LEVEL SENSITIVE MODE AND ONE-SHOT MODE The frame synchronization function can operate in level sensitive or one-shot mode as determined by the FSYNC one shot bit (Register 0x0641, Bit 2). When in level sensitive mode (Register 0x0641, Bit 2 = 0b) and the frame sync arm signal is high, each rising edge of the selected input frame pulse signal is used to control the phase of the output frame pulse. When in one-shot mode, after the frame sync arm signal is high, only the immediate next rising edge of the selected input frame pulse signal is used to control the phase of the output frame pulse (one time phase alignment). After that, the phase of the output frame pulse is not controlled by the selected input frame pulse. Instead, it follows the phase of the input clock of M3 divider. In either alignment control mode, the resolution of the phase realignment between the input frame pulse and the output frame pulse is one clock cycle of the paired clock output. Rev. C | Page 42 of 105 Data Sheet AD9558 M3b DIVIDER/OUT5 PROGRAMMING IN FRAME SYNCHRONIZATION MODE This means that in frame synchronization mode, the total divide ratio between the RF divider and OUT5 is M0 × M3 × M3b. In frame synchronization mode, the clock distribution signal path for OUT5 is changed as follows: the OUT5 signal goes from the RF divider to the M0 divider, and then to the M3 and M3b dividers. The other important change is that the sync signal for the M3b divider is no longer the standard clock distribution sync. It is controlled by a signal derived from the input frame pulse. ACTIVE SYNC ACTIVE SYNC OUPUT CLOCK (OUT0) FRAME CLOCK INPUT (REFC/REFD) ENABLE FSYNC (REGISTER 0x0640[0] = 1b) FRAME SYNC ARM (REGISTER OR SYNC PIN) NOTES 1. AFTER THE FRAME SYNC IS ARMED, THE FRAME CLOCK OUTPUT IS SYNCHRONIZED TO THE FRAME CLOCK INPUT. THE SKEW BETWEEN THE FRAME CLOCK INPUT AND FRAME CLOCK OUTPUT IS 15ns (NOMINAL) PLUS A DELAY OF 0.5 TO 1.5 OUTPUT CLOCK CYCLES. 09758-141 FRAME CLOCK (OUT5) Figure 44. Frame Synchronization in Level Sensitive Mode ACTIVE SYNC OUPUT CLOCK (OUT0) FRAME CLOCK INPUT (REFC/REFD) ENABLE FSYNC (REGISTER 0x0640[0] = 1b) FRAME SYNC ARM (REGISTER OR SYNC PIN) FRAME CLOCK (OUT5) 09758-142 NOTES 1. AFTER THE FRAME SYNC IS ARMED, THE FRAME CLOCK OUTPUT IS SYNCHRONIZED TO THE FRAME CLOCK INPUT. THE SKEW BETWEEN THE FRAME CLOCK INPUT AND FRAME CLOCK OUTPUT IS 15ns (NOMINAL) PLUS 0.5 TO 1.5 OUTPUT CLOCK CYCLES. Figure 45. Frame Synchronization in One-Shot Mode ENABLE FSYNC M3 DIVIDER FROM APLL M3b DIVIDER OUT5 ENABLE FSYNC RF DIVIDER 1 LOGIC 0 OUT0 M0 DIVIDER ENABLE FSYNC CLOCK DISTRIBUTION SYNC LOGIC DELAY OUTPUT SYNC LEVEL (RETIMED) ENABLE FSYNC OUTPUT SYNC PULSE FRAME SYNC PULSE GENERATOR FRAME SYNC PULSE INPUT (ON REFC OR REFD) NOTES 1. THE ENABLE FSYNC FUNCTION IN THE DIAGRAM IS CONTROLLED BY REGISTER 0X0640[0]. Figure 46. Frame Synchronization Implementation Rev. C | Page 43 of 105 09758-143 FSYNC_ARM (FROM EITHER THE SYNC PIN OR THE ARM SOFT FSYNC BIT IN REGISTER 0X0641[0]) AD9558 Data Sheet STATUS AND CONTROL MULTIFUNCTION PINS (M7 TO M0) The AD9558 has eight digital CMOS I/O pins (M7 to M0) that are configurable for a variety of uses. To use these functions, the user must enable them by writing a 0x01 to Register 0x0200. The function of these pins is programmable via the register map. Each pin can control or monitor an assortment of internal functions based on the contents of Register 0x0201 to Register 0x0208. To monitor an internal function with a multifunction pin, write a Logic 1 to the most significant bit of the register associated with the desired multifunction pin. The value of the seven least significant bits of the register defines the control function, as shown in Table 129. To control an internal function with a multifunction pin, write a Logic 0 to the most significant bit of the register associated with the desired multifunction pin. The monitored function depends on the value of the seven least significant bits of the register, as shown in Table 130. If more than one multifunction pin operates on the same control signal, then internal priority logic ensures that only one multifunction pin serves as the signal source. The selected pin is the one with the lowest numeric suffix. For example, if both M0 and M3 operate on the same control signal, then M0 is used as the signal source and the redundant pins are ignored. At power-up, the multifunction pins can be used to force the device into certain configurations as defined in the initial pin programming section. This functionality, however, is valid only during power-up or following a reset, after which the pins can be reconfigured via the serial programming port or via the EEPROM. If the output SYNC function is to be controlled using an M pin, 1. 2. 3. Enable the M pins by writing Register 0x0200 = 0x01. Issue an I/O update (Register 0x0005 = 0x01). Set the appropriate M pin function. If this process is not followed, a sync pulse is issued automatically. IRQ Pin The AD9558 has a dedicated interrupt request (IRQ) pin. Bits[1:0] of the IRQ pin output mode register (Register 0x0209) control how the IRQ pin asserts an interrupt based on the value of the two bits, as follows: • • • • 00: the IRQ pin is high impedance when deasserted and active low when asserted and requires an external pull-up resistor. 01: the IRQ pin is high impedance when deasserted and active high when asserted and requires an external pulldown resistor. 10: the IRQ pin is Logic 0 when deasserted and Logic 1 when asserted. 11: the IRQ pin is Logic 1 when deasserted and Logic 0 when asserted. (This is the default operating mode.) The AD9558 asserts the IRQ pin when any bit in the IRQ monitor register (Address 0x0D02 to Address 0x0D07) is a Logic 1. Each bit in this register is associated with an internal function that is capable of producing an interrupt. Furthermore, each bit of the IRQ monitor register is the result of a logical AND of the associated internal interrupt signal and the corresponding bit in the IRQ mask register (Address 0x020A to Address 0x020E). That is, the bits in the IRQ mask register have a one-to-one correspondence with the bits in the IRQ monitor register. When an internal function produces an interrupt signal and the associated IRQ mask bit is set, the corresponding bit in the IRQ monitor register is set. The user must be aware that clearing a bit in the IRQ mask register removes only the mask associated with the internal interrupt signal. It does not clear the corresponding bit in the IRQ monitor register. Note that the IRQ function detects a state change in the function that is being monitored. However, if IRQs are cleared (or if they are enabled for the first time), they do not generate for a preexisting condition. The state must change after the IRQs are enabled. For example, if REFA is already invalid before the REFA invalid IRQ is enabled, the IRQ does not generate. The IRQ pin is the result of a logical OR of all the IRQ monitor register bits. Thus, the AD9558 asserts the IRQ pin as long as any IRQ monitor register bit is a Logic 1. Note that it is possible to have multiple bits set in the IRQ monitor register. Therefore, when the AD9558 asserts the IRQ pin, it may indicate an interrupt from several different internal functions. The IRQ monitor register provides the user with a means to interrogate the AD9558 to determine which internal function produced the interrupt. Typically, when the IRQ pin is asserted, the user interrogates the IRQ monitor register to identify the source of the interrupt request. After servicing an indicated interrupt, the user must clear the associated IRQ monitor register bit via the IRQ clearing register (Address 0x0A04 to Address 0x0A09). The bits in the IRQ clearing register have a one-to-one correspondence with the bits in the IRQ monitor register. Note that the IRQ clearing register is autoclearing. The IRQ pin remains asserted until the user clears all of the bits in the IRQ monitor register that indicate an interrupt. It is also possible to collectively clear all of the IRQ monitor register bits by setting the clear all IRQs bit in the reset function register (Register 0x0A03, Bit 1). Note that this is an autoclearing bit. Setting this bit results in deassertion of the IRQ pin. Alternatively, the user can program any of the multifunction pins to clear all IRQs. This allows the user to clear all IRQs by means of a hardware pin rather than by using a serial I/O port operation. Rev. C | Page 44 of 105 Data Sheet AD9558 WATCHDOG TIMER EEPROM The watchdog timer is a general purpose programmable timer. To set the timeout period, the user writes to the 16-bit watchdog timer register (Address 0x0210 to Address 0x0211). A value of 0b in this register disables the timer. A nonzero value sets the timeout period in milliseconds (ms), giving the watchdog timer a range of 1 ms to 65.535 sec. The relative accuracy of the timer is approximately 0.1% with an uncertainty of 0.5 ms. EEPROM Overview If enabled, the timer runs continuously and generates a timeout event when the timeout period expires. The user has access to the watchdog timer status via the IRQ mechanism and the multifunction pins (M7 to M0). In the case of the multifunction pins, the timeout event of the watchdog timer is a pulse that lasts 32 system clock periods. There are two ways to reset the watchdog timer (thereby preventing it from causing a timeout event). The first is by writing a Logic 1 to the autoclearing clear watchdog bit in the clear/reset functions register (Register 0x0A03, Bit 0). Alternatively, the user can program any of the multifunction pins to reset the watchdog timer. This allows the user to reset the timer by means of a hardware pin rather than by using a serial I/O port operation. The AD9558 contains an integrated, 2048-byte, electrically erasable, programmable read-only memory (EEPROM). The AD9558 can be configured to perform a download at power-up via the multifunction pins (M3 and M2), but uploads and downloads can also be done on demand via the EEPROM control registers (Address 0x0E00 to Address 0x0E03). The EEPROM provides the ability to upload and download configuration settings to and from the register map. Figure 47 shows a functional diagram of the EEPROM. Register 0x0E10 to Register 0x0E3F represent a 53-byte EEPROM storage sequence area (referred to as the scratch pad in this section) that enables the user to store a sequence of instructions for transferring data to the EEPROM from the device settings portion of the register map. Note that the default values for these registers provide a sample sequence for saving/retrieving all of the AD9558 EEPROM-accessible registers. Figure 47 shows the connectivity between the EEPROM and the controller that manages data transfer between the EEPROM and the register map. The controller oversees the process of transferring EEPROM data to and from the register map. There are two modes of operation handled by the controller: saving data to the EEPROM (upload mode) or retrieving data from the EEPROM (download mode). In either case, the controller relies on a specific instruction set. DATA EEPROM (0x000 TO 0x1FF) SCRATCH PAD ADDRESS POINTER SCRATCH PAD (EEPROM STORAGE SEQUENCE) (0x0E10 TO 0x0E45) REGISTER MAP Figure 47. EEPROM Functional Diagram Rev. C | Page 45 of 105 SERIAL INPUT/OUTPUT PORT 09758-024 CONDITION (0E01 [3:0]) DATA DEVICE SETTINGS (0x0004 TO 0x0A0D) DATA EEPROM CONTROLLER M3 M2 DEVICE SETTINGS ADDRESS POINTER EEPROM ADDRESS POINTER AD9558 Data Sheet Table 21. EEPROM Controller Instruction Set Instruction Value (Hex) 0x00 to 0x7F Instruction Type Data Bytes Required 3 0x80 I/O update 1 0xA0 Calibrate 1 0xA1 Distribution sync 1 0xB0 to 0xCF Condition 1 0xFE Pause 1 0xFF End 1 Description A data instruction tells the controller to transfer data to or from the device settings section of the register map. A data instruction requires two additional bytes that together, indicate a starting address in the register map. Encoded in the data instruction is the number of bytes to transfer, which is one more than the instruction value. When the controller encounters this instruction while downloading from the EEPROM, it issues a soft I/O update. When the controller encounters this instruction while downloading from the EEPROM, it initiates a system clock calibration sequence. When the controller encounters this instruction while downloading from the EEPROM, it issues a sync pulse to the output distribution synchronization. B1 to CF are condition instructions and correspond to Condition 1 through Condition 31, respectively. B0 is the null condition instruction. See the EEPROM Conditional Processing section for details. When the controller encounters this instruction in the EEPROM storage sequence area while uploading to the EEPROM, it holds both the scratch pad address pointer and the EEPROM address pointer at its last value. This allows storage of more than one instruction sequence in the EEPROM. Note that the controller does not copy this instruction to the EEPROM during upload. When the controller encounters this instruction in the the EEPROM storage sequence area while uploading to the EEPROM, it resets both the register area address pointer and the EEPROM address pointer and then enters an idle state. When the controller encounters this instruction while downloading from the EEPROM, it resets the EEPROM address pointer and then enters an idle state. EEPROM Instructions Table 21 lists the EEPROM controller instruction set. The controller recognizes all instruction types whether it is in upload or download mode, except for the pause instruction, which is recognized only in upload mode. The I/O update, calibrate, distribution sync, and end instructions are mostly self-explanatory. The others, however, warrant further detail, as described in the following paragraphs. Data instructions are those that have a value from 0x000 to 0x7FF. A data instruction tells the controller to transfer data between the EEPROM and the register map. The controller requires the following two parameters to carry out the data transfer: • • The number of bytes to transfer The register map target address The controller decodes the number of bytes to transfer directly from the data instruction itself by adding one to the value of the instruction. For example, the 1A data instruction has a decimal value of 26; therefore, the controller knows to transfer 27 bytes (one more than the value of the instruction). When the controller encounters a data instruction, it knows to read the next two bytes in the scratch pad because these contain the register map target address. Note that, in the EEPROM scratch pad, the two registers that comprise the address portion of a data instruction have the MSB of the address in the D7 position of the lower register address. The bit weight increases from left to right, from the lower register address to the higher register address. Furthermore, the starting address always indicates the lowest numbered register map address in the range of bytes to transfer. That is, the controller always starts at the register map target address and counts upward regardless of whether the serial I/O port is operating in I2C, SPI LSB-first, or SPI MSB-first mode. As part of the data transfer process during an EEPROM upload, the controller calculates a 1-byte checksum and stores it as the final byte of the data transfer. As part of the data transfer process during an EEPROM download, however, the controller again calculates a 1-byte checksum value but compares the newly calculated checksum with the one that was stored during the upload process. If an upload/download checksum pair does not match, the controller sets the EEPROM fault status bit. If the upload/download checksums match for all data instructions encountered during a download sequence, the controller sets the EEPROM complete status bit. Condition instructions are those that have a value from B0 to CF. The B1 to CF condition instructions represent Condition 1 to Condition 31, respectively. The B0 condition instruction is special because it represents the null condition (see the EEPROM Conditional Processing section). Rev. C | Page 46 of 105 Data Sheet AD9558 A pause instruction, like an end instruction, is stored at the end of a sequence of instructions in the scratch pad. When the controller encounters a pause instruction during an upload sequence, it keeps the EEPROM address pointer at its last value. This way the user can store a new instruction sequence in the scratch pad and upload the new sequence to the EEPROM. The new sequence is stored in the EEPROM address locations immediately following the previously saved sequence. This process is repeatable until an upload sequence contains an end instruction. The pause instruction is also useful when used in conjunction with condition processing. It allows the EEPROM to contain multiple occurrences of the same registers, with each occurrence linked to a set of conditions (see the EEPROM Conditional Processing section). EEPROM Upload To upload data to the EEPROM, the user must first ensure that the write enable bit (Register 0x0E00, Bit 0) is set. Then, on setting the autoclearing save to EEPROM bit (Register 0x0E02, Bit 0), the controller initiates the EEPROM data storage process. Uploading EEPROM data requires that the user first write an instruction sequence into the scratch pad registers. During the upload process, the controller reads the scratch pad data byte by byte, starting at Register 0x0E10 and incrementing the scratch pad address pointer as it goes, until it reaches a pause or end instruction. As the controller reads the scratch pad data, it transfers the data from the scratch pad to the EEPROM (byte by byte) and increments the EEPROM address pointer accordingly, unless it encounters a data instruction. A data instruction tells the controller to transfer data from the device settings portion of the register map to the EEPROM. The number of bytes to transfer is encoded within the data instruction, and the starting address for the transfer appears in the next two bytes in the scratch pad. When the controller encounters a data instruction, it stores the instruction in the EEPROM, increments the EEPROM address pointer, decodes the number of bytes to be transferred, and increments the scratch pad address pointer. Then it retrieves the next two bytes from the scratch pad (the target address) and increments the scratch pad address pointer by 2. Next, the controller transfers the specified number of bytes from the register map (beginning at the target address) to the EEPROM. When it completes the data transfer, the controller stores an extra byte in the EEPROM to serve as a checksum for the transferred block of data. To account for the checksum byte, the controller increments the EEPROM address pointer by one more than the number of bytes transferred. Note that, when the controller transfers data associated with an active register, it actually transfers the buffered contents of the register (see the Buffered/Active Registers section for details on the difference between buffered and active registers). This allows the transfer of nonzero autoclearing register contents. Note that conditional processing (see the EEPROM Conditional Processing section) does not occur during an upload sequence. Manual EEPROM Download A manual EEPROM download transfers register values from the EEPROM to the device register map. To download data, the user sets the autoclearing load from EEPROM bit (Register 0x0E03, Bit 1). This commands the controller to initiate the EEPROM download process. During download, the controller reads the EEPROM data byte by byte, incrementing the EEPROM address pointer as it goes, until it reaches an end instruction. As the controller reads the EEPROM data, it executes the stored instructions, which includes transferring stored data to the device settings portion of the register map when it encounters a data instruction. To ensure robust operation, the EEPROM download must be allowed to complete (Register 0x0D00, Bit 1 returning to 0b) before other register writes are performed. If the EEPROM download is interrupted, the user may need to reset the AD9558 prior to attempting another EEPROM download. Note that conditional processing (see the EEPROM Conditional Processing section) is applicable only when downloading. Automatic EEPROM Download Following a power-up, an assertion of the RESET pin, or a soft reset (Register 0x0000, Bit 5 = 1), if the PINCONTROL pin is low, and M3 and M2 are either high or low (see Table 22), the instruction sequence stored in the EEPROM executes automatically with one of eight conditions. If M3 and M2 are left floating and the PINCONTROL pin is low, the EEPROM is bypassed and the factory defaults are used. In this way, a previously stored set of register values downloads automatically on power-up or with a hard or soft reset. See the EEPROM Conditional Processing section for details regarding conditional processing and the way it modifies the download process. To ensure robust operation, the automatic EEPROM download must be initiated by the power-on reset (POR) pulse, and not by the RESET pin. Holding the RESET pin low during power-up is not recommended because the reset caused by the rising edge of the RESET pin may interrupt the EEPROM download initiated by the POR pulse. Table 22. EEPROM Setup M3 Low Low Low Open Open Open High High High Rev. C | Page 47 of 105 M2 Low Open High Low Open High Low Open High ID 1 2 3 4 0 5 6 7 8 EEPROM Download? Yes, EEPROM Condition 1 Yes, EEPROM Condition 2 Yes, EEPROM Condition 3 Yes, EEPROM Condition 4 No Yes, EEPROM Condition 5 Yes, EEPROM Condition 6 Yes, EEPROM Condition 7 Yes, EEPROM Condition 8 AD9558 Data Sheet EEPROM Conditional Processing The condition tag board is a table maintained by the EEPROM controller. When the controller encounters a condition instruction, it decodes the B1 through CF instructions as Condition = 1 through Condition = 8, respectively, and tags that particular condition in the condition tag board. However, the B0 condition instruction decodes as the null condition, for which the controller clears the condition tag board, and subsequent download instructions execute unconditionally (until the controller encounters a new condition instruction). The condition instructions allow conditional execution of EEPROM instructions during a download sequence. During an upload sequence, however, they are stored as is and have no effect on the upload process. Note that, during EEPROM downloads, the condition instructions themselves and the end instruction always execute unconditionally. Conditional processing makes use of two elements: the condition (from Condition 1 to Condition 8) and the condition tag board. The relationships among the condition, the condition tag board, and the EEPROM controller appear schematically in Figure 48. During download, the EEPROM controller executes or skips instructions depending on the value of the condition and the contents of the condition tag board. Note, however, that the condition instructions and the end instruction always execute unconditionally during download. If Condition = 0, all instructions during download execute unconditionally. If Condition ≠ 0 and there are any tagged conditions in the condition tag board, the controller executes instructions only if the condition is tagged. If the condition is not tagged, the controller skips instructions until it encounters a condition instruction that decodes as a tagged condition. Note that the condition tag board allows multiple conditions to be tagged at any given moment. This conditional processing mechanism enables the user to have one download instruction sequence with many possible outcomes depending on the value of the condition and the order in which the controller encounters condition instructions. The condition is a 4-bit value with 16 possibilities. Condition = 0 is the null condition. When the null condition is in effect, the EEPROM controller executes all instructions unconditionally. Condition 9 through Condition 15 are not accessible using the M pins. The remaining eight possibilities (that is, Condition = 1 through Condition = 8) modify the way the EEPROM controller handles a download sequence. The condition originates from one of two sources (see Figure 48), as follows: • FNC_INIT, Bits[3:0], which is the state of the M2 and M3 multifunction pins at power-up (see Table 22) Register 0x0E01, Bits[3:0] If Register 0x0E01, Bits[3:0] ≠ 0, then the condition is the value that is stored in Register 0x0E01, Bits[3:0]; otherwise, the condition is FNC_INIT, Bits[3:0]. Note that a nonzero condition that is present in Register 0x0E01, Bits[3:0] takes precedence over FNC_INIT, Bits[3:0]. M3 AND M2 PINS (3-LEVEL LOGIC) CONDITION TAG BOARD 1 EXAMPLE CONDITION 3 AND CONDITION 13 ARE TAGGED 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 IF B1 ≤ INSTRUCTION ≤ CF, THEN TAG DECODED CONDITION STORE CONDITION INSTRUCTIONS AS THEY ARE READ FROM THE SCRATCH PAD. WATCH FOR OCCURRENCE OF CONDITION INSTRUCTIONS DURING DOWNLOAD. UPLOAD PROCEDURE 4 4 CONDITION CONDITION HANDLER SCRATCH PAD 4 FNC_INIT, BITS[3:0] IF {0E01, BITS[3:0] ≠ 0} CONDITION = 0E01 , BITS[3:0] ELSE CONDITION = FNC_INI T, BITS[3:0] ENDIF IF INSTRUCTION = B0, THEN CLEAR ALL TAGS EEPROM REGISTER 0x0E01, BITS[3:0] EXECUTE/SKI P INSTRUCTION(S) DOWNLOAD PROCEDURE IF {NO TAGS} OR {CONDITION = 0} EXECUTE INSTRUCTIONS ELSE IF {CONDITION IS TAGGED} EXECUTE INSTRUCTIONS ELSE SKIP INSTRUCTIONS ENDIF ENDIF EEPROM CONTROLLER Figure 48. EEPROM Conditional Processing Rev. C | Page 48 of 105 09758-025 • Data Sheet AD9558 Table 23 lists a sample EEPROM download instruction sequence. It illustrates the use of condition instructions and how they alter the download sequence. The table begins with the assumption that no conditions are in effect. That is, the most recently executed condition instruction is either B0 or no conditional instructions have been processed. Table 23. EEPROM Conditional Processing Example Instruction 0x08 0x01 0x00 0xB1 0x19 0x04 0x00 0xB2 0xB3 0x07 0x05 0x00 0x0A 0xB0 0x80 0x0A 4. Tag Condition 1. Transfer the clock distribution register contents only if tag condition = 1. Tag Condition 2. Tag Condition 3. Transfer the reference input register contents only if tag condition = 1, 2, or 3. Calibrate the system clock only if tag condition = 1, 2, or 3. Clear the tag condition board. Execute an I/O update, regardless of the value of the tag condition. Calibrate the system clock, regardless of the value of the tag condition. Conditional processing makes it possible to create a number of different device setups, store them in EEPROM, and download a specific setup on demand. To do so, first program the device control registers for a specific setup. Then, store an upload sequence in the EEPROM scratch pad with the following general form: 2. 3. 1. 2. 3. Action Transfer the system clock register contents, regardless of the current condition. Storing Multiple Device Setups in EEPROM 1. Reprogram the device control registers for the next desired setup. Then, store a new upload sequence in the EEPROM scratch pad with the following general form: Condition instruction (B1 to CF) to identify the setup with a specific condition (1 to 31) Data instructions (to save the register contents) along with any required calibrate and/or I/O update instructions Pause instruction (FE) Condition instruction (B0) The next desired condition instruction (B1 to CF, but different from the one used during the previous upload to identify a new setup) Data instructions (to save the register contents) along with any required calibrate and/or I/O update instructions Pause instruction (FE) With the upload sequence written to the scratch pad, perform an EEPROM upload (Register 0x0E02, Bit 0). Repeat the process of programming the device control registers for a new setup, storing a new upload sequence in the EEPROM scratch pad (Step 1 through Step 4), and executing an EEPROM upload (Register 0x0E02, Bit 0) until all of the desired setups have been uploaded to the EEPROM. Note that, on the final upload sequence stored in the scratch pad, the pause instruction (FE) must be replaced with an end instruction (FF). To download a specific setup on demand, first store the condition associated with the desired setup in Register 0x0E01, Bits[3:0]. Then perform an EEPROM download (Register 0x0E03, Bit 1). Alternatively, to download a specific setup at power-up, apply the required logic levels necessary to encode the desired condition on the M2 and M3 multifunction pins. Then, power up the device; an automatic EEPROM download occurs. The condition (as established by the M2 and M3 multifunction pins) guides the download sequence and results in a specific setup. Keep in mind that the number of setups that can be stored in the EEPROM is limited. The EEPROM can hold a total of 2048 bytes. Each nondata instruction requires one byte of storage. Each data instruction, however, requires N + 4 bytes of storage, where N is the number of transferred register bytes and the other four bytes include the data instruction itself (one byte), the target address (two bytes), and the checksum calculated by the EEPROM controller during the upload sequence (one byte). With the upload sequence written to the scratch pad, perform an EEPROM upload (Register 0x0E02, Bit 0). Rev. C | Page 49 of 105 AD9558 Data Sheet Programming the EEPROM to Configure an M Pin to Control Synchronization of Clock Distribution The default EEPROM loading sequence from Register 0x0E10 to Register 0x0E16 is unchanged. The following steps must be inserted into the EEPROM storage sequence: A special EEPROM loading sequence is required to use the EEPROM to load the registers and to use an M pin to enable/disable outputs. To control the output sync function by using an M pin, perform the following steps: 1. 2. 3. Enable the M pins by writing Register 0x0200 = 0x01. Issue an I/O update (Register 0x0005 = 0x01). Set the appropriate M pin function (see the Clock Distribution Synchronization section for details). 1. 2. 3. 4. 5. 6. 7. If this sequence is not performed, a sync pulse is issued automatically. The following changes write Register 0x0200 first and then issue an I/O update before writing the remaining M pin configuration registers in Register 0x0201 to Register 0x0208. Register 0x0E17 = 0x00. Write one byte at Register 0x0200. Register 0x0E18 = 0x02. Register 0x0E19 = 0x00. Register 0x0E1A = 0x80. EEPROM command for an I/O update. Register 0x0E1B = 0x10. Transfer 17 bytes to EEPROM. Register 0x0E1C = 0x02. Transfer starts at Address 0x0201. Register 0x0E1D = 0x01. The rest of the EEPROM loading sequence is the same as the default EEPROM loading sequence, except that the register address of the EEPROM storage sequence is shifted down four bytes from the default. For example, • • • • • Rev. C | Page 50 of 105 Register 0x0E1E = default value of Register 0x0E1A = 0x2E Register 0x0E1F = default value of Register 0x0E1B = 0x03 Register 0x0E20 = default value of Register 0x0E1C = 0x00 … Register 0x0E40 = default value of Register 0x0E1C = 0x3C = 0xFF Data Sheet AD9558 SERIAL CONTROL PORT The AD9558 serial control port is a flexible, synchronous serial communications port that provides a convenient interface to many industry-standard microcontrollers and microprocessors. The AD9558 serial control port is compatible with most synchronous transfer formats, including I²C, Motorola SPI, and Intel SSR protocols. The serial control port allows read/write access to the AD9558 register map. In SPI mode, single or multiple byte transfers are supported. The SPI port configuration is programmable via Register 0x0000. This register is integrated into the SPI control logic rather than in the register map and is distinct from the I2C Register 0x0000. It is also inaccessible to the EEPROM controller. Although the AD9558 supports both the SPI and I2C serial port protocols, only one or the other is active following power-up (as determined by the M0 and M1 multifunction pins during the startup sequence). That is, the only way to change the serial port protocol is to reset the device (or cycle the device power supply). SPI/I²C PORT SELECTION Because the AD9558 supports both SPI and I²C protocols, the active serial port protocol depends on the logic state of the PINCONTROL, M1, and M0 pins. The PINCONTROL pin must be low, and the state of the M0 and M1 pins determines the I2C address, or if SPI mode is enabled. See Table 24 for the I2C address assignments. Table 24. SPI/I²C Serial Port Setup M1 Low Low Low Open Open Open High High High M0 Low Open High Low Open High Low Open High SPI/I²C SPI I²C, 1101000 I²C, 1101001 I²C, 1101010 I²C, 1101011 I²C, 1101100 I²C, 1101101 I²C, 1101110 I²C, 1101111 The chip select pin (CS) is an active low control that gates read and write operations. This pin is internally connected to a 30 kΩ pull-up resistor. When CS is high, the SDO and SDIO pins go into a high impedance state. SPI Mode Operation The SPI port supports both 3-wire (bidirectional) and 4-wire (unidirectional) hardware configurations and both MSB-first and LSB-first data formats. Both the hardware configuration and data format features are programmable. By default, the AD9558 uses the bidirectional MSB-first mode. The reason that bidirectional is the default mode is so that the user can still write to the device, if it is wired for unidirectional operation, to switch to unidirectional mode. Assertion (active low) of the CS pin initiates a write or read operation to the AD9558 SPI port. For data transfers of three bytes or fewer (excluding the instruction word), the device supports the CS stalled high mode (see Table 25). In this mode, the CS pin can be temporarily deasserted on any byte boundary, allowing time for the system controller to process the next byte. CS can be deasserted only on byte boundaries, however. This applies to both the instruction and data portions of the transfer. During stall high periods, the serial control port state machine enters a wait state until all data is sent. If the system controller decides to abort a transfer midstream, then the state machine must be reset either by completing the transfer or by asserting the CS pin for at least one complete SCLK cycle (but less than eight SCLK cycles). Deasserting the CS pin on a nonbyte boundary terminates the serial transfer and flushes the buffer. In streaming mode (see Table 25), any number of data bytes can be transferred in a continuous stream. The register address is automatically incremented or decremented. CS must be deasserted at the end of the last byte that is transferred, thereby ending the streaming mode. Table 25. Byte Transfer Count SPI SERIAL PORT OPERATION Pin Descriptions The serial clock pin (SCLK) serves as the serial shift clock. This pin is an input. SCLK synchronizes serial control port read and write operations. The rising edge of SCLK registers write data bits, and the falling edge registers read data bits. The SCLK pin supports a maximum clock rate of 40 MHz. The serial data input/output pin (SDIO) is a dual-purpose pin and acts as either an input only (unidirectional mode) or as both an input and an output (bidirectional mode). The AD9558 default SPI mode is bidirectional. The SDO (serial data output) pin is useful only in unidirectional I/O mode. It serves as the data output pin for read operations. W1 0 0 1 1 W0 0 1 0 1 Bytes to Transfer 1 2 3 Streaming mode Communication Cycle—Instruction Plus Data The SPI protocol consists of a two-part communication cycle. The first part is a 16-bit instruction word that is coincident with the first 16 SCLK rising edges and a payload. The instruction word provides the AD9558 serial control port with information regarding the payload. The instruction word includes the R/W bit that indicates the direction of the payload transfer (that is, a read or write operation). The instruction word also indicates the number of bytes in the payload and the starting register address of the first payload byte. Rev. C | Page 51 of 105 AD9558 Data Sheet Write SPI Instruction Word (16 Bits) If the instruction word indicates a write operation, the payload is written into the serial control port buffer of the AD9558. Data bits are registered on the rising edge of SCLK. The length of the transfer (1, 2, or 3 bytes or streaming mode) depends on the W0 and W1 bits (see Table 25) in the instruction byte. When not streaming, CS can be deasserted after each sequence of eight bits to stall the bus (except after the last byte, where it ends the cycle). When the bus is stalled, the serial transfer resumes when CS is asserted. Deasserting the CS pin on a nonbyte boundary resets the serial control port. Reserved or blank registers are not skipped over automatically during a write sequence. Therefore, the user must know what bit pattern to write to the reserved registers to preserve proper operation of the device. Generally, it does not matter what data is written to blank registers, but it is customary to write 0s. The MSB of the 16-bit instruction word is R/W, which indicates whether the instruction is a read or a write. The next two bits, W1 and W0, indicate the number of bytes in the transfer (see Table 25). The final 13 bits are the register address (A12 to A0), which indicates the starting register address of the read/write operation (see Table 27). SPI MSB-/LSB-First Transfers The AD9558 instruction word and payload can be MSB first or LSB first. The default for the AD9558 is MSB first. The LSB-first mode can be set by writing a 1 to Register 0x0000, Bit 6. Immediately after the LSB-first bit is set, subsequent serial control port operations are LSB first. When MSB-first mode is active, the instruction and data bytes must be written from MSB to LSB. Multibyte data transfers in MSB-first format start with an instruction byte that includes the register address of the most significant payload byte. Subsequent data bytes must follow in order from high address to low address. In MSB-first mode, the serial control port internal address generator decrements for each data byte of the multibyte transfer cycle. Most of the serial port registers are buffered (see the Buffered/Active Registers section for details on the difference between buffered and active registers). Therefore, data written into buffered registers does not take effect immediately. An additional operation is required to transfer buffered serial control port contents to the registers that actually control the device. This is accomplished with an I/O update operation, which is performed in one of two ways. One is by writing a Logic 1 to Register 0x0005, Bit 0 (this bit is autoclearing). The other is to use an external signal via an appropriately programmed multifunction pin. The user can change as many register bits as desired before executing an I/O update. The I/O update operation transfers the buffer register contents to their active register counterparts. When Register 0x0000, Bit 6 = 1 (LSB first), the instruction and data bytes must be written from LSB to MSB. Multibyte data transfers in LSB-first format start with an instruction byte that includes the register address of the least significant payload byte followed by multiple data bytes. The serial control port internal byte address generator increments for each byte of the multibyte transfer cycle. For multibyte MSB-first (default) I/O operations, the serial control port register address decrements from the specified starting address toward Address 0x0000. For multibyte LSB-first I/O operations, the serial control port register address increments from the starting address toward Address 0x1FFF. Reserved addresses are not skipped during multibyte I/O operations; therefore, the user must write the default value to a reserved register and 0s to unmapped registers. Note that it is more efficient to issue a new write command than to write the default value to more than two consecutive reserved (or unmapped) registers. Read The AD9558 supports the long instruction mode only. If the instruction word indicates a read operation, the next N × 8 SCLK cycles clock out the data from the address specified in the instruction word. N is the number of data bytes read and depends on the W0 and W1 bits of the instruction word. The readback data is valid on the falling edge of SCLK. Blank registers are not skipped over during readback. A readback operation takes data from either the serial control port buffer registers or the active registers, as determined by Register 0x0004, Bit 0. Table 26. Streaming Mode (No Addresses Are Skipped) Write Mode LSB First MSB First Address Direction Increment Decrement Stop Sequence 0x0000 ... 0x1FFF 0x1FFF ... 0x0000 Table 27. Serial Control Port, 16-Bit Instruction Word, MSB First MSB I15 I14 I13 I12 I11 I10 I9 I8 I7 I6 I5 I4 I3 I2 I1 LSB I0 R/W W1 W0 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 Rev. C | Page 52 of 105 Data Sheet AD9558 CS SCLK DON'T CARE SDIO DON'T CARE R/W W1 W0 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 16-BIT INSTRUCTION HEADER D2 D1 D0 D7 D6 D5 REGISTER (N) DATA D4 D3 D2 D1 D0 DON'T CARE REGISTER (N – 1) DATA 09758-029 DON'T CARE Figure 49. Serial Control Port Write—MSB First, 16-Bit Instruction, Two Bytes of Data CS SCLK DON'T CARE SDIO DON'T CARE SDO DON'T CARE D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 16-BIT INSTRUCTION HEADER REGISTER (N) DATA REGISTER (N – 1) DATA REGISTER (N – 2) DATA REGISTER (N – 3) DATA DON'T CARE 09758-030 R/W W1 W0 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 Figure 50. Serial Control Port Read—MSB First, 16-Bit Instruction, Four Bytes of Data tDS tHIGH tS tDH DON'T CARE SDIO DON'T CARE DON'T CARE R/W W1 W0 A12 A11 A10 A9 A8 A7 A6 A5 D4 D3 D2 D1 D0 DON'T CARE 09758-031 SCLK tC tCLK tLOW CS Figure 51. Serial Control Port Write—MSB First, 16-Bit Instruction, Timing Measurements CS SCLK DATA BIT N 09758-032 tDV SDIO SDO DATA BIT N – 1 Figure 52. Timing Diagram for Serial Control Port Register Read CS SCLK DON'T CARE A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 W0 W1 R/W D0 D1 D2 D3 D4 16-BIT INSTRUCTION HEADER D5 D6 D7 D0 REGISTER (N) DATA D1 D2 D6 REGISTER (N + 1) DATA Figure 53. Serial Control Port Write—LSB First, 16-Bit Instruction, Two Bytes of Data Rev. C | Page 53 of 105 D3 D4 D5 D7 DON'T CARE 09758-033 SDIO DON'T CARE DON'T CARE AD9558 Data Sheet CS tS tC tCLK tHIGH tLOW tDS SCLK SDIO BIT N BIT N + 1 Figure 54. Serial Control Port Timing—Write Table 28. Serial Control Port Timing Parameter tDS tDH tCLK tS tC tHIGH tLOW tDV Description Setup time between data and the rising edge of SCLK Hold time between data and the rising edge of SCLK Period of the clock Setup time between the CS falling edge and the SCLK rising edge (start of the communication cycle) Setup time between the SCLK rising edge and CS rising edge (end of the communication cycle) Minimum period that SCLK needs to be in a logic high state Minimum period that SCLK needs to be in a logic low state SCLK to valid SDIO and SDO (see Figure 52) Rev. C | Page 54 of 105 09758-034 tDH Data Sheet AD9558 The transfer of data is shown in Figure 55. One clock pulse is generated for each data bit transferred. The data on the SDA line must be stable during the high period of the clock. The high or low state of the data line can change only when the clock signal on the SCL line is low. I²C SERIAL PORT OPERATION The I2C interface has the advantage of requiring only two control pins and is a de facto standard throughout the I2C industry. However, its disadvantage is programming speed, which is 400 kbps maximum. The AD9558 I2C port design is based on the I2C fast mode standard; therefore, it supports both the 100 kHz standard mode and 400 kHz fast mode. Fast mode imposes a glitch tolerance requirement on the control signals. That is, the input receivers ignore pulses of less than 50 ns duration. SDA SCL DATA LINE STABLE; DATA VALID Figure 55. Valid Bit Transfer Start/stop functionality is shown in Figure 56. The start condition is characterized by a high-to-low transition on the SDA line while SCL is high. The start condition is always generated by the master to initialize a data transfer. The stop condition is characterized by a low-to-high transition on the SDA line while SCL is high. The stop condition is always generated by the master to terminate a data transfer. Every byte on the SDA line must be eight bits long. Each byte must be followed by an acknowledge bit; bytes are sent MSB first. The AD9558 allows up to seven unique slave devices to occupy the I2C bus. These are accessed via a 7-bit slave address that is transmitted as part of an I2C packet. Only the device that has a matching slave address responds to subsequent I2C commands. Table 24 lists the supported device slave addresses. I2C Bus Characteristics A summary of the various I2C protocols appears in Table 29. The acknowledge bit (A) is the ninth bit attached to any 8-bit data byte. An acknowledge bit is always generated by the receiving device (receiver) to inform the transmitter that the byte has been received. It is done by pulling the SDA line low during the ninth clock pulse after each 8-bit data byte. Table 29. I2C Bus Abbreviation Definitions Abbreviation S Sr P A A W R CHANGE OF DATA ALLOWED 09758-035 The AD9558 I2C port consists of a serial data line (SDA) and a serial clock line (SCL). In an I2C bus system, the AD9558 is connected to the serial bus (data bus SDA and clock bus SCL) as a slave device; that is, no clock is generated by the AD9558. The AD9558 uses direct 16-bit memory addressing instead of traditional 8-bit memory addressing. Definition Start Repeated start Stop Acknowledge Nonacknowledge Write Read The nonacknowledge bit (A) is the ninth bit attached to any 8-bit data byte. A nonacknowledge bit is always generated by the receiving device (receiver) to inform the transmitter that the byte has not been received. It is done by leaving the SDA line high during the ninth clock pulse after each 8-bit data byte. SDA SCL S START CONDITION 09758-036 P STOP CONDITION Figure 56. Start and Stop Conditions MSB ACK FROM SLAVE RECEIVER 1 SCL 2 3 TO 7 8 9 ACK FROM SLAVE RECEIVER 1 S Figure 57. Acknowledge Bit Rev. C | Page 55 of 105 2 3 TO 7 8 9 10 P 09758-037 SDA AD9558 Data Sheet Data Transfer Process per transfer is unrestricted. In write mode, the first two data bytes immediately after the slave address byte are the internal memory (control registers) address bytes, with the high address byte first. This addressing scheme gives a memory address of up to 216 − 1 = 65,535. The data bytes after these two memory address bytes are register data written to or read from the control registers. In read mode, the data bytes after the slave address byte are register data written to or read from the control registers. The master initiates data transfer by asserting a start condition. This indicates that a data stream follows. All I2C slave devices connected to the serial bus respond to the start condition. The master then sends an 8-bit address byte over the SDA line, consisting of a 7-bit slave address (MSB first) plus an R/W bit. This bit determines the direction of the data transfer, that is, whether data is written to or read from the slave device (0 = write, 1 = read). When all data bytes are read or written, stop conditions are established. In write mode, the master (transmitter) asserts a stop condition to end data transfer during the 10th clock pulse following the acknowledge bit for the last data byte from the slave device (receiver). In read mode, the master device (receiver) receives the last data byte from the slave device (transmitter) but does not pull SDA low during the ninth clock pulse. This is known as a nonacknowledge bit. By receiving the nonacknowledge bit, the slave device knows that the data transfer is finished and enters idle mode. The master then takes the data line low during the low period before the 10th clock pulse, and high during the 10th clock pulse to assert a stop condition. The peripheral whose address corresponds to the transmitted address responds by sending an acknowledge bit. All other devices on the bus remain idle while the selected device waits for data to be read from or written to it. If the R/W bit is 0, the master (transmitter) writes to the slave device (receiver). If the R/W bit is 1, the master (receiver) reads from the slave device (transmitter). The format for these commands is described in the Data Transfer Format section. Data is then sent over the serial bus in the format of nine clock pulses, one data byte (eight bits) from either master (write mode) or slave (read mode) followed by an acknowledge bit from the receiving device. The number of bytes that can be transmitted A start condition can be used in place of a stop condition. Furthermore, a start or stop condition can occur at any time, and partially transferred bytes are discarded. MSB ACK FROM SLAVE RECEIVER 1 SCL 2 3 TO 7 8 9 ACK FROM SLAVE RECEIVER 1 2 3 TO 7 8 9 S 10 P 09758-038 SDA Figure 58. Data Transfer Process (Master Write Mode, 2-Byte Transfer) SDA ACK FROM MASTER RECEIVER 1 2 3 TO 7 8 9 1 2 3 TO 7 S 8 9 10 P Figure 59. Data Transfer Process (Master Read Mode, 2-Byte Transfer) Rev. C | Page 56 of 105 09758-039 SCL NON-ACK FROM MASTER RECEIVER Data Sheet AD9558 Data Transfer Format Write byte format—the write byte protocol is used to write a register address to the RAM starting from the specified RAM address. S Slave address A W RAM address high byte A RAM address low byte A RAM Data 0 A RAM Data 1 A RAM Data 2 A P Send byte format—the send byte protocol is used to set up the register address for subsequent reads. S Slave address A W RAM address high byte A RAM address low byte A P Receive byte format—the receive byte protocol is used to read the data byte(s) from RAM starting from the current address. S Slave address R A RAM Data 0 A RAM Data 1 A RAM Data 2 P A Read byte format—the combined format of the send byte and the receive byte. S Slave Address W A RAM Address High Byte A RAM Address Low Byte A Sr Slave Address R A RAM Data 0 A RAM Data 1 A RAM Data 2 A I²C Serial Port Timing SDA tLOW tF tR tSU; DAT tHD; STA tF tSP tBUF tR S tHD; STA tHD; DAT tHIGH tSU; STO tSU; STA Sr Figure 60. I²C Serial Port Timing Table 30. I2C Timing Definitions Parameter fSCL tBUF tHD; STA tSU; STA tSU; STO tHD; DAT tSU; DAT tLOW tHIGH tR tF tSP Description Serial clock Bus free time between stop and start conditions Repeated hold time start condition Repeated start condition setup time Stop condition setup time Data hold time Date setup time SCL clock low period SCL clock high period Minimum/maximum receive SCL and SDA rise time Minimum/maximum receive SCL and SDA fall time Pulse width of voltage spikes that must be suppressed by the input filter Rev. C | Page 57 of 105 P S 09758-040 SCL P AD9558 Data Sheet PROGRAMMING THE I/O REGISTERS The register map spans an address range from 0x0000 through 0x0E3C. Each address provides access to 1 byte (eight bits) of data. Each individual register is identified by its four-digit hexadecimal address (for example, Register 0x0A10). In some cases, a group of addresses collectively defines a register. In general, when a group of registers defines a control parameter, the LSB of the value resides in the D0 position of the register with the lowest address. The bit weight increases right to left, from the lowest register address to the highest register address. Note that the EEPROM storage sequence registers (Address 0x0E10 to Address 0x0E3C) are an exception to the above convention (see the EEPROM Instructions section). BUFFERED/ACTIVE REGISTERS There are two copies of most registers: buffered and active. The value in the active registers is the one that is in use. The buffered registers are the ones that take effect the next time the user writes 0x01 to the I/O update register (Register 0x0005). Buffering the registers allows the user to update a group of registers (like the digital loop filter coefficients) at the same time, which avoids the potential of unpredictable behavior in the device. Registers with an L in the option column are live, meaning that they take effect the moment the serial port transfers that data byte. AUTOCLEAR REGISTERS An A in the option column of the register map identifies an autoclear register. Typically, the active value for an autoclear register takes effect following an I/O update. The bit is cleared by the internal device logic upon completion of the prescribed action. REGISTER ACCESS RESTRICTIONS Read and write access to the register map may be restricted depending on the register in question, the source and direction of access, and the current state of the device. Each register can be classified into one or more access types. When more than one type applies, the most restrictive condition is the one that applies. When access is denied to a register, all attempts to read the register return a 0 byte, and all attempts to write to the register are ignored. Access to nonexistent registers is handled in the same way as for a denied register. Regular Access Registers with regular access do not fall into any other category. Both read and write access to registers of this type can be from either the serial ports or the EEPROM controller. However, only one of these sources can have access to a register at any given time (access is mutually exclusive). When the EEPROM controller is active, in either load or store mode, it has exclusive access to these registers. Read-Only Access An R in the option column of the register map identifies readonly registers. Access is available at all times, including when the EEPROM controller is active. Note that read-only registers (R) are inaccessible to the EEPROM, as well. Exclusion from EEPROM Access An E in the option column of the register map identifies a register with contents that are inaccessible to the EEPROM. That is, the contents of this type of register cannot be transferred directly to the EEPROM or vice versa. Note that read-only registers (R) are inaccessible to the EEPROM, as well. Rev. C | Page 58 of 105 Data Sheet AD9558 THERMAL PERFORMANCE Table 31. Thermal Parameters for the 64-Lead LFCSP Package Symbol θJA θJMA θJMA θJB θJC ΨJT 1 2 Thermal Characteristic Using a JEDEC51-7 Plus JEDEC51-5 2S2P Test Board 1 Junction-to-ambient thermal resistance, 0.0 m/sec airflow per JEDEC JESD51-2 (still air) Junction-to-ambient thermal resistance, 1.0 m/sec airflow per JEDEC JESD51-6 (moving air) Junction-to-ambient thermal resistance, 2.5 m/sec airflow per JEDEC JESD51-6 (moving air) Junction-to-board thermal resistance, 0.0 m/sec airflow per JEDEC JESD51-8 (still air) Junction-to-case thermal resistance (die-to-heat sink) per MIL-Std 883, Method 1012.1 Junction-to-top-of-package characterization parameter, 0 m/sec airflow per JEDEC JESD51-2 (still air) Value 2 21.7 18.9 16.9 11.3 1.2 0.1 Unit °C/W °C/W °C/W °C/W °C/W °C/W The exposed pad on the bottom of the package must be soldered to ground to achieve the specified thermal performance. Results are from simulations. The PCB is a JEDEC multilayer type. Thermal performance for actual applications requires careful inspection of the conditions in the application to determine if they are similar to those assumed in these calculations. The AD9558 is specified for a case temperature (TCASE). To ensure that TCASE is not exceeded, an airflow source can be used. Use the following equation to determine the junction temperature on the application PCB: TJ = TCASE + (ΨJT × PD) Values of θJA are provided for package comparison and PCB design considerations. θJA can be used for a first-order approximation of TJ by the equation TJ = TA + (θJA × PD) where TA is the ambient temperature (°C). where: TJ is the junction temperature (°C). TCASE is the case temperature (°C) measured by the user at the top center of the package. ΨJT is the value as indicated in Table 31. PD is the power dissipation (see Table 3). Values of θJC are provided for package comparison and PCB design considerations when an external heat sink is required. Values of θJB are provided for package comparison and PCB design considerations. Rev. C | Page 59 of 105 AD9558 Data Sheet POWER SUPPLY PARTITIONS The AD9558 power supplies are divided into four groups: DVDD3, DVDD, AVDD3, and AVDD. All power and ground pins must be connected, even if certain blocks of the chip are powered down. The ADP222 offers excellent power supply rejection in a small (2 mm × 2 mm) package. It has two 1.8 V outputs. One output can be used for the DVDD pins (Pin 6, Pin 34, and Pin 35), and the other output can drive the AVDD pins. This section recommends the use of ferrite beads. Most users report that the use of bypass capacitors together with ferrite beads is the best arrangement, although some have reported that ferrite beads alone are superior. The ADP7104 is another good choice for converting 3.3 V to 1.8 V. The close-in noise of the ADP7104 is lower than that of the ADP222; therefore, it may be better suited for applications where close-in phase noise is critical and the AD9558 DPLL loop bandwidth is
AD9558/PCBZ 价格&库存

很抱歉,暂时无法提供与“AD9558/PCBZ”相匹配的价格&库存,您可以联系我们找货

免费人工找货