With the switching off of the big MW transmitters this ancient band has become the playing field for all kinds of local initiatives by radio enthousiasts. The collector of vintage tube radios is not left in the cold. Even so, being able to play your own content is sometimes wanted. There are many designs floating around the internet including PIC controlled PLL transmitters. The PLL drives a modulator using a CMOS 4053 triple two-port analog switch. I wanted to try this concept for years but did not bother to get the PIC needed (PIC16F690) and just flash the firmware into it. So I decided to write my own.
In my tray I also found an Adafruit module with an Si5351A clock generator. This neatly generates the frequencies needed to drive the modulator. However, programming the damn thing (over I2C) is not an easy thing to do as there are many parameters that need to be set. Luckily I could bring that down to 8 bytes per frequency. Now the medium wave broadcast band has 122 frequencies (in Europe/Asia) which means that these 122 config words fit in four 256 byte pages in a PIC. There is even room for a wavelength table. This is a neat feature because vintage tube radios have the tuning dial in meters instead of kHz. The frequency and wavelength are then printed on an LCD:
Two buttons select the frequency. The schematic is simple:
The PIC controls the I2C bus and sends the text to the LCD. It also scans the two buttons. The audio is amplified and fed to the 4053. A LED provides overmodulation indication. Finally, the output is fed to an antenna filter (TODO) which filters the square wave from the CMOS switch and provides matching to the radio connected to the modulator. This is either a lowpass filter or a tunable LC filter.
The firmware for the PIC is also straightforward. After initializing the PLL and LCD it becomes my beloved state machine running on an interrupt (TMR0) and scanning the buttons. The data for the PLL was generated using Silicon Lab's Clockbuilder program running on a win7 VM. This is a rather annoying tool which I had to run to generate the parameters for each frequency. The data was then copied into a LibreOffice spreadsheet, exported to CSV files, edited and fed into MPLAB to create the program (asm) and to generate the HEX file for the PIC. There is just one thing left to do and that is design a nice PCB for this project.
Back to the projects page
Date: 26 September 2021
This software is licensed under the CC-GNU GPL.