The DPLL_PCIE_REF factors must be calculated based on the required input and output frequencies, keeping the PLL internal reference frequency (REFCLK) in the appropriate range (0.62 to 2.5 MHz).
The values that must be considered during programming are:
- The internal reference frequence REFCLK. Must be kept in the range of 0.62 to 2.5 MHz. The value is calculated as REFCLK = CLKINP/(N+1).
- The Sigma-Delta divider to ensure optimum jitter performance. Must ensure that the sigma-delta operation frequency is as close as possible, but less than 250MHz for optimal performance. The value is calculated as SD = CEILING([(M)/(N+1)] × CLKINP/250) where CLKINP is the input clock of the DPLL in MHz.
- The output clock CLKOUTLDO frequency. This frequency must be programmed to 100 MHz fixed value for correct PCIe operation. The value is calculated as CLKOUTLDO = [CLKINP×M/(N + 1)]/M2
- The DCO frequency range must be set according to needed DCO output clock DCOCLK = CLKINP × [M/(N+1)]. The value of the SELFREQDCO[2:0] DPLL input selects the DCO internal oscilator ICO1 or ICO2 as follows:
- If 750 < DCOCLK < 1500, SELFREQDCO[2:0] must be set to 0b010 (HS2 mode, ICO2 selected)
- If 1250 < DCOCLK < 2500, SELFREQDCO[2:0] must be set to 0b100 (HS1 mode, ICO1 selected)
- All other combinations of SELFREQDCO[2:0] are reserved
The following registers set the requred parameters values for the DPLL_PCIE_REF.
- PRCM.CM_CLKSEL_DPLL_PCIE_REF[7:0] DPLL_DIV - sets dvider N, input clock divider factor (0 to 255) (actual division factor is N+1)
- PRCM.CM_CLKSEL_DPLL_PCIE_REF[21] DPLL_SELFREQDCO bit sets DCO frequency range.
- DPLL_SELFREQDCO should be set to 0b0 if 750 MHz < CLKDCOLDO [MHz] < 1500 MHz (SELFREQDCO[2:0] set to 0b010)
- DPLL_SELFREQDCO should be set to 0b1 if 1250 MHz < CLKDCOLDO [MHz] < 2500 MHz (SELFREQDCO[2:0] set to 0b100).
- PRCM.CM_CLKSEL_DPLL_PCIE_REF[19:8] DPLL_MULT - sets multiplier M, multiplier factor (2 to 4095).
- PRCM.CM_DIV_M2_DPLL_PCIE_REF[6:0] DIVHS - sets divider M2, output clock post-divider factor (1 to 127).
- PRCM.CM_CLKSEL_DPLL_PCIE_REF[31:24] DPLL_SD_DIV - sets Sigma-Delta divider SD, must be set by software to ensure optimum jitter performance.
To maintain proper PCIe operation of the PCIe PHY submodule a set of parameters values are recomended. The DCO frequency of the PCIe reference DPLL is not used directly, so it can be changed to optimize jitter, power, or lock time. Only the divided-by-M2 CLKOUTLDO output clock is a required. The tables below give ratios that have been verified to meet PCIe jitter requirements. Other ratios combinations exist, to obtain a lower DCO frequency and lower power, but they should be checked against the PCIe standard.
Table 28-53 DPLL_PCIE_REF Recommended ConfigurationCLKINP (MHz) | N | N+1 | REFCLK (MHz) | M | DCOCLK (GHz) | DPLL_SELFREQDCO | M2 | CLKOUTLDO (MHz) |
---|
20 | 9 | 10 | 2 | 750 | 1.5 | 0 | 15 | 100 |
Figure 28-21 shows the programming sequence for DPLL_PCIE_REF.
Note: - The sequence applies to the CLKOUTLDO output of the DPLL_PCIE_REF.
- CLKOUTLDO output frequency of the PLL_PCIE_REF should be programmed to 100 MHz, for the proper PCIe operation.
Table 28-54 summarizes the PRCM registers for the DPLL_PCIE_REF programming sequence.
Table 28-54 Register Call Summary for DPLL_PCIE_REF Programming SequenceRegister Name | Register Name | Register Name |
---|
CM_CLKSEL_DPLL_PCIE_REF | CM_DIV_M2_DPLL_PCIE_REF | CM_CLKMODE_DPLL_PCIE_REF |