Silicon ChipA Digital VFO with LCD Graphics Display - March 2008 SILICON CHIP
  1. Outer Front Cover
  2. Contents
  3. Publisher's Letter: High-definition TV in limbo until the Olympics
  4. Feature: How To Get Into Digital TV by Alan Hughes
  5. Review: Tevion TEV8200 HD Set-Top Box by Leo Simpson
  6. Feature: How To Solder Surface Mount Devices by Jim Rowe
  7. Project: 12V-24V High-Current DC Motor Speed Controller, Pt.1 by Mauro Grassi
  8. Feature: PICAXE VSM: It’s Time to Play; Pt.3 by Clive Seager
  9. Project: A Digital VFO with LCD Graphics Display by Andrew Woodfield, ZL2PD
  10. Feature: The I²C Bus: A Quick Primer by Jim Rowe
  11. Project: A Low-Cost PC-to-I²C Interface For Debugging by Jim Rowe
  12. Feature: Electric Flight by Ross Tester
  13. Vintage Radio: The batteries used to power vintage radios by Rodney Champness
  14. Project: One-Pulse-Per Second Driver For Quartz Clocks by Jim Rowe
  15. Book Store
  16. Advertising Index
  17. Order Form

This is only a preview of the March 2008 issue of Silicon Chip.

You can view 32 of the 104 pages in the full issue, including the advertisments.

For full access, purchase the issue for $10.00 or subscribe for access to the latest issues.

Articles in this series:
  • How To Get Into Digital TV (March 2008)
  • How To Get Into Digital TV (March 2008)
  • How To Get Into Digital TV, Pt.2 (April 2008)
  • How To Get Into Digital TV, Pt.2 (April 2008)
Items relevant to "12V-24V High-Current DC Motor Speed Controller, Pt.1":
  • PIC16F88-I/P programmed for the DC Motor Speed Controller [0910308A.HEX] (Programmed Microcontroller, AUD $15.00)
  • PIC16F88 firmware and source code for the 12-24V High Current Motor Speed Controller [0910308A.HEX] (Software, Free)
  • 12-24V High-Current Motor Speed Controller main PCB pattern (PDF download) [09103081] (Free)
  • 12-24V High-Current Motor Speed Controller display PCB pattern (PDF download) [09103082] (Free)
Articles in this series:
  • 12V-24V High-Current DC Motor Speed Controller, Pt.1 (March 2008)
  • 12V-24V High-Current DC Motor Speed Controller, Pt.1 (March 2008)
  • 12V-24V High-Current DC Motor Speed Controller, Pt.2 (April 2008)
  • 12V-24V High-Current DC Motor Speed Controller, Pt.2 (April 2008)
Articles in this series:
  • PICAXE VSM: The PICAXE Circuit Simulator! (January 2008)
  • PICAXE VSM: The PICAXE Circuit Simulator! (January 2008)
  • PICAXE VSM: The PICAXE Circuit Simulator, Pt.2 (February 2008)
  • PICAXE VSM: The PICAXE Circuit Simulator, Pt.2 (February 2008)
  • PICAXE VSM: It’s Time to Play; Pt.3 (March 2008)
  • PICAXE VSM: It’s Time to Play; Pt.3 (March 2008)
Items relevant to "A Digital VFO with LCD Graphics Display":
  • AT89C4051 firmware and source code for the Digital VFO with LCD Graphics Display [DDSFINAL.HEX] (Software, Free)
  • DDS VFO PCB pattern (PDF download) [06103082] (Free)
  • DDS VFO front panel artwork (PDF download) (Free)
Items relevant to "A Low-Cost PC-to-I²C Interface For Debugging":
  • Philips Universal Register Debugger software for the Low-Cost PC-to-I²C Debugging Interface (Free)
  • Low-Cost PC-to-I²C Interface for Debugging PCB pattern (PDF download) [04203081] (Free)
Items relevant to "One-Pulse-Per Second Driver For Quartz Clocks":
  • One Pulse Per Second Driver for Quartz Clocks PCB [04103081] (AUD $2.50)
  • 1pps Quartz Clock Driver PCB pattern (PDF download) [04103081] (Free)

Purchase a printed copy of this issue for $10.00.

A Digital VFO with Graphics Display This DDS VFO uses a widely available recycled Nokia cellular phone LCD to display analog and digital frequency readouts, text, and VFO status messages F or several years, I’ve wanted to build my own DDS (Direct Digital Synthesis) VFO (Variable Frequency Oscillator). Analog Devices makes one of the most popular ranges of DDS chips which digitally generate precise sine waves covering frequencies from practically “DC to daylight”; well, up to many hundreds of MHz. Some time ago I managed to obtain several samples but, for some time afterwards, that was as far as things went. I was just too busy with work and family to devote any time to the project. In addition, I couldn’t locate a suitable design to build. Practically all existing designs use one of the PIC microprocessor family. Others use several PIC microprocessors; yet others use a further large bunch of ICs to interface displays and keypad functions. With my microprocessor development tools all focused on the 8051 family – and being fundamentally of a contrary nature – I was determined to use an 8051 chip in my DDS VFO rather than mess about gearing up for another microprocessor, and keep the chip count minimal. Underlying this was a feeling that if I wrote my own software, I could customise it to suit my precise requirements and be better placed to develop one or two other DDS-based projects I have in mind. Of course, that naively assumes I’ll find the time to complete those new designs. Fig.1: the promise of things to come? The DDS VFO with its cellular phone “readout” mounted inside an HF transceiver the author is currently working on . . . 58  Silicon Chip siliconchip.com.au h LCD CLOCK fc by Andrew Woodfield ZL2PD ADDRESS COUNTER n bits SINEWAVE LOOKUP REGISTER DIGITAL TO ANALOG CONVERTER fOUT DIGITAL TO ANALOG CONVERTER fOUT Fig.3: basic Direct Digital Synthesis system. FIG 3: BASIC DIRECT DIGITAL SYNTHESIS SYSTEM PHASE ACCUMULATOR TUNING WORD M 24–48 bits n bit carry  n bits PHASE REGISTER 14–16 bits PHASE TO AMPLITUDE CONVERTER SYSTEM CLOCK fc Operator interface Let’s not forget the operator interface. Practically all existing designs use a standard 2 line x 20 character alphanumeric display. An earlier popular design used high current seven segment LED displays. The size of both of these displays and the limited information presented to the operator didn’t seem ideal to me. They certainly weren’t well suited for the small HF transceiver I’ve also been building. This led to another delay while I looked for alternative displays and a series of experiments with some small cheap, graphical LCD modules. These monochrome LCDs were used in many older cellular phones, as well as in some current low cost entry-level models. I built several small projects using one of the most commonly used Fig.2: the readout, from a Nokia cellular phone, is capable of displaying simple graphics . . . siliconchip.com.au Fig.4: a typical Direct Digital Synthesis system. FIG 4: TYPICAL DIRECT DIGITAL SYNTHESIS SYSTEM graphical LCDs, the Nokia 3310 LCD module. This LCD turned out to be very useful – It offers a 84 x 48 pixel display with a visible area of about 35mm x 25 mm. DDS Oscillators Direct digital synthesis (DDS) is a digital method to generate waveforms, usually sine waves. In contrast to the more common phase locked loop (PLL) approach which uses a voltage controlled oscillator, digital dividers and a phase detector to generate frequencies in defined steps, data stored in an internal DDS chip table is passed to a digital to analog (D/A) converter at a specific clock rate. If the table contains values equivalent to the amplitude of a sine wave, then a sinewave at a frequency related to the clock rate will be produced. One such basic DDS is illustrated in Fig.3. By changing the clock speed, a wide range of sinewave frequencies can be generated. If the clock is fast enough, frequencies can readily be generated across wide ranges, and at sub-Hz increments. The completely digital nature of the DDS oscillator and its ability to generate very fine frequency increments are the main advantages over PLLs. In practice, a DDS device uses the arrangement shown in Fig.4. The tuning word, which is usually 32 or 48 bits wide, is used to modify a phase accumulator. This outputs a 14-16 bit word for onward signal generation. With this approach and with a 32-bit tuning word, it is possible to generate more than 4 billion specific frequencies. For more information on DDS chips, the introductory documents on the Fig.5: and here it’s shown mounted on the back of the PC board, along with the six control switches. There are minor differences to the correct layout shown in Fig.8. March 2008  59 bands. The LCD modules the current operating frequency and mode of the VFO. A key feature of this design is an analog-style graphics-driven dial displayed on the LCD which sweeps up and down just like a conventional mechanical dial while tuning the VFO. The VFO also features two independent VFOs, a programmable receiver IF offset capability, full RIT, and VFO locking. All of this software is handled within a single 20-pin low cost Atmel 89C4051 microprocessor. The DDS drivers within the microprocessor are quite compact, but much of the space within the 4K bytes of flash program memory is actually required for lookup tables to handle the Nokia 3310 LCD. Unlike standard 2 line x 20 character alphanumeric displays, all of the information displayed has to be generated, dot by dot, by the 89C4051 microprocessor. Each and every character, every graphical feature, all resides within the 4K of program memory. The VFO code itself amounts to less than 1.5Kbytes, the balance taken up by the graphics tables. There is also some room in the program memory to permit other builders to add features to suit individual Fig.6: there are two ways to construct the DDS VFO – cut the board and “sandwich” the two sections as shown here, or leave the board intact (the tracks for the two sections are provided). As you can see from this photo, the component side of the PC board(s) is a groundplane, formed by using double-sided PC board blank. Analog Devices website at www.analog. com are highly recommended. The most significant problems with DDS oscillators are noise and spurious emissions. These can be minimised by using D/A converters with relatively long digital words. Many DDS devices are limited to 10-bit words but newer devices more often use 12-bit or 14bit words. This DDS VFO uses an Analog Devices AD9850 chip which uses a 10-bit D/A. This delivers a spurious emission level of -50dB. Frequencies are selected using 32 bits of a 40 bit tuning word, allowing better than 0.03Hz frequency steps 60  Silicon Chip At right is the optical encoder, made from a surplus mechanical mouse with the 80MHz DDS clock used in this design. The balance of the 40 bit word is used for phase and control functions. Since this level of resolution exceeds most requirements, many DDS VFO designs use a larger step size. In this VFO design, the user can select 10Hz, 100Hz or 1kHz steps to give three tuning rates – slow, medium and fast. Functionality The DDS VFO covers all amateur radio bands between 160m and 10m in 10Hz, 100Hz or 1kHz increments, and will happily tune outside of these requirements. The code uses no special features of the AT89C4051 and so it may be used with almost any 8051-type processor possessing adequate memory. One option might be the addition of country-specific frequencies, for example, not currently supported by the present VFO software. To that end, the fully commented source code is available from my website, as well as the Intel hex file for direct programming of blank microprocessors. The Design In contrast to other designs, this DDS VFO design is almost minimalsiliconchip.com.au siliconchip.com.au March 2008  61 LOCK VFO A/B PTT RIT 4 IC1b 22pF 22pF 10k +5V 7 IC1: LM393 1 X1 8.866MHz 22k 5 6 8 IC1a 10k RST 5 4 12 16 15 14 13 X2 X1 P1.0 P1.4 P1.3 P1.2 P1.1 7 P3.3 INT1 6 P3.2 INT0 1 GND 10 IC2 AT89C4051 Vdd 20 P3.0 P3.1 P3.4 P1.5 P1.6 P1.7 P3.7 A A A Vo CS 5 8 7 9 7 2 IC3 80MHz OSC 8 3 14 100nF 7 +5V 8 Rset D2 Vddd 2 5,24 Dgnd CLKin 22 10,19 Agnd RST IoutB 20 12 3,4, 6,23 100nF 56 100 10 F IN 150pF 33pF L2 330nH* IN 100pF 100nF 1 2,4 3 A A K OUT 100nF RFC3 100 H 120 K 12V DC RF OUT 2 3 ERA-4 LEDS ADJ BEVELLED 4 END 1 IN – + LM317LZ RFC4 100 H 1N4148 47 F IC5 ERA-4 LCD MODULE PINOUTS (REAR VIEW) 1 8 OUT GND IN 7805 GND OUT REG1 7805 * L1: 13 turns on T25-10 L2: 12 turns on T25-10 100pF 10pF L1 390nH* 100nF ADJ OUT REG2 LM317LZ RFC2 100 H 470 10 F 330  LED1 330 3.9k 4.7 F 10k +3.3V K A IC4 Iout 21 AD9850 DDS+DAC Wclk Fu/d SDin 11,18 Vdda RFC1 100 H GND 6 RST NOKIA 3310 LCD MODULE V+ 1 25 100nF 3x 10k NOT USED 1 F SDA SCL 4 D/C 3 2  LED2 1k 8 9 K A 3x 10k D1– D3 1N4148 17 K 18 K 19 K 11 100nF DDS DRIVEN VARIABLE FREQUENCY OSCILLATOR BAND 2x 10k STEP  2 3 10k 10 F Fig.7: the complete DDO VFO circuit diagram. Using the cellphone display certainly simplifies things! 2008 SC  TUNING OPTICAL ENCODER   560 100nF +5V 12V DC IN 14 IN TO IC1 PIN 3 2x 22pF NOT USED 10k 100nF IC1 LM393 10k 560 IC3 80MHz OSC 18030340 OFV SDD A K ENCODER LED 5V 22k 10k 4148 D1 4148 D2 4148 D3 + 100nF REG1 100nF REG2 10 F 10k 10k 10k S3 S2 S4 S5 1 2 3 4 5 6 7 8 330 470 + 1 F + 10 F + 4.7 F S1 NOKIA 3310 LCD MODULE S6 1k 28030340 LED1 OFV SDD LED2 = BOTTOM LAYER COPPER (TRACKS) = TOP LAYER COPPER (GROUNDPLANE) Fig.8: component overlay for the top (ground plane) side. Here the two parts of the PC board are shown still connected; the links (shown in green) are only required if you split the board and “sandwich” it. ist, using just four chips (excluding the regulators): the microprocessor, the optical encoder interface chip, the DDS, and the RF amplifier chip. This avoids the approach used in a number of other designs which requires a microprocessor dedicated to the encoder and display and a second processor dedicated to the DDS. The microprocessor is also operated at a very leisurely 8MHz. I actually used a PAL TV colour-burst crystal of 8.866MHz but any crystal from 8 to 12MHz will likely work fine. The top speed for this micro is 24MHz, so clearly nothing much is being pushed hard in this design. This might suggest that the 8051 is significantly more efficient than other 8-bit microprocessors used in similar designs. My software is all written in handcoded assembler, often far more effi- A NOTE TO SILICON CHIP SUBSCRIBERS Your magazine address sheet shows when your current subscription expires. Check it out to see how many you still have. If your magazine has not turned up by the first week of the month, contact us at silchip<at>siliconchip.com.au 62  Silicon Chip + 47 F 330 IN TO IC1 PIN 5 TO/FROM OPTICAL ENCODER – RFC4 10k 8 100nF + 10k 1 + RFC1 RFC2 100nF 100pF 56 100 100pF 7 10 F 10k 10k X1 8.866MHz 33pF 10k 10k 3.9k 150pF IC2 AT89C4051 120 L1 L2 100nF 100nF RFC3 10pF RF OUT cient than higher level languages and the code possibly also makes a little better use of interrupts. This approach allows the optical encoder (the main tuning control) to be very rapidly read without causing any measurable delays in the main DDS and display routines despite the fairly intensive data transfers required by the Nokia 3310 LCD whenever it is being updated. Interrupt-driven routines tend to be a little more complex to write but are necessary here to handle rapid updating of the digital display and the analog dial graphics, while also reading the dial and checking for any pressed buttons. These functions can add up to quite a lot of work for this modest 8051 microprocessor to manage but it is made possible by minimal mainline software functions and a relatively fast background interrupt cycle. This interrupt cycle is focused on reading the encoder, the most time-critical function. When power is applied to the VFO, the microprocessor begins by initializing the LCD module. These feature a brief animated set of graphics which illustrate some of the flexibility of the display and makes use of some spare ROM space. The 89C4051 then initialises the DDS VFO to the bottom of the 80m band in receive mode, with an offset assuming an IF of 8.467MHz, and with RIT (receiver incremental tuning) turned off. These parameters are all set by the software, and are very easy to change to suit other applications and user preferences. These settings are all very clearly highlighted in the source code. The DDS requires a 40-bit serial word transfer from the microprocessor. As the encoder is rotated, the DDS frequency is updated, the new frequency displayed and the dial graphics dynamically changed according to the direction of tuning knob rotation. The 40-bit word sent to the DDS is calculated from a series of predetermined lookup values, one for each digit in the 7-digit frequency of the VFO, the values depending on the DDS clock used. In this case, they assume an 80MHz clock, the highest frequency crystal Fig.9: soldering that SMD-mount chip requires a steady hand and a fine iron (see the SMD article in this issue!) siliconchip.com.au oscillator I could buy locally. The DDS output is filtered using a 5th order elliptical low pass filter with a cutoff frequency of about 35MHz. The output from the filter is then amplified with a ERA-4 surface mount MMIC. This gives a output level of about 1V peak-to-peak or +13dBm into 50W from the VFO, ideal for diode mixers. Since the DDS output level follows a sinx/x envelope, the output reduces to 0.8V peak-to-peak by 30MHz. This 2dB rolloff is of little concern in transceiver applications but should be borne in mind if this software is used for signal generator applications. The 80MHz DDS oscillator is the reference for the VFO’s output frequency. By contrast, the microprocessor crystal is a nominal 8MHz crystal and, as noted earlier, its exact frequency is not critical. Since output frequency accuracy and stability depends on the 80MHz DDS oscillator (and few of these have any external frequency adjustments available), any users requiring absolute output frequency accuracy can make the simple frequency alignment adjustments within the software. I found my VFO was accurate to a few hundred Hertz and quite adequate for my uses. The Nokia 3310 LCD module requires a 3.3V supply. While some 8051 chips will operate on the same 3V supply, the 80MHz oscillator demands a 5V supply. The decision was therefore made to run both a 5V (for micro and oscillator) and a 3.3V rail for the LCD. It’s a slight additional complexity but makes the design easier to convert to other types of 8051 chips should this prove desirable. The interface between the AT89C4051 and the display, necessary due to the different supply rails on these parts, is handled with three cheap isolating diodes. If you are able to purchase some 3.3V clock oscillators (a standard part but one I couldn’t buy locally), you can easily modify the entire VFO for single supply rail operation. The microprocessor interface for the LCD module uses fewer control lines than suggested in many references. Most suggest the need for five lines, including a reset line from the microprocessor. Careful reading of the datasheet revealed that the chip select (CS) line can be permanently tied to ground at the cost of a little more current. The VFO’s MMIC amplifier is fairly siliconchip.com.au Figs.10 & 11: here’s the full size artwork for both sides of the PC board with the top (ground plane) at right. We imagine most constructors will not bother etching a second layer (if they can!) but will simply remove the top-side copper around the holes with a small twist drill (eg, 5mm). It’s tedious but easy enough to do holding the drill in your fingers, putting the tip in the hole and twisting. The smaller holes in the ground plane are for the components which solder to both sides of the board – these should not be opened out. greedy, drawing around 65mA, so the modest constant 5mA consumed by the always-on LCD turned out to be of little concern. The datasheet also suggested the possibility of using a resistorcapacitor reset arrangement (10kW and 4.7mF), and that saved a further I/O pin. As a result, there is an additional delay of a hundred milliseconds or so at power-up, just to be sure the display has reset but this is of little importance in overall operation. The main dial knob uses connects to an optical encoder. This is interfaced to the microprocessor with an LM393 comparator to ensure clean rising and falling quadrature signals. The use of an optical encoder delivers improved long term reliability and allows users to set up the mechanics of the dial knob to suit individual taste. Construction The VFO can be built either as a single PC board measuring about 150 x 50 x 15mm (wxhxd) or in a sandwiched two-PC board configuration measuring 100 x 50 x 25mm (wxhxd). Those wanting a smaller version can convert the current layout to use SMD March 2008  63 Parts List – DDS VFO 1 double-sided PC board, 150 x 50mm, coded 06103081 (see text) 1 digital display ex Nokia 3310 cellular phone (see text) 1 surplus mechanical (ball-type) mouse for optical encoder parts (containing 1 LED and 2 phototransistors – see text) 1 8.866MHz crystal (X1) 6 PC mounting SPST pushbutton switches Semiconductors 1 LM393 (IC1) 1 AT89C4051 microcontroller (IC2) 1 80MHz oscillator (IC3) 1 AD9850 (IC4) 1 ERA4 (IC5) 1 7805 5V positive voltage regulator (REG1) 1 LM317LZ voltage regulator (REG2) 3 1N4148 silicon signal diodes (D1-3) 1 yellow LED 1 green LED Capacitors 1 10mF 16V PC electrolytic 3 10mF 10V PC electrolytic 1 4.7mF 10V PC electrolytic 1 1mF 10V PC electrolytic 7 100nF polyester 1 150pF polyester 2 100pF polyester or ceramic 1 33pF ceramic 2 22pF ceramic 1 10pF ceramic Inductors 1 390nH (L1) 1 330nH (L2) 4 100mH (RFC1-4) (code 0.1, 100n or 104) (code 150p or 151) (code 100p or 101) (code 33p or 33) (code 22p or 22) (code 10p or 10) (13T 33SWG ENCU on T25-10 toroidal former) (12T 33SWG ENCU on T25-10 toroidal former) Resistors (all 0.25W, 1%) 1 22kW 12 10kW 1 470W 2 330W 1 3.9kW 1 120W parts and reduce the dimensions by about 40%. While the present design uses a double sided PC board, the top side of the board is left unetched, forming a continuous copper ground. This allows the PC board to be etched in typical home workshops with ease as if it was a single sided PC board. That’s the method I used for the version pictured. While I’ve used standard components as far as possible, construction is not for the faint-hearted. The DDS chip, for example, is a 28 pin SMD device with very close pin spacing. The display connections are also challenging. Time and care allows both to be soldered into place but it does require a good soldering iron with a fine tip, steady hands, patience and good eyesight. I’d suggest building the keyboard/ 64  Silicon Chip 1 1kW 1 100W 1 560W 1 56W display PC board first. Install the jumpers first, the resistors, then the buttons, and finally mount the display. The Nokia 3310 display is supplied mounted on a plastic keypad frame assembly complete with speaker. Prise out the speaker – it’s just pressed into a rubber ring – and trim the surplus plastic away with a sharp knife, being careful not to disturb the plastic around the display itself. This is essential to maintain slight compression on the metallic springs which press onto the conductive tracks on the LCD glass. The display is then wired to the pads on the PC board. I was tempted to lay the PC board out to permit the display to be directly mounted on it but the current method offers a little more flexibility. However, it does require some delicate soldering of wire jumpers between the spring metal connections on the rear of the display and the PC board. I kept everything in place with a few dabs of hot glue and the display assembly was mounted a few millimetres off the PC board with three further strategic dabs of hot glue. This sounds crude – but it’s unseen and the glue forms a very rigid arrangement which can be easily adjusted with a little heat from a soldering iron. The display is extremely light, and the resulting mounting is very robust. There is also space beneath the LCD for the addition of backlighting, perhaps using some diffused LEDs, if desired, although the current PC board layout does not allow for component wiring. By the way, don’t be tempted to remove the white plastic material from the rear of the LCD. This improves display contrast and aids backlighting. I tried some green LEDs for backlighting and they worked very well, so I may add these to the final transceiver. An extra pullup resistor (10kW) can be seen in Fig.5 mounted next to the inter-PC board wiring on the top side of the keyboard/display PC board. This was caused by a minor change in pin connections when going from my Veroboard and wirewrap prototype to the final PC board version. This resistor IC1 PIN 1 IC1 PIN 7 ENCODER OUTPUTS WITH POSITIVE (CLOCKWISE) ROTATION IC1 PIN 1 IC1 PIN 7 ENCODER OUTPUTS WITH NEGATIVE (ANTICLOCKWISE) ROTATION Fig.12 : quadrature outputs from an optical encoder are used to tune the DDS. siliconchip.com.au siliconchip.com.au 54 95 28 59 8 44 Notes: 38 40 1. Red lines and dimensions in red text indicate details specific to the DDS VFO. All other dimensions may be varied to suit specific applications. 2. Panel material should be removed from the shaded area. 3. Dotted lines show outlines of LCD display and other panel-mounted components Fig.13 : same-sized diagram of the front panel of the transceiver on P58 showing where the VFO mounts. 4. All dimensions are in mm 40 21 54 28 has now been added to the PC board layout shown in Figure 8 and 9. Constructing the DDS/microprocessor PC board can start with the installation of the resistors and capacitors. Then proceed to add the jumpers and the various through-PC board connections if your board does not have plated-through holes. Mount the microprocessor socket (I strongly recommend using a “machine screw” IC socket for non-plated through PC boards), the LM393, crystal oscillator and crystal. The LM393 does not need a socket. Complete the board by soldering in the DDS chip and the ERA-4 MMIC. The optical encoder should be added next. Although you can use a commercial model, I made my optical encoder from parts salvaged from an old PC mechanical-type mouse. It’s not a difficult task – there are enough bits inside an old mouse for two such encoders. It is possible to monitor the two output pins of the LM393 interface to confirm correct quadrature waveforms using an oscilloscope (See Fig.12) while rotating the encoder. If you test without the microprocessor installed, which is best, you will need to add temporary pullup resistors on each open-collector comparator output. Any value from 4.7kW to 100kW works fine for testing. Remove these once encoder testing is complete. Fig.12 shows the ideal waveforms. Actual outputs have less perfect shapes, with variable width and timing but still do the job. The LCD module and pushbuttons are mounted on the solder side of the PC board. This allows the board to be mounted at the ideal distance from the front panel for display visibility and for the buttons to be depressed through a Lexan or similar flexible keypad/panel. Since my workshop facilities doesn’t run to Lexan production facilities, I made a workable flexible front panel from transparent plastic stick-on film from the local stationery shop and a laser-printed paper panel overlay. Unfortunately, my panel layout is too long to be printed here but it can be downloaded from my website (see references) or from www.siliconchip. com.au The film is layered over the paper on both sides and provides protection for the display while allowing the March 2008  65 buttons to be easily pressed under the appropriate keypad label. This panel will obviously wear out much faster than Lexan but it’s cheap and easy to make and replace. There are two indicator LEDs on the PC board. The green LED shows when DC is applied to the board and can be used as a power indicator (Top left hand corner of the front panel in Fig.10). The yellow LED was used during the software development to measure the time taken by the main software loop. It still does, changing state each time through the loop, flickering in varying degrees of brightness as buttons are pressed, the VFO is tuned, and the LCD updated. I located this LED at top dead centre over the main tuning knob. Yes, I confess, it’s purely for there for show, so just omit it if you don’t like it. The two PC boards are connected together using a total of 12 short wire links. There is a further short wire jumper which is run between the two boards for the +12V supply. This goes to the 120W resistor to power the MMIC. Operation With an 80MHz DDS clock, the VFO will operate with minimal spurious outputs up to about 30MHz. In transmit mode, the DDS VFO outputs the frequency displayed on the LCD. In receive mode, the receiver IF offset is added to the displayed output frequency until the actual DDS output frequency exceeds about 30MHz. At that point, the IF offset is subtracted from the nominal output frequency to keep spurious products to an acceptable minimum. The VFO keys have the following functions: LINE FUNCTION 1 Reserved for a 14 character string of text including the user’s callsign 2 Digital display of VFO frequency 3 Used by the VFO cursor which indicates the step size currently in use 4 Analog dial display 5 RIT frequency (Only shown in RIT mode) 6 Status messages including VFO lock, VFO A/B selection, and Tx mode Line 1 is the top-most LCD line. Incidentally, lines in the software are actually numbered from 0 to 5 to match the LCD controller’s addressing scheme. addresses the display using this linebased mode as shown above. Also mentioned earlier, the VFO has three tuning speeds, selected by the Step key. Some consideration was given to adding variable rate tuning to this VFO. This method is used on some commercial transceivers. As the dial is rotated more quickly, for example, the tuning rate will initially directly match the increased rotation speed. Then, if the tuning rate is sustained, the VFO frequency increment will be automatically increased, resulting in accelerated tuning, with the frequency being incremented at a much faster rate. When the dial is slowed, this is detected and the tuning rate switches to a slower rate. Having used it in one of the commercial transceivers I own, I’ve not found it particularly pleasant to use. Call me old-fashioned but I prefer the standard fast/slow tuning speed selection used in one of my older commercial transceivers. I did try a variety of variable rate methods during the development of this design but none really proved to offer any benefits over the scheme finally adopted. So, variable rate tuning VFO KEY FUNCTIONS: Step Selects VFO frequency increment (10Hz, 100Hz or 1kHz steps) Band Selects desired band (160m, 80m, 60m, 40m, 30m, 20m, 15m, 12m, 10m) RIT Changes dial to RIT control allowing the receiver frequency to be offset by ±5kHz in 10Hz steps VFO A/B Selects one of two independent VFO frequency banks Lock Locks the VFO frequency to the currently selected DDS output frequency Tx Removes the receiver IF and RIT offsets from the VFO output frequency As mentioned earlier, the LCD is addressed as a 6-line display, each 8 pixels high and 84 pixels wide. This is determined by the LCD controller chip bonded inside the Nokia 3310 display, a Philips PCD8544 or equivalent. The DDS VFO software therefore 66  Silicon Chip is not a standard feature in this VFO. Construction Options The split PC board layouts used in this design readily permit the use of other keypads and displays. In such cases, only the DDS/microprocessor board need be built. The relevant port lines are all available on the edge of this PC board. With minor changes in software, those standard two-line x 16 character alphanumeric LCD modules may be used, as may many different keypad arrangements and keypads. In most such cases, the software will readily fit in the smaller AT89C2051 (2K flash ROM) microprocessor which is 100% pin-compatible with the DDS/microprocessor board layout shown here. If there is sufficient interest, I will make schematics, connection details and software available on my website for this alternate version. Future Development Now that this design is complete, I want to find some time to build an RF signal generator using the more powerful AD9854 or AD9912 DDS chips. These DDS devices have higher quality quadrature outputs and are ideal for use with software-based receivers. Interestingly, a simple signal generator actually requires much less code than a ham-band transceiver VFO. But to compensate for this, I’d like to use one of the more complex full-colour cellular phone LCD modules. All I have to do is persuade my wife to let me borrow her new cellphone for a few minutes… SC References 1. The ZL2PD website can be found at www.zl2pd.com This contains all of the source code, assembled hex files, full size schematics and PCB artwork for free downloading 2. Analog Devices, ‘A Technical Tutorial on Digital Signal Synthesis’, 1999 (See www. analog.com) 3. Two websites offering Nokia 3310 LCD displays at time of writing include www.jelu. se and gsmserver.com, although I have no experience with either source. siliconchip.com.au