A DDS CTCSS Generator using PIC12F675.

[ Home ]

Here in South Africa many of our repeaters require a CTCSS (sub-audible) tone to gain access. This is largely to prevent interference to the repeater from other users on the highly populated high sites. There also seems to be a never ending supply of ex-commercial rigs available to the Amateur community which require fitment of a CTCSS generator. Consequently the CTCSS generator has appeared as a club project many times in different guises. Some of these exhibit less than satisfactory temperature stability and many have a poor output waveform. The repeater transmitter should largely attenuate the CTCSS fundamental frequency to prevent it being re-transmitted but it cannot do this for the multiple harmonics present in other than a sine wave waveform. Hence a few buzzy signals are in evidence.

This project is a very simple application of DDS using a PIC to generate an accurate, stable and low distortion CTCSS signal. It uses an 8 pin PIC12F675 as a DDS generator. The 3-bit sampled output is cleaned up by an LM358 active low-pass filter to produce a very clean sine wave output variable from 0 to about 1.2V. Here is the hardware schematic.

The source code is well commented so there is no virtue in repeating all the information here. Download the ASM file and by reading the comments it should be easy to understand the principle of operation and how to adapt the code to your own purposes

The CTCSS frequency is of course determined by the software. The frequency can be changed by editing the source code and re-compiling. 

Performance of the completed unit is excellent, highly accurate, very stable and low distortion.

A picture of the completed unit

Download the PIC asm and hex files CTCSS2.ZIP (13Kb)

Hardware schematic.