|
|
|
Si5351-based
Clock Synthesizer board
By: Bertrand Zauhar, VE2ZAZ
Last updated:
20/11/2019
|
|
|
On this page, I describe my design of a
multiple output RF clock synthesizer board
based on the Silicon Labs Si5351 chip. This
integrated circuit provides a cheap and easy
way of producing up to six independent clock
outputs with frequencies ranging from a few
KHz to more than 200 MHz. This board
supports both the A and C version Si5351
chips, the latter being more valuable as it
allows to synchronize to an external
reference. If soldering a fine-pitch
leadless QFN package C version chip is not
possible, the
builder can instead equip the board
with an off-the-shelf Chinese-made
Si5351A mini-module, and use the
board in free-running mode.
This board
includes an external reference
scaling/shaping circuit, which provides the
proper amplitude to the Si5351C, regardless
of the shape or amplitude of the input
signal. Since the
Si5351 chip configuration is volatile
(configuration lost when power is removed),
an accompanying micro-controller is required
to re-program the chip at power up. I chose
an Arduino Nano to perform this task. In
order to create the desired Si5351
configuration for the Arduino, I also
developed Python language computer scripts
(programs) (simple-mode and manual-mode
versions) that provide the ability to define
the parameters and perform the transfer.
These can run on Linux, Windows and Mac OS.
To understand this
board's capabilities, the reader should become
knowledgeable of Si5351 chip features,
possibilities and limitations. This web page
assumes so, and does not expand on those.
The best way to understand what this project
offers is by first consulting the Circuit
Schematic of the board below (click on image
to enlarge):
The
Chinese Off-the-Shelf Si5351A
mini-module
|
The
Arduino Nano
v3 board
|
The circuit is rather
straightforward. The main features of this
printed circuit board are:
-
Supports:
- either
a 20-pin Si5351C chip
(QFN-20 leadless package), with the
benefit of external reference
(for example, 10MHz) support through
a back plate SMA connenctor,
-
or An
off-the-shelf Chinese-made Si5351A
mini-module, which will rely on
its own 25 MHz crystal for output
accuracy and stability.
-
Provides 3 square wave clock outputs
via face plate SMA connectors, and
three additional on-PCB clock outputs,
- Provides
an external reference input
scaling/shaping circuit, ensuring
proper reference amplitude to the
Si5351C, regardless of the shape or
amplitude of the input signal.
- Uses
an Arduino Nano
board version 3 (original or clone).
- Has
two face plate LEDs, one showing
power, the other showing the internal
PLL status.
- Includes
0805-size component footprints to
build attenuators or filters on both
the reference input and the three RF
outputs,
-
Runs off the USB +5V Supply,
-
Has built-in +3.3V regulation for the
Si5351 and the 65LVDS34 supplies.
-
Provides +5V <-> +3.3V
bidirectional I2C signal
level conversion between Arduino and
Si5351.
-
Designed to fit into a 80x50x20 mm
extruded aluminum enclosure, readily
available from eBay, AliExpress or
Banggood for a few dollars. Both the
face plate and the back plate need a
few holes to be drilled/filed. A
template drawing is provided.
The Printed
Circuit Board is a double-sided design with
plated-through holes, solder resist and
silkscreen (marking) on both sides. I provide
the design files, and the gerber and drill
files for anyone who would like to replicate
it. Such PCB can be ordered for around 20$ per
lot of 10 PCBs. Simply provide the gerber
files and the drill file to the manufacturer.
I ordered from JLCPCB, but other manufacturers
should produce the same quality. In your
order, select 0.062" (1,6 mm) thickness FR-4
glass-epoxy material, the standard stuff.
The following
is a list of all required components
and sub-modules to put together this
project. Note that a number of components
are required only when the Si5351C
option is used. Components that are required
in both Si5351C and
Si5351A options are shown
in bold font.
Some procurement recommendations are
provided in the right hand side column.
Other than the details provided, part
selection is not critical.
Quantity |
Designator |
Designation |
Package |
Procurement
Recommendation |
2 |
C3,C5 |
Aluminium
Electrolytic Capacitor, 100 uF,
10V, 20% tolerance
|
SMD
5.3x5.3mm |
Digikey
PCE3867CT-ND |
10 |
C1,C2,C4,C6,C7,C8,
C9,C10,C11, C12 |
Capacitor
100 nF, 25V, Ceramic X7R type |
SMD
0805 |
eBay |
2 |
D1,D2 |
LED,
3mm, green |
Through-hole
3.0mm diam. |
Digikey
516-1293-ND or eBay
|
4 |
J3,J10,J11,J12 |
SMA
Connector, right angle |
Through
hole jack, right angle |
eBay |
1 |
J4 |
Arduino
Nano Version 3 |
Through-hole
DIP-30 (Unused pins cut off) |
eBay |
1 |
J9 |
Si5351A
mini-module (use only when not
populating the Si5351C chip) |
Through-hole 7
pin header, 0.100” pitch |
eBay |
2 |
Q1,Q2 |
N-Channel
MOSFET (BS170 or 2N7000 typical) |
SMD
SOT-23 |
Digikey
BS170-ND |
1 |
R2 |
51
Ohms Resistor |
SMD
0805 |
eBay |
2 |
R1,R3 |
470
Ohms Resistor |
SMD
0805 |
eBay |
4 |
R4,R5,R6,R7 |
1K
Resistor |
SMD
0805 |
eBay |
1 |
R8 |
4.7K
Resistor |
SMD
0805 |
eBay |
1 |
R9 |
220
Ohms Resistor |
SMD
0805 |
eBay |
1 |
U1 |
LM1117-3.3
+3.3V Regulator, |
SMD
SOT-223-3 |
Digikey
LM1117IMPX-3.3/NOPBCT-ND |
1 |
X1 |
SN65LVDS34 |
SMD
SOIC-8 |
Digikey
296-39187-1-ND |
1 |
X2 |
SI5351C |
SMD
QFN-20 |
Digikey
336-5160-1-ND |
1 |
Y1 |
Crystal,
25.000 MHz, ±10ppm tolerance,
±15ppm stability, 10pF load
capacitance, 50 Ohm ESR |
SMD
Crystal 3.2x2.5mm size |
Digikey
535-13468-1-ND |
24 |
A1-A24 |
Optional
for Filter or Attenuator design |
SMD
0805 |
|
Early on, the
builder must decide whether an Si5351C chip
or the Si5351A mini-module will be used. If
the mini-module is selected, a number of
components can be omitted. The components
that are required in all situations are
shown in bold font in the component
table above.
One major challenge in assembling this board
is the
Si5351C soldering, which requires a
hot-air rework station, some magnifying
apparatus (camera or microscope), some
soldering flux and a lot of skill. This
is one VERY SMALL package! If you have
never soldered this kind of device (QFN
leadless), I recommend that you document
yourself on the Internet prior to
performing the work, or find someone who
is willing to help with that task. This
is an expensive chip, and you do not
want to spoil it!
The remaining of the board
is not particularly difficult to assemble by
hand if you can handle common
surface-mounted components. A magnifying
lamp, a fine tip soldering iron and a pair
of tweezers are required.
The lowest profile components should
be installed first, starting with the
Si-5351C chip, followed by the
The
Arduino Nano pins to keep. Other pins
should be removed.
|
remaining
surface-mounted components. The electrolytic
capacitors, the Arduino, the Si5351A
mini-module (if required), the LEDs and the
SMA connectors should be installed last. All
through-hole pins should be trimmed down to
the solder blob with the bottom PCB surface,
otherwise there will be insertion or short
circuit issues with the enclosure.
Prior to
installing the Arduino Nano, its unused
pins must be removed (or cut off flush)
from the two rows of pins. Only the pins
shown on the circuit schematic
should be kept (see figure to the
right).
When preparing the Si5351A
mini-module for installation on
the board, do not solder the
three SMA connectors on the
mini-module. Output signals get
extracted through the 7-pin
header and are sent to the
board's three SMA connector
instead.
The
suggested enclosure is an 80 x 50 x20 mm
extruded aluminum enclosure. The PCB
dimensions were set for an exact fit into
this enclosure. This two-sided clam shell
enclosure can be easily found on most
electronic component sites (eBay, AliExpress, Banggood...)
for a few dollars. I provide a
template drawing to help drill and cut
the various holes on the front
and rear faceplates.
The
recommended enclosure
|
|
The Arduino
firmware (a.k.a. the sketch) is
written to be compiled in the
Arduino IDE environment. The Arduino
sketch uses Jason Mildrum's Etherkit
Si5351Arduino library (https://github.com/etherkit/Si5351Arduino).
That library must be installed in
the Arduino IDE via the Library
Manager (Menu: Sketch -> Include
Library -> Manage Libraries...)
prior to compiling the sketch.
The Arduino must be sent an Si5351
configuration from the software
described below, otherwise the
synthesizer board will not operate.
This software includes comprehensive help
files (About.html and About_Raw.html) that
describe the prerequisites, the
installation process and the operation in
detail. Please refer to the software
package content to get these files.
The software allows to
configure the Si5351A/B/C Synthesizer chip
when supervised by the Arduino Nano. Once
the Arduino has received a configuration
from this software, it will re-load the
Si5351 chip with that same configuration
at every power up or reset. The Arduino
(properly configured by this software) is
required as the Si5351 chip does not
retain its configuration when power is
removed; it must be re-configured at power
up.
The software
is written in Python 2.7 programming
language. Thus it is fully compatible with
the Linux and Windows (7, 8, 10) operating
systems. Although it has not been tested,
the software should also run properly on
the Mac OS.
The software
covers a superset of features offered by
the Si5351 family of chips. The user must
understand the limits imposed by the
Si5351 model (A or C version), such as the
number of channels available or the
support for an external reference input. A
good comprehension of the Silicon Labs'
Si5351 Datasheet document is recommended.
The software
is actually made of two python scrips. The
"Si5351
Synthesizer Configuration" script
was designed with the objective of
exploiting the most common Si5351
features. Thus, it allows to configure the
chip for most applications, but not all of
them. Examples of features that are not
implemented are VCXO support (the Si5351B
chip), phase adjustment (other than simple
inversion) and support for output channels
6 and 7. In an application where one or
more of the missing features is required,
the user can still use this hardware by
programming the Arduino Nano using another
python script, the "Si5351 Raw data
Transfer" program. That Python script is
also included in the package. In such
case, various Si5351 registers will need
to be programmed separately, which is more
tedious.
Obviously, the accompanying Arduino firmware
(sketch) must be used in conjunction
with this software, otherwise the latter
will not function. The sketch is
designed to interact with both versions
of computer python scrips described
here.
Access must be granted to the computer's
virtual serial port associated with the
Arduino's serial-USB adapter, otherwise
an error message will be displayed.
The software
for the synthesizer board can be
obtained on GitHub by clicking on the
link below.
One cool
application of this Si5351 Clock
Synthesizer is a QRSS (very slow transmission
rate) low power Beacon transmitter. I
have put together the proper software and
Arduino firmware to
accomplish this task. Please
refer to this GitHub
link for more
information on implementing
the beacon.
The
output clock shape generated by
the Si5351 chip is a square wave.
One must include proper lowpass or
bandpass filtering if the output
is to be used in radio
applications, especially if it is to be used as a low
power transmitter connected
directly to an antenna.
|
|