4.13 Microcontroller
The ATmega328 microcontroller circuit controls many aspects of this transceiver. Below is
this section of the transceiver circuit. Several points are worthy of discussion.
ATmega328P processor
The ATmega328P was chosen because it has enough processing power and I/O to handle
all the tasks required here. It is also common and inexpensive, and lots of QRP Labs
products already used it, bringing economies of scale in both the kit preparation and the
coding. The processor is operated at its maximum rated 20MHz system clock speed.
The code is all written in C and is not open source. While the same ATmega328 processor
is used in the popular Arduino Uno products, there is no relation between code written for
the Arduino environment and the custom code written for this CW transceiver.
Elimination of tuning clicks
Some constructors of radio receiver projects that use the Si5351A report loud clicks every
time the frequency is changed. The cause of these clicks is one or both of two underlying
issues:
a) Faults in the software configuring the Si5351A
b) Power line or radiated noise from the microcontroller/LCD back into the sensitive
receiver
The first of these is not an issue here since we have already extensive experience using the
Si5351A and have perfected its configuration.
The second issue is important to address. Every time the microcontroller updates the
Si5351A configuration to cause it to change frequency, it typically also writes the new
92