PLL PIC

A project where I'm using a LMX2331 Phase Lock Loop device controlled by a PIC.

This is work in progress. I'm using a PICDEM 2 PLUS demo board to drive the PLL chip. The PIC I'm using is a 16F877, perhaps a bit of an overkill.

The Source

LMX2331.asm This has the interesting stuff specific to the phase lock loop. The other two files are includes that come with the demo board. There's p16lcd.asm that interfaces with the LCD; and p16math.asm that has some maths routines.

Here's a hex file ready to program a PICDEM 2 PLUS demo board.

Background

I want to drive my Software Defined Radio (SDR) with any old frequency, not a fixed frequency derived from a crystal. I don't want to commit a signal generator to the task full time.

Manual

How to use the interface.

Press S2 (RA4) to count up through the programmed channels. Pressing S3 (RB0) counts down.

16 preset channels. (Stored in the PIC's non volatile RAM.)

Reference crystal 8.4MHz.

Tunes to 25kHz resolution.

Uses IF output; RF section is unused.

LMX2331 connections

RB1 (LED D3) Pin 34 Data

RB2 (LED D4) Pin 35 Latch Enable

RB3 (LED D5) Pin 36 Clock

Programming a channel

Select a channel. Here I've chosen 15.

It has an unlikely frequency pre-set. The attached VCO won't have a hope locking - the VCO is set to work in the VHF band II, part of our RDS experiments.

I want channel 15 to be preset to 106MHz. Here's how...

Press both buttons for 1s.

The top line will change to read the programming step frequency - 40MHz

Press S2 to step up by 40MHz, S3 to step down.

Getting closer! As before press both buttons for 1s.

The top line will change to read the programming step frequency - 1MHz

Press S2 to step up by 1MHz, S3 to step down.

We're getting even closer! As before press both buttons for 1s.

Press S2 to step up by 25kHz, S3 to step down.

OK - As before press both buttons for 1s.

Channel 15 is now programmed to 106MHz.

nick@anotherurl.com October 2006