## Choosing "pull" value for the Si5351 VCXO for APRS

When configuring the VCXO frequency on the Si5351b, there is a register setting for the "Pull range".  It is described as follows in Silicon Labs publication AN619 "Manually Generating an Si5351 Register Map":

Set VCXO_Param register value according to the equation below. Note that 1.03 is a margining factor to ensure the full desired pull range is achieved. For a desired pull-range of +/– 30 ppm, the value APR in the equation below is 30, for +/– 60 ppm APR is 60, and so on.
This sounds a lot like the FM Deviation to me, though I wish they used those words.

For APRS, the deviation for the 2200hz tone should be about 3.5khz.  The 1200hz tone will be proportionally lower.  So, I need to do some math:

Desired pull: 3,500 hz.
APRS frequency: 144.390 Mhz.

PPM = 3,500 / 144.390 = 24.2 .  Rounded to an integer, it's "24".

The Etherkit Si5351Arduino library, which I've ported to the STM32CubeMX environment, claims that the PPM value must be in the range of 30 .. 240.  I guess I'll set it to "30" and see how it goes.

Since the library does all the number crunching to calculate the register values, I don't need to calculate them myself..

### Correction

Subsequent to posting this blog, I realized that I really want to set the PPM for 5 khz deviation (standard FM), but only modulate my signal to 3-3.5 khz.  Redoing the math:  PPM = 5000 / 144.390 = 34.6, rounded to 35.