Search This Blog

Thursday, 23 January 2014

Minima Arduino si570 Interfacing


Been fiddling a bit more this evening and have interfaced the si570 silicon labs device:

Now, I haven't ever used one of these before, but I happened to have one here. I verified that it was a CMOS 3.3V variant (there are lots of different types) and then thought about how to connect to the thing - it's very, very small.

So, the first thing I did was find some off cuts from resistors on my bench and solder them to the device which I held in place with some trusty blue tac:

I then assembled the pull-up resistors and the coupling caps on a bit of copper board:

NOW THIS BIT IS VERY IMPORTANT because the si570 is a 3.3V device I have had to modify the file TWI.c to remove software 5V pull-ups on the two interface lines, as I am using a Mega2560 board I HAVE HAD TO PHYSICALLY REMOVE ON BOARD PULL UP RESISTORS also. I have documented the details of the mod on the Minima Wiki here:

If you don't do this then I suspect the 5V pull ups will result in bye bye si570.

So, I connected it up to the Mega2560 and connected a 50R terminated 'scope to the capacitor leg you can see in the image above, this is with the scope bandwidth limit enabled:

Here, with a x10 probe and no 50R termination:

here, with a x1 probe and no 50R termination:

and here with a x1 probe and a 50R termination:

here's the signal on the Spectrum Analyser:

And here, for comparison, is a 34MHz signal out of an AD9851 Arduino controlled DDS I made back here:

and it looks like this:

CW Cat hasn't been helping much today:

Good though, egh?


  1. For cheap and safe level shifting I2C signals see Phillips AN97055, available as a free pdf from many places.

    All you need (apart from the pullup resistors) are 2 mosfets. I use 2n7000 'cos they ony cost 4p each.


  2. This comment has been removed by the author.