DSC2XXXProgrammingGuide_3

DSC21XX & DSC22XX Programming Guide
Rev 1.7
DSC21XX & DSC22XX
Low-Jitter I2C/SPI Programmable
Multiple-Output Oscillators
Programming Guide for USB-910H
Evaluation Board
All Rights Reserved. No part of this document may be copied or reproduced in any form without the prior written permission of Discera, Inc. Discera Inc. may update or make
changes to the contents, products, programs or services described at any time without notice. This document neither states nor implies any kind of warranty, including, but not
limited to implied warranties of merchantability or fitness for a particular use.
Page 1
DSC21XX & DSC22XX Programming Guide
Rev 1.7
1. Device Architecture
The DSC21XX & DSC22XX families of low jitter, configurable single and dual output oscillators
consist of a MEMS resonator and a high performance PLL IC, programmable via I2C/SPI interface.
This document will explain how to program the output frequencies, CMOS drive strength, and
power control modes of the devices using the USB-910H Evaluation Board.
The basic block diagram of the dual and single output oscillators including the integrated PLL and
clock distribution path are shown in Fig. 1. These oscillators are equipped with a high performance
fractional-N PLL that locks an integrated high frequency VCO to the internal MEMS oscillator. The
output of the VCO is then divided down through independent even integer dividers, with divide
values ranging from 4 to 254, to generate the desired output clock frequencies. Each clock output
is buffered by a low-noise output driver, available in CMOS, LVPECL, LVDS, and HCSL formats.
M’
FVCO
FREF
:M
OE
:2
FOUT
: N.F
Fig. 1 a) Single output oscillator
O1E
FVCO
FREF
: M1
:2
M2’
: N.F
: M2
FOUT1
O2E
:2
FOUT2
b) Dual output oscillator
Figure 1. Block diagrams of single and dual output DSC20XX oscillators
To facilitate system level board testing or to reduce consumed power, the output drivers can be
enabled or disabled, independently or as a pair, using I2C/SPI interface. Pin 1 acts as a master
enable pin and the oscillator has to be enabled (pin 1 high) before any programming can impact the
output drivers. The DSC21XX and DSC22XX can, also, be programmed into and out of a low current
mode (Hibernate).
2. Default Conditions
Upon power-up, the initial output frequency configuration is controlled by an internal preprogrammed memory (OTP). This memory stores all coefficients required by the PLL for two
independent default frequencies for a single output oscillator, or two frequency combinations for a
dual output version. The control pin (FS) selects which default frequency is the initial setting. After
All Rights Reserved. No part of this document may be copied or reproduced in any form without the prior written permission of Discera, Inc. Discera Inc. may update or make
changes to the contents, products, programs or services described at any time without notice. This document neither states nor implies any kind of warranty, including, but not
limited to implied warranties of merchantability or fitness for a particular use.
Page 2
DSC21XX & DSC22XX Programming Guide
Rev 1.7
power-up, a new output frequency configuration can be programmed using I2C/SPI interface.
Standard default frequencies are described in the datasheets. Discera supports customer defined
versions of the DSC2XXX.
The CMOS output drive strength, which is programmable using 3 control bits, is set by default to
maximum strength or the value of 111. After power-up, a new CMOS drive-strength setting can be
programmed using I2C/SPI interface.
3. Programming Clock Frequencies
This section describes the PLL variables and registers used to configure the oscillator to produce the
desired output frequencies.
As shown in Fig. 1, several parameters need to be programmed to determine the internal VCO and
the output clock frequencies. The PLL consists of a feedback divider with a fractional value
described as N.F, where N (7-bit value) and F (17-bit value) are the integer and fractional portions
of the divider value, respectively. The PLL is then followed by M divider (8-bit value) integer divider
and a final divide-by-2 stage to ensure 50% output clock duty cycle. The combination of these two
dividers creates an even integer M’ divider block with divider value range of 4 to 254. It must be
noted that M must have a minimum value of 2. To summarize, the output frequency is specified by
three programmable values, N, F & M.
a. Calculation of N,F & M for Single-Output Oscillator (DSC21X0 & DSC22X0)
To optimize performance of the PLL, it is desirable to program the internal PLL to the lowest
possible valid VCO frequency that can generate the desired output clock frequency. The minimum
valid VCO frequency for the device is 1135MHz while the optimum VCO frequency range is from
1175 to 1700 MHz. Below is an example illustrating how to calculate the required N, F & M values.
Example:
Desired Clock Frequency: FOUT = 25 MHz
Lowest Optimum VCO Frequency: FVCO = FOUT x M’ = 25 x 48 = 1200 MHz
M = M’ ÷ 2 = 24
Once the VCO frequency is determined, the N.F value can be easily calculated by dividing the VCO
frequency by the input reference frequency from the MEMS oscillator, which is calibrated in the
fabrication process to 18 MHz.
N.F = FVCO ÷ FREF = 1200 MHz ÷ 18 MHz = 66.666667
N = 66, F = 0.666667
Since F is described using a 17-bit register, we need to calculate it as the numerator value that will
create our desired fraction with (217 – 1) in the denominator. This number will then need to be
rounded to the nearest integer value.
F [16:0] = 0.666667 x (217 – 1) = 87380.71  F [16:0] = 87381 (rounded)
All Rights Reserved. No part of this document may be copied or reproduced in any form without the prior written permission of Discera, Inc. Discera Inc. may update or make
changes to the contents, products, programs or services described at any time without notice. This document neither states nor implies any kind of warranty, including, but not
limited to implied warranties of merchantability or fitness for a particular use.
Page 3
DSC21XX & DSC22XX Programming Guide
Rev 1.7
The final step before programming the values into the appropriate registers is to convert M, N, and
F to the appropriate binary or hexadecimal values.
M [7:0] = 24dec = 0001 1000 bin = 18hex
N [6:0] = 66dec = 1000 0101 bin = 85hex
F [16:0] = 87381dec = 1 0101 0101 0101 0101bin = 15555hex
We now load the resulting values into the appropriate registers to program the DSC21X0 or
DSC22X0 to the desired output clock frequency. Table 1 describes the register map for the
variables described above.
Table 1. Register map for the single-output DSC2XXX oscillator
Registers
0x13
0x14
0x15
0x16
7
6
5
4
3
2
1
0
F[7]
F[6]
F[5]
F[4]
F[3]
F[2]
F[1]
F[0]
F[15] F[14] F[13] F[12] F[11] F[10]
F[9]
F[8]
N[6]
N[5]
N[4]
N[3]
N[2]
N[1]
N[0]
F[16]
M1[7] M1[6] M1[5] M1[4] M1[3] M1[2] M1[1] M1[0]
Table 2 provides a list of commonly used output clock frequencies, corresponding PLL variables,
and register parameters that need to be programmed into the oscillator via I2C/SPI interface.
Table 2. Common clock frequencies and corresponding parameters
Freq
(MHz)
M
N
F
FVCO
(MHz)
19.2
31
66
0.133333
24
25
66
Registers (address & value in HEX)
0x13
0x14
0x15
0x16
1190.4000
44
44
84
1F
0.666667
1200.0000
55
55
85
19
25
24
66
0.666667
1200.0000
55
55
85
18
33.3333
18
66
0.666666
1200.0000
55
55
85
12
40
15
66
0.666667
1200.0000
55
55
85
15
48
13
69
0.333333
1248.0000
AA
AA
8A
0D
50
12
66
0.666667
1200.0000
55
55
85
0C
54
11
66
0
1188.0000
00
00
84
0B
62.5
10
69
0.444444
1250.0000
8E
E3
8A
0A
66.6666
9
66
0.666666
1200.0000
55
55
85
09
74.25
8
66
0
1188.0000
00
00
84
08
75
8
66
0.666667
1200.0000
55
55
85
08
77.76
8
69
0.12
1244.1600
71
3D
8A
08
100
6
66
0.666667
1200.0000
55
55
85
06
106.25
6
70
0.833333
1275.0000
AA
AA
8D
06
125
5
69
0.444444
1250.0000
8E
E3
8A
05
133.333
5
74
0.074074
1333.3333
ED
25
94
05
148.5
4
66
0
1188.0000
00
00
84
04
150
4
66
0.666667
1200.0000
55
55
85
04
155.52
4
69
0.12
1244.1600
71
3D
8A
04
All Rights Reserved. No part of this document may be copied or reproduced in any form without the prior written permission of Discera, Inc. Discera Inc. may update or make
changes to the contents, products, programs or services described at any time without notice. This document neither states nor implies any kind of warranty, including, but not
limited to implied warranties of merchantability or fitness for a particular use.
Page 4
DSC21XX & DSC22XX Programming Guide
156.25
4
69
0.444444
1250.0000
Rev 1.7
8E
E3
8A
04
200
3
66
0.666667
1200.0000
55
55
85
03
212.5
3
70
0.833333
1275.0000
AA
AA
8D
03
400
2
88
0.888889
1600.0000
1C
C7
B1
02
b. Calculation of N,F & M for Dual-Output Oscillator (DSC21XX & DSC22XX)
Calculation of the PLL parameters (N, F & M) for the dual output oscillator devices is very similar to
that described in the previous section. However, the oscillator will now need to simultaneously
generate two output clock frequencies from a single VCO frequency. This constraint alters the
computation of the common VCO frequency. We need a valid VCO frequency that when divided by
two independent even integer values, each ranging from 4 to 254, will generate both desired
output clock frequencies. This analysis is best performed with an iterative approach using a
spreadsheet. Please refer to Discera’s DSC21XX Configuration Calculator spreadsheet (available on
the Discera website at
(www.discera.com/datasheets/DSC2XXX_Configuration_Calculator.xlsx).
Example:
Desired Clock Frequency 1: FOUT1 = 125 MHz
Desired Clock Frequency 2: FOUT2 = 25 MHz
Lowest Common VCO Frequency (from spreadsheet): FVCO = 1250 MHz
Once the VCO frequency is determined, all other parameters can be easily calculated as shown in
previous section.
M1’ = FVCO ÷ FOUT1 = 1250 MHz ÷ 125 MHz = 10
M1 = M1’ ÷ 2 = 5
And
M2’ = FVCO ÷ FOUT2 = 1250 MHz ÷ 25 MHz = 50
M2 = M2’ ÷ 2 = 25
N.F = FVCO ÷ FREF = 1250 MHz ÷ 18 MHz = 69.444444
N = 69, F = 0.444444
Since F is described using a 17-bit register, we need to calculate it as the numerator value that will
create our desired fraction with (217 – 1) as the denominator. This number will then need to be
rounded to the nearest integer value.
F [16:0] = 0.444444 x (217 – 1) = 58253.71  F [16:0] = 58254 (rounded)
The final step before programming the values into the appropriate registers is to convert the M, N,
and F to the appropriate binary or hexadecimal values.
M1 [7:0] = 5dec = 0000 0101 bin = 05hex
M2 [7:0] = 25dec = 0001 1001 bin = 19hex
N [6:0] = 69dec = 1000 1010 bin = 8Ahex
F [16:0] = 58254dec = 0 1110 0011 1000 1110bin = 0E38Ehex
All Rights Reserved. No part of this document may be copied or reproduced in any form without the prior written permission of Discera, Inc. Discera Inc. may update or make
changes to the contents, products, programs or services described at any time without notice. This document neither states nor implies any kind of warranty, including, but not
limited to implied warranties of merchantability or fitness for a particular use.
Page 5
DSC21XX & DSC22XX Programming Guide
Rev 1.7
We now load the resulting values into the appropriate registers to program the DSC21XX or
DSC22XX to our desired output clock frequencies. Table 3 describes the register map for the
variable described above.
Table 3. Register map for the dual-output DSC21XX & DSC22XX oscillators
Registers
0x13
0x14
0x15
0x16
0x17
7
6
5
4
3
2
1
0
F[7]
F[6]
F[5]
F[4]
F[3]
F[2]
F[1]
F[0]
F[15] F[14] F[13] F[12] F[11] F[10]
F[9]
F[8]
N[6]
N[5]
N[4]
N[3]
N[2]
N[1]
N[0]
F[16]
M1[7] M1[6] M1[5] M1[4] M1[3] M1[2] M1[1] M1[0]
M2[7] M2[6] M2[5] M2[4] M2[3] M2[2] M2[1] M2[0]
Table 4 provides a list of commonly used output clock frequency combinations, corresponding PLL
variables, and register values that need to be programmed into the oscillator via I2C/SPI interface.
Contact factory for frequency pairs not included in the table below.
Table 4. Common clock frequency pairs and corresponding parameters
Registers (address & value in HEX)
Freq1
(MHz)
Freq2
(MHz)
M1
M2
N
F
FVCO
(MHz)
0x13
0x14
0x15
0x16
0x17
27
24
24
27
72
0
1296.0000
00
00
90
18
1B
27
25
25
27
75
0
1350.0000
00
00
96
19
1B
33.3333
25
18
24
66
0.66666
1199.9999
54
55
85
12
18
40
25
15
24
66
0.66667
1200.0000
55
55
85
0F
18
50
25
12
24
66
0.66667
1200.0000
55
55
85
0C
18
75
25
8
24
66
0.66667
1200.0000
55
55
85
08
18
100
25
6
24
66
0.66667
1200.0000
55
55
85
06
18
106.25
25
8
34
94
0.44444
1700.0000
8E
E3
BC
08
22
125
25
5
25
69
0.44444
1250.0000
8E
E3
8A
05
19
150
25
4
24
66
0.66667
1200.0000
55
55
85
04
18
156.25
25
4
25
69
0.44444
1250.0000
8E
E3
8A
04
19
212.5
25
4
34
94
0.44444
1700.0000
8E
E3
BC
04
22
40
33.3333
20
24
88
0.88889
1600.0000
1C
C7
B1
14
18
48
40
15
18
80
0
1440.0000
00
00
A0
0F
12
100
75
6
8
66
0.66667
1200.0000
55
55
85
06
08
50
106.25
17
8
94
0.44444
1700.0000
8E
E3
BC
11
08
50
125
15
6
83
0.33333
1500.0000
AA
AA
A6
0F
06
148.5
74.25
5
10
82
0.5
1485.0000
00
00
A5
05
0A
156.25
125
4
5
69
0.44444
1250.0000
8E
E3
8A
04
05
c. Executing a Frequency WRITE for (DSC21XX & DSC22XX)
When executing a frequency WRITE to the DSC21XX & DSC22XX devices it is required to place the
device in Hibernate by setting (0x10h<5>), execute the frequency WRITE to addresses x13-x17h,
then bring the device out of Hibernate by clearing (0x10h<5>). Allow a 100 usec delay after
applying the Hibernate signal before taking the subsequent Read / Write activity with the device.
All Rights Reserved. No part of this document may be copied or reproduced in any form without the prior written permission of Discera, Inc. Discera Inc. may update or make
changes to the contents, products, programs or services described at any time without notice. This document neither states nor implies any kind of warranty, including, but not
limited to implied warranties of merchantability or fitness for a particular use.
Page 6
DSC21XX & DSC22XX Programming Guide
Rev 1.7
4. Programming CMOS Output Drive Strength & Output Control modes
As describes earlier, drive strength for CMOS output drivers can be optimized via I2C/SPI interface
to help reduce EMI and improve performance. Each CMOS output driver has 8 drive strength
settings (3 bits) and can also be independently enabled (logic high) or disabled (logic low) by
writing into the corresponding bit, O1E for output 1 and O2E for output 2. An enabled output
passes the generated output while a disabled output is in its tri-state condition (high impedance).
Please note that oscillator has to be already enabled via ENABLE pin prior to any serial
programming. Please refer to the datasheet of the specific DSC21XX device for the typical rise/fall
times for the different output strength settings.
Table 5 describes the output control register map. Register bits [7:4] are only applicable to dualoutput oscillators and can be ignored when programming a single-output oscillator.
Table 5. Register map for CMOS output drive control
Registers
0x11
7
6
5
O2S[2] O2S[1] O2S[0]
4
O2E
3
2
1
O1S[2] O1S[1] O1S[0]
0
O1E
5. Hibernate (Low Current) Mode
Using serial programming, the DSC21XX or DSC22XX devices can be put into a low current mode to
save power. By programming the Hibernate bit (0x10<5>) to a high, the device will enter the low
current mode. During Hibernate, all outputs are in the tri-state condition and the PLL and oscillator
circuitry are powered down. Less than 100ua are consumed. Writing a 0 into the Hibernate bit
(0x10<5>) will return the device to normal operation.
6. I2C Bus Control Interface
The DSC21XX can be configured as a read/write slave device that conforms to Phillips I2C bus
specifications except a “general call”. The DSC21XX employs a three pin I2C bus configuration. A
Chip Select (Cs_bar) enables I2C communications with DSC21XX. The I2C bus transmits data and
clock with SDA and SCL. SDA and SCL are open-drain, that is the device can only drive these lines
low or leave them to float. The bus is controlled by a master device that generates the serial clock
SCL, controls bus access and generates the START and STOP conditions while the DSC21XX works
as a slave. When Cs_bar is low, the accessed device will respond to SDA and SCL. When Cs_bar is
high, the accessed device will not respond to I2C signals. The I2C slave interface follows the Philips
Fast Mode (400 KHz) format.
The DSC21XX uses standard I2C data structures and timing sequences. Because the DSC21XX
employs a three pin configuration where Cs_bar controls access to the device, any 7 bit slave
address can be used in the read or write commands with the exception of all bits equal 0. Figure 2
displays the I2C timing diagram and specification.
All Rights Reserved. No part of this document may be copied or reproduced in any form without the prior written permission of Discera, Inc. Discera Inc. may update or make
changes to the contents, products, programs or services described at any time without notice. This document neither states nor implies any kind of warranty, including, but not
limited to implied warranties of merchantability or fitness for a particular use.
Page 7
DSC21XX & DSC22XX Programming Guide
Rev 1.7
Figure 2 I2C Timing Diagram and Specification
PARAMETER
SYMBOL
MIN
MAX
SCL
tSCL
SET-UP Start
tSU_STA
160
ns
Hold Time Start
tHD_STA
160
ns
Low Period SCK
tLOW
160
ns
High Period SCK
tHIGH
160
ns
Data set-up time
tSU_DAT
10
ns
Data Hold time
tHD_DAT
0
70
ns
Rise Time: SCL
trCL
10
40
ns
Fall Time: SCL
tfCL
10
40
ns
Rise Time: SDA
trDA
10
80
ns
Fall Time: SDA
tfDA
10
80
ns
Set-UP Stop
tSU_STO
160
3.4
UNIT
MHZ
ns
7. SPI Bus Control Interface
The DSC22XX can be used as a read/write slave device that conforms to SPI bus link protocol. The
DSC22XX employs the standard four pin SPI bus configuration. The SS (Chip Select) signal (Active
Low) enables communications with DSC22XX. The bus transmits full duplex synchronous data over
the MOSI (Master Out Slave In) and MISO (Master In Slave Out) pins. Data is clocked by SCLK.
MISO can be tri-stated (high impedance) to permit multiple devices to share the bus
The DSC22XX uses standard SPI data structures and timing sequences.
Figure 3 displays the SPI
timing diagram and specification.
Figure 3 SPI Timing Diagram and Specification
CLK
CS
DIN
DOUT
All Rights Reserved. No part of this document may be copied or reproduced in any form without the prior written permission of Discera, Inc. Discera Inc. may update or make
changes to the contents, products, programs or services described at any time without notice. This document neither states nor implies any kind of warranty, including, but not
limited to implied warranties of merchantability or fitness for a particular use.
Page 8
DSC21XX & DSC22XX Programming Guide
Rev 1.7
PARAMETER
SYMBOL
MIN
MAX
SCLK
tSCL
Low Period SCLK
tLOW
25
ns
High Period SCLK
tHIGH
25
ns
DIN set-up time
tDS
10
ns
DIN Hold time
tDH
0
ns
SCLK fall to Dout valid
tDO
SCLK high to CS high Hold
tCSH1
22
ns
SCLK high to CS low Hold
tCSH0
0
ns
CS low to SCLK high Setup
tCSS0
10
ns
CS high to SCLK high Setup
tCSS0
5
ns
CS Pulse Width High
tCSS1
10
ns
20
22
UNIT
MHZ
ns
Figure 4 Example SPI Read Operation
SS
SCLK
MOSI
A6-0 ADDRESS
R=1
MISO
X - DON’T CARE
X - DON’T CARE
D7-0 @ ADDRESS
D7-0 @ ADDRESS+1
Figure 4 Example SPI Read Operation
SS
SCLK
MOSI
A6-0 ADDRESS
W=0
D7-0 @ ADDRESS
D7-0 @ ADDRESS + 1
MISO
DISCERA, Inc.
●
Phone: +1 (408) 432-8600
1961 Concourse Drive,
San Jose, California
95131
●
Fax: +1 (408) 432-8609 ● Email: [email protected]
●
●
USA
www.discera.com
All Rights Reserved. No part of this document may be copied or reproduced in any form without the prior written permission of Discera, Inc. Discera Inc. may update or make
changes to the contents, products, programs or services described at any time without notice. This document neither states nor implies any kind of warranty, including, but not
limited to implied warranties of merchantability or fitness for a particular use.
Page 9