0% found this document useful (0 votes)
384 views3 pages

PLL Synthesizer Control Programs

This document provides code examples for loading frequency division ratios into synthesizer ICs using a PIC microcontroller. The code samples are written in assembler and are intended to control a 433 MHz receiver with a 70 MHz intermediate frequency and 12.8 MHz crystal oscillator. The code should work on newer PICs with minor changes. It loads the division ratios into the synthesizer chip serially after the microcontroller wakes from sleep. Remarks in the code are currently in Finnish.

Uploaded by

zequinha2002
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
384 views3 pages

PLL Synthesizer Control Programs

This document provides code examples for loading frequency division ratios into synthesizer ICs using a PIC microcontroller. The code samples are written in assembler and are intended to control a 433 MHz receiver with a 70 MHz intermediate frequency and 12.8 MHz crystal oscillator. The code should work on newer PICs with minor changes. It loads the division ratios into the synthesizer chip serially after the microcontroller wakes from sleep. Remarks in the code are currently in Finnish.

Uploaded by

zequinha2002
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 3

PIC16F84 synthesizer control programs

for MB1501, MB1502 and LMX1501 frequency synthesizer ICs by Jouni Verronen, OH8RO PIC prosessors have become very popular control devices. One particularly useful feature is the flash program memory, which is electrically erasable. So you can have reprogram-compile-load-test-erase cycles in very svift repetition. These two assembler sources are examples of code for loading division ratios serially to a synthesizer IC. They are for a 433 MHz RX with 70 MHz IF 12.8 MHz xtal oscillator and VCO above the signal frequency. The code should work in newer processors as 16F870 and 16F628 with minor changes. one channel version fsyn701.asm multichannel version fsyn70v.asm - one channel of eight can be selected by grounding the corresponding B-port pin by a rotary switch. The prosessor goes to sleep after loading the synthesizer, new loading with reset. Remarks in the code are in Finnish thus far. As to the hardware there is nothing fancy needed exept the standard circuit with RCclock (8k2 / 82p) and reset. A good starting point in PICs is the material by David Tait, which is found at various sites in the net. On division ratios
The reference frequency to the phase detector is fo / R. fo is the frequency of the reference xtal oscillator. VCO frequency fv = Ntot * fo / R = ( N * 128 + A ) * fo / R The main division ratio Ntot is loaded in N and A components. The values can be in the range: R : A : N : 8...16383. 0...127 16...2047

For R and N two 8 bits words must be used in 16F84 as they can be more than 255. These are related as:

R = 256 * Ry + Ra N = 256 * Ny + Na

and

To calculate the components: Ny = int(N/256) Na = N - 256 * Ny Ry = int(R/256) Ra = R - 256 * Ry

These numbers are loaded in the following order, msb first :


0 Ry Ra 1 Ny Na A 0 prescaler bit, 128/129 6 bits 8 bits control bit, was R 3 bits 8 bits 7 bits control bit, were N,A

Let's calculate one example:


fo = 12.8 MHz fi = 70 MHz fs = 434.750 MHz If we choose channel spacing = phase det.reference as 25 kHz, R = 12800 / 25 = 512 => => Ry = 2 Ra = 0

then

Now VCO is above: fv = fs + fi = 434.750 MHz + 70 MHz = 504.750 MHz Ntot = 504750 / 25 = 20190 fv = Ntot * 25 kHz = (N * 128 + A) * 25 kHz Ntot / 128 = 20190 / 128 = 157.73 A = 20190 - 157 * 128 = 94 Ny = 0 Na = 157 => N = 157

These numbers are in desimal form in the assembler code and can be edited. Back to the FrontPage

You might also like