Вы находитесь на странице: 1из 17

Technology

Mobiles
Computers
Web
Electronics
Amateur Radio
Homebrewing
SDR
Forum
Misc

Search

AmoghDesai.com
A personal blog about Amateur Radio, technology, gadgets, photography, and
fun

 Technology Electronics Cracking the SI5351 Multiple Clock Generator – Part I


Cracking the SI5351 Multiple Clock


Generator – Part I

 Amogh Desai  27/02/2015  14


Its been some time I have been wanting to use a SI5351 chip to build a VFO.  As the
cheapest version of this chip (at just $1.30) can be configured to generate up to 3
programmable clocks, it can be put to use in a HAM rig very well.  One clock as a
VFO and other as a BFO.  Simple code on Arduino can generate a LSB and USB signal
with no hassle of pulling crystals down or up with inductors makes it so much easy
and fun.  The 3rd output can be put to use as a CW tone generator.

There are many breakout boards for this chip available, but all in the DX land (QRP
Labs, Eatherkit, etc).  With multiple projects at hand I was hesitant to order one.  I
had also been discussing about it online with VU2SWX, Prof. Sunil Thomas who was
keen to design a breakout board for the SI5351 himself and subsequently I got this
update a couple of days ago at VU2SWX’s Blog:
I quickly ordered the SI5351 chip from RSdelivers here and toner transferred a PCB.
 This was my 1st SMD PCB, but it turned out pretty good.

PCB Etched using


Toner Transfer
Method

To build this one I had to additionally buy a SMD soldering Iron (MAX 550) and
liquid soldering flux.

Caution: There are errors in this PCB, please wait for an update from VU2SWX.

Si5351 and LM1117 mounted in reverse (upside down)


Si5351 VFO using Arduino Nano

When I started to build this PCB I figured out there were 2 big errors in the layout.
 Both the SI5351 chip and LM1117 regulator IC layout on the PCB was reversed.  I
didn’t want to waste more time so mounted the ICs in reverse and finished the PCB
mounting all other components.I burned the SI5351 VFO sketch by AK2B, Tom
Hall here to a Arduino Nano and built the VFO as per this design:

Here’s my VFO on a breadboard: Here is a copy of the sketch I used for testing: VFO
Sketch for Si5351 with IF
The sketch was working perfect but no output from the breakout board.  I rechecked
the board for connection issues or soldering errors, everything seemed correct.  So I
set out to check the communication between Arduino and the SI5351 chip.  I burned
this I2C scanner sketch to the nano and got no result on the serial monitor. This
made clear that there was no communication between Arduino and Breakout board.

I2C scanner output showing communication with Si5351 and


Arduino

I cross checked the Level shifter FETs BS170.  I realized the board was made for
through hole components while I used SMD 1206 package.  The Pin for both these
packages is different.

I re-soldered the SMD BS170 correctly as per pin out and checked the I2C Scanner
again. and voila !  This is what I got:
output from a Si5351 Breakout Board.

I quickly burned the SI5351 VFO Sketch again and got a clear VFO signal on my
dongle !One of these PCB has already been sent to VU2SWX with all the errors and I
am waiting to hear from him with a corrected PCB.

In the meanwhile if you have any suggestions or feedback, please feel free to post
your comments in the section below.

About Latest Posts

Amogh Desai
A System Admin by profession, is a tech buff and a licensed Amateur Radio operator with callsign VU3DES. He is
interested in Technology, Amateur radio, Electronics home-brewing, FOSS, Photography and everything tech. He uses
this blog to share his views and ideas with people sharing similar interests.

 Posted in Amateur Radio, Electronics, Homebrewing


 Tagged DDS, ham radio, Homebrew, VFO
 14 COMMENTS

 Tejaswi
 4 years ago  Permalink

Great Achievement Amogh… Go Ahead..Waiting for Post Part II!!

 Reply

 Satish Chandorkar
 4 years ago  Permalink

Actually I am eagerly waiting for the final version of this board so that all the
hassle of a stable vfo and L.O. vanishes. Shri Carudatta Uplap has said that
the board will be ready soon. But your board seams to be in advance stage of
design and testing.
Satish
VU2SNK

 Reply

 Charudatt Uplap
 4 years ago  Permalink

GR8 Amogh, I am sorry, was getting the boards ready, but then a tooth fairy
gave me a Adafruit BreakOut Board and so the immediate need for the board
was dropped.
A Breakout board for this should not be a big problem and I sincerely hope ,
that someone now makes a dedicated board with the ATMEL Chip and the Si
Chip on one Board Complete project.

Amogh : How much did you get the chip for and any specific reason you used a
crystal ?

regards
VU2UPX

 Reply

 Amogh Desai
 4 years ago  Permalink

great.. now will have choices.. this board is more of a demonstration.. need
to also see how well it performs as compared to AD9850..

 Reply

 TT’s Jottings-Blog of VU2SWX » Si5351A breakout board


 4 years ago  Permalink

 vu2swx
 4 years ago  Permalink

I have posted the corrections to the board. Need more beta testers.

 Reply

 ashok vu2ash
 4 years ago  Permalink
Good work Amogh , following you on this project.

 Reply

 BIJU . A.P VU2TDD


 4 years ago  Permalink

congrats….Amongji good work….eagerly waiting for the latest version


with all corrections.

 Reply

 Riyas
 4 years ago  Permalink

Very nice! How was the performance of the rx compared to ad9850 and Si570 ?
audio clarity, birdies and noise floor

 Reply

 Amogh Desai
 4 years ago  Permalink

Hey Riyas,

It was good. I dint find any specific issue with audio clarity. It is on par with
the AD9850. I don’t have much test and measurement equipment to show
comparisons. But I understand from reports that Si5351 has some amount of
spurs and is quite noisy compared to SI570. Also its performs well if only one
clock is used or 2 clocks away from each other are used. But is not a bad
choice over AD9850 at all. SI570 is very clean and cant replace AD9850 or
Si5351.

 Reply
 Antony Watts
 2 years ago  Permalink

Two things

1 I am looking for a single board, Uno format, but including Si5351 & 74AC74
generating IQ signals for SDR

2 To interface with a single board (Arduino Uno size) SDR Transceiver I have
designed

 Reply

 Amogh Desai
 2 years ago  Permalink

Hi Antony,

Please check VU2IIA Mahesh’s blog for this kind of setup. He has talso taken
the info from some other blog, but has successfully used an arduino + SI5351
+74HC74 to drive an IQ based SDR.

73s
Amogh
VU3DES

 Reply

 Krishna
 1 year ago  Permalink
I complied the sketch but found, it is giving error which I have pasted here. I
have no idea about programming, and where to look for answers, could you
please let me know how to resolve this.

Error :
Arduino: 1.8.5 (Windows Store 1.8.10.0) (Windows 10), Board:
“Arduino/Genuino Uno”

C:\Users\ragin\AppData\Local\Temp\Temp1_LCD_VFO_Si5351_IF.zip\LCD_VFO_S
i5351_IF\LCD_VFO_Si5351_IF.ino: In function ‘void setup()’:

LCD_VFO_Si5351_IF:157: error: no matching function for call to


‘Si5351::init(int)’

si5351.init(SI5351_CRYSTAL_LOAD_8PF);

C:\Users\ragin\AppData\Local\Temp\Temp1_LCD_VFO_Si5351_IF.zip\LCD_VFO_S
i5351_IF\LCD_VFO_Si5351_IF.ino:157:40: note: candidate is:

In file included from


C:\Users\ragin\AppData\Local\Temp\Temp1_LCD_VFO_Si5351_IF.zip\LCD_VFO_S
i5351_IF\LCD_VFO_Si5351_IF.ino:12:0:

C:\Users\ragin\OneDrive\Documents\Arduino\libraries\Si5351Arduino-
master\src/si5351.h:283:7: note: bool Si5351::init(uint8_t, uint32_t, int32_t)

bool init(uint8_t, uint32_t, int32_t);

C:\Users\ragin\OneDrive\Documents\Arduino\libraries\Si5351Arduino-
master\src/si5351.h:283:7: note: candidate expects 3 arguments, 1 provided

LCD_VFO_Si5351_IF:161: error: no matching function for call to


‘Si5351::set_freq(volatile uint32_t&, long long unsigned int, si5351_clock)’

si5351.set_freq(vfo, SI5351_PLL_FIXED, SI5351_CLK0);


^

C:\Users\ragin\AppData\Local\Temp\Temp1_LCD_VFO_Si5351_IF.zip\LCD_VFO_S
i5351_IF\LCD_VFO_Si5351_IF.ino:161:55: note: candidate is:

In file included from


C:\Users\ragin\AppData\Local\Temp\Temp1_LCD_VFO_Si5351_IF.zip\LCD_VFO_S
i5351_IF\LCD_VFO_Si5351_IF.ino:12:0:

C:\Users\ragin\OneDrive\Documents\Arduino\libraries\Si5351Arduino-
master\src/si5351.h:285:10: note: uint8_t Si5351::set_freq(uint64_t, si5351_clock)

uint8_t set_freq(uint64_t, enum si5351_clock);

C:\Users\ragin\OneDrive\Documents\Arduino\libraries\Si5351Arduino-
master\src/si5351.h:285:10: note: candidate expects 2 arguments, 3 provided

LCD_VFO_Si5351_IF:165: error: no matching function for call to


‘Si5351::set_freq(volatile uint32_t&, int, si5351_clock)’

si5351.set_freq( bfo, 0, SI5351_CLK2);

C:\Users\ragin\AppData\Local\Temp\Temp1_LCD_VFO_Si5351_IF.zip\LCD_VFO_S
i5351_IF\LCD_VFO_Si5351_IF.ino:165:41: note: candidate is:

In file included from


C:\Users\ragin\AppData\Local\Temp\Temp1_LCD_VFO_Si5351_IF.zip\LCD_VFO_S
i5351_IF\LCD_VFO_Si5351_IF.ino:12:0:

C:\Users\ragin\OneDrive\Documents\Arduino\libraries\Si5351Arduino-
master\src/si5351.h:285:10: note: uint8_t Si5351::set_freq(uint64_t, si5351_clock)

uint8_t set_freq(uint64_t, enum si5351_clock);

^
C:\Users\ragin\OneDrive\Documents\Arduino\libraries\Si5351Arduino-
master\src/si5351.h:285:10: note: candidate expects 2 arguments, 3 provided

C:\Users\ragin\AppData\Local\Temp\Temp1_LCD_VFO_Si5351_IF.zip\LCD_VFO_S
i5351_IF\LCD_VFO_Si5351_IF.ino: In function ‘void loop()’:

LCD_VFO_Si5351_IF:186: error: no matching function for call to


‘Si5351::set_freq(long unsigned int, long long unsigned int, si5351_clock)’

si5351.set_freq(vfo + bfo, SI5351_PLL_FIXED, SI5351_CLK0);

C:\Users\ragin\AppData\Local\Temp\Temp1_LCD_VFO_Si5351_IF.zip\LCD_VFO_S
i5351_IF\LCD_VFO_Si5351_IF.ino:186:63: note: candidate is:

In file included from


C:\Users\ragin\AppData\Local\Temp\Temp1_LCD_VFO_Si5351_IF.zip\LCD_VFO_S
i5351_IF\LCD_VFO_Si5351_IF.ino:12:0:

C:\Users\ragin\OneDrive\Documents\Arduino\libraries\Si5351Arduino-
master\src/si5351.h:285:10: note: uint8_t Si5351::set_freq(uint64_t, si5351_clock)

uint8_t set_freq(uint64_t, enum si5351_clock);

C:\Users\ragin\OneDrive\Documents\Arduino\libraries\Si5351Arduino-
master\src/si5351.h:285:10: note: candidate expects 2 arguments, 3 provided

LCD_VFO_Si5351_IF:191: error: no matching function for call to


‘Si5351::set_freq(volatile uint32_t&, int, si5351_clock)’

si5351.set_freq( bfo, 0, SI5351_CLK2);

C:\Users\ragin\AppData\Local\Temp\Temp1_LCD_VFO_Si5351_IF.zip\LCD_VFO_S
i5351_IF\LCD_VFO_Si5351_IF.ino:191:43: note: candidate is:
In file included from
C:\Users\ragin\AppData\Local\Temp\Temp1_LCD_VFO_Si5351_IF.zip\LCD_VFO_S
i5351_IF\LCD_VFO_Si5351_IF.ino:12:0:

C:\Users\ragin\OneDrive\Documents\Arduino\libraries\Si5351Arduino-
master\src/si5351.h:285:10: note: uint8_t Si5351::set_freq(uint64_t, si5351_clock)

uint8_t set_freq(uint64_t, enum si5351_clock);

C:\Users\ragin\OneDrive\Documents\Arduino\libraries\Si5351Arduino-
master\src/si5351.h:285:10: note: candidate expects 2 arguments, 3 provided

LCD_VFO_Si5351_IF:198: error: no matching function for call to


‘Si5351::set_freq(volatile uint32_t&, int, si5351_clock)’

si5351.set_freq( bfo, 0, SI5351_CLK2);

In file included from


C:\Users\ragin\AppData\Local\Temp\Temp1_LCD_VFO_Si5351_IF.zip\LCD_VFO_S
i5351_IF\LCD_VFO_Si5351_IF.ino:12:0:

C:\Users\ragin\OneDrive\Documents\Arduino\libraries\Si5351Arduino-
master\src/si5351.h:285:10: note: uint8_t Si5351::set_freq(uint64_t, si5351_clock)

uint8_t set_freq(uint64_t, enum si5351_clock);

C:\Users\ragin\OneDrive\Documents\Arduino\libraries\Si5351Arduino-
master\src/si5351.h:285:10: note: candidate expects 2 arguments, 3 provided

exit status 1
no matching function for call to ‘Si5351::init(int)’

Let me know or you can mail me directly


Thanks for your help
 Reply

 Amogh Desai
 1 year ago  Permalink

Hey,

Check if you have installed the si5351 libraries correctly.


-Amogh

 Reply

 LEAVE A REPLY

Your email address will not be published. Required fields are marked *

 Comment
 Name *

 Email *

 Website

Save my name, email, and website in this browser for the next time I comment.

I'm not a robot


reCAPTCHA
Privacy - Terms

Post Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Previous Post: Making a PCB Using Toner Transfer Method – Part II


Next Post: PUNE HAM and Amateur Radio Club (PHARC) eyeball QSO & Antenna Workshop

Custom Search
 MOST READ

How to Root Ubislate 7+ and install Google Playstore app

PUNE HAM and Amateur Radio Club (PHARC) eyeball QSO & Antenna Workshop

Guide to RTL SDR

   

Copyright © 2019 AmoghDesai.com. Powered by WordPress and Stargazer.

Вам также может понравиться