5.3 Example: Deriving Si549 Divider Settings for 156.75 MHz Output
The general process of deriving divider values for a specific output frequency is outlined in the previous section and now will be used in
this example. To reiterate, all calculations must be done while observing divider limits and valid VCO frequency range limits for your
device. In this example, the device is Si549 and with a desired output frequency of 156.75 MHz, the speed grade required will be “C” or
better. (One important note: All divider and register settings derived for any speed grade will work without modification for all faster
speed grades on the same base part number device.)
Example VB code that implements the following divider calculation process is given in 5.8 Si549 Frequency Planner VB Code
and can be used for implementing any supported output frequency.
Step 1: Find the valid theoretical lower limit of the total output divider (HSDIV*LSDIV) based on the desired output frequency and low-
est valid VCO frequency. This will bias the divider solution to the lowest possible VCO frequency since this will provide the best per-
formance solution.
Given the valid Si549 VCO range is 10.8000 GHz to 12.1097 GHz, the minimum theoretical values for (HSDIV * LSDIV) for the example
156.75 MHz output frequency are given in Equation 3:
Minimum (HSDIV*LSDIV) = (10.8000 GHz / 156.75 MHz) = 68.89952…
Step 2: Find valid LSDIV divisor value given minimum (HSDIV*LSDIV) from step 1. For best performance, preference should be given
to implementation of the total output divider (HSDIV*LSDIV) using HSDIV with LSDIV divide ratio = 1, if possible. Use LSDIV divide
ratios > 1 only if HSDIV alone cannot implement the required output divider. Since the total (HSDIV*LSDIV) value of 68.8995… is less
than the HSDIV maximum divider value of 2046, the LSDIV divide ratio value will be 1, which corresponds to a LSDIV register setting
of 0, since the LSDIV divider can only be a power of 2 value (see Table 5.2 Additional LSDIV and HSDIV Divider Restrictions on page
13 for valid LSDIV settings).
LSDIV divide ratio = 1, therefore LSDIV register value = 0
Step 3: Find HSDIV divisor value. Given LSDIV = 1, HSDIV must implement 68.8995… or greater. Since HSDIV is an integer divider,
the next greatest integer is 69. But, checking valid HSDIV values when LSDIV divide ratio = 1, we see 69 is NOT valid since it is greater
than 33 and an odd value. This means the next greater integer value must be used, which is 70 (now even value). Note that 68 would
not be valid since 68 is less than 68.8995… and would result in a VCO frequency below the lower VCO frequency limit.
HSDIV divide ratio = 70, which gives HSDIV register value = 70 decimal (or hex value = 0x46)
Step 4: Calculate a valid VCO frequency and corresponding floating point FBDIV value. Given the calculated output divider value
(HSDIV*LSDIV) = 70, the VCO frequency must be set to (156.75 MHz * 70) = 10.9725 GHz. Note that 10.9725 GHz is indeed within the
valid VCO frequency range per Table 5.3 Si549 Speed Grades, Crystal Frequency, and VCO Range Limits on page 13.
Fvco = 10.9725 GHz
Step 5: Calculate the FBDIV value necessary to provide a 10.9725 GHz Fvco using a 55.05 MHz crystal as reference (Si549 device).
The floating point FBDIV value required to attain 10.9725 GHz with a 55.05 MHz crystal reference can be calculated as follows:
FBDIV (float) = 10.9725 GHz / 55.05 MHz = 199.318801089918
Step 6: Format each divider value into the required register format. LSDIV and HSDIV are simply binary values and can be directly
used. FBDIV must first be put into 11.32 fixed point format. Converting the floating point FBDIV value into the 11.32 fixed point hex
value required by the Si549 is done as follows:
Integer value = 199 decimal. Convert 199 to 11 bit hex = 0x0C7. This is FBINT.
Fractional value = 0.318801089918. Multiply fractional value by 2^32 = 1369240255.12805. Now extract only the integer part of the
result which is 1369240255. Convert 1369240255 to 32 bit hex = 0x519CF2BF . This is FBFRAC.
The resulting 11.32 fixed point hex number is therefore:
FBDIV = FBINT.FBFRAC = 0x0C7519CF2BF
Si549 Data Sheet
Configuring Si549 Output Frequency via I2C
silabs.com | Building a more connected world. Rev. 1.0 | 16