5.5.6.2.3 D-PHY PLL Control Operation
The D-PHY includes a fully programmable PLL, enabling a flexible lane bit rate value. The generated clock frequency (fout) is a function of the input reference frequency and of the multiplication and division ratios. It can be determined as follows:
Where:
- M = feedback multiplication ratio
- N = input frequency division ratio
- fref = frequency of the main crystal oscillator. fref = 24 MHz.
Note that the following limit applies:
The PLL output clock (with frequency fout) is the full-rate clock used for bit serialization. A 1000 Mbps bit rate on the data lanes assumes PLL output frequency to be equal to 1000 MHz.
The D-PHY also generates the lanebyteclk clock signal with a frequency of fout/8.
The PLL output frequency ranges are selected from the following table:
Ranges (Mbps) | PLL Output Frequency Range (MHz) |
---|---|
000 | 80-200 |
001 | 200-300 |
010 | 300-500 |
011 | 500-700 |
100 | 700-900 |
101 | 900-1000 |
Some combinations of N and M are not allowed, since they violate the limits of operation of the PLL output frequency or the minimum allowed comparison frequency. Due to the use of a “by 2 pre-scaler” the range of the feedback multiplication value M is limited to even division numbers.
To ensure proper operation of the PLL, the loop bandwidth should be configured depending on the selected frequency. The control over the Charge Pump (CP) current (ICPCTRL[3:0]), the Low-Pass Filter (LPF) characteristics (LPFCTRL[5:0]), and VCO control signals (VCORANGE and VCOCAP) is granted. The table below presents the correspondence.
PLL Output Frequency Range (MHz) | VCORANGE | ICPCTRL | LPFCTRL | VCOCAP |
---|---|---|---|---|
80-110 | 000 | 0100 | 010000 | 00 |
110-150 | 1000 | 001000 | 00 | |
150-200 | 1100 | 001000 | 00 | |
200-250 | 001 | 1100 | 001000 | 00 |
250-300 | 0010 | 001000 | 00 | |
300-400 | 010 | 0101 | 001000 | 00 |
400-500 | 0101 | 000001 | 00 | |
500-600 | 011 | 0110 | 010000 | 00 |
600-700 | 0110 | 000100 | 00 | |
700-900 | 100 | 0110 | 000100 | 00 |
900-1000 | 101 | 0111 | 010000 | 00 |
To configure D-PHY PLL, follow the steps below in conjunction with the procedure in General D-PHY Control Operation:
- Configure the VCO parameters with the test code 0x10 and data as follows:
- Bit 7:
0: VCO range is programmed with the default values for the corresponding hsfreqrange
1: VCO range is programmed with bits 5:3
- Bit 6: Reserved
- Bits 5:3: VCO range control (vcorange)
- Bits 2:1: VCO internal capacitance control (vcocap)
00: Default capacitance
01: Low capacitance (four times lower than the default value)
10: High capacitance (double the default value)
11: Not allowed
- Bit 0: Reserved
- Bit 7:
- Configure PLL Control with test code 0x11 and data icpctrl.
- Configure PLL Control with test code 0x12 and data as follows:
- Bit 7: Bypass CP default values
0: vcocap is programmed with the default values for the corresponding hsfreqrange
1: vcocap is programmed with bits 3:0 using test code 0x11
- Bit 6: Bypass LPF default values
0: LPF is programmed with the default values for the corresponding hsfreqrange
1: LPF is programmed with bits 5:0
- Bit 5:0: Loop filter control (lpfctrl)
000000: Loop Filter resistor is 18kΩ
000001: Loop Filter resistor is 15.6kΩ
000010: Loop Filter resistor is 15kΩ
000100: Loop Filter resistor is 14.4kΩ
001000: Loop Filter resistor is 12.8kΩ
010000: Loop Filter resistor is 11.4kΩ
100000: Loop Filter resistor is 10.5kΩ
- Bit 7: Bypass CP default values
- Enable N and M values with test code 0x19 and data as follows:
- Bits 7:6: Reserved
- Bit 5: Bypass the PLL loop divider default values
0: PLL loop divider is programmed with the default values for the corresponding hsfreqrange
1: PLL loop divider is programmed using the test code 8'h18 (PLL Loop Divider Ratio)
- Bit 4: Bypass PLL input divider default values
0: PLL input divider is programmed with the default values for the corresponding hsfreqrange
1: PLL input divider is programmed using test code 8'h17 (PLL Input Divider Ratio)
- Bits 3:0: Reserved
- Configure PLL Input Divider Ratio (N) with test code 0x17 and data assigned to N-1
- Configure PLL Loop Divider Ratio (M) with test code 0x18 and data as
follows:
For m = M-1:
- Data bit 7: Bit Field Selector
- When data bit 7 is 0, LSBs are accessed:
- data bits 6:5: Reserved
- data bits 4:0: m[4:0]
- When data bit 7 is 1 : MSBs are accessed:
- data bits 6:4: Reserved
- data bits 3:0: m[8:5]
- When data bit 7 is 0, LSBs are accessed:
- Data bit 7: Bit Field Selector