Connecting an Adafruit Clock Generator Si5351 to an Arduino Uno

Hello,

I am new to Arduino so this question may sound simple. So, I basically want to make the Arduino run faster or slower using the clock generator mentioned in the title (Overview | Adafruit Si5351 Clock Generator Breakout | Adafruit Learning System). In my experiment, I want to do some calculations in different frequencies and compare the time needed to complete them. I connected the VIN, GND, SDA and SCL pins of the clock generator as the tutorials say but now I don't know where to connect the Clock 0, so I can actually get the frequency.

Apologies if the post is really basic. Any help appreciated

You should probably not try to have the Arduino UNO control its own clock. If the clock ever got set to a value that the Arduino couldn't handle you would have to put the resonator back in to do any uploads.

I would have one UNO control the clock chip and use that to drive the other UNO. You will have to remove the resonator and wire the clock to whichever side of the resonator is connected to XTAL1 (physical pin 9 of the ATmega328P chip). I think the existing fuse settings will work but you might want to change them to specifically enable an external clock.

PizzaGuy:
...
I want to do some calculations in different frequencies and compare the time needed to complete them.
...

Why do you need to do this? Computing at this level is linear, if you half the clock speed you double the time to do something. Just do the job at whatever speed the Arduino currently runs and use a calculator.

@Graynomad, My bad, I should explain myself better. I want to test the limits of the Arduino in different temperatures and then see at what temperature each test will fail(Flow, calculation, and SRAM test). When I decrease the temperature the transistors should be able to change state faster, allowing the Arduino to run at a higher frequency.

@Johnwasser, Unfortunately, I don't have two Unos to do the job correctly. However, if I understand correctly, I just have to connect the pin that generates the signal to the XTAL1 pin on the Arduino and then make sure that the external clock is enabled?

Thanks for your help, really appreciated.

PizzaGuy:
However, if I understand correctly, I just have to connect the pin that generates the signal to the XTAL1 pin on the Arduino and then make sure that the external clock is enabled?

You forgot the part about removing the resonator. You could avoid that by bending pin 9 of the ATmega328P up so it doesn't go into the socket. It will probably work with the current fuse settings but might work over a wider range of frequencies if you set the fuses for external clock.

First of all thanks for the help,

Now I am stuck on the part where I have to bend the pin 9 of the ATmega328p. If I understand correctly, the ATmega328p is a rectangular piece that is located in the middle of the board. But I have the Arduino UNO SMD and I can't find this piece. So, where can I find the pin 9 of the ATmega328p on my board?

Thanks

If you have an SMD version of the CPU you are stuffed, unless you have pretty good soldering skills (it can be done).

It may be easier to remove the crystal.

Graynomad:
It may be easier to remove the crystal.

And to remove the crystal I just take out the part that has written on it "16.000" with pliers? Thanks.

PizzaGuy:
And to remove the crystal I just take out the part that has written on it "16.000" with pliers? Thanks.

Yes.
And post a Youtube video of it.
Leo..

Depends on the model, I haven't looked at these for years but if you have a silver "can" with "16.000" printed on the top then that is the crystal. You can unsolder that easily but there will also be a capacitor to GND, that probably needs removing as well.

Attached is a picture of the Arduino board. So I remove the crystal and then the capacitor to the GND. But, I am not quite sure which one is the capacitor (I think I can see two of them). Also, where is the XTAL1 pin?

Thanks a lot.

PizzaGuy:
Also, where is the XTAL1 pin?

There are THREE styles of surface mount ATmega328P and they have the XTAL1 pin in different places. Pins are numbered counterclockwise from the Pin 1 mark (dot or clipped corner).
32-pin TQFP: Pin 7
28-pin MLF: Pin 5
32-pin MLF: Pin 7

If I counted the 7 pins correctly the XTAL 1 pin is at the 5v pin. Does that sound normal? Also, I am not quite sure if I should count only the 'female' pins, or the male as well. And about the capacitor to the ground, where exactly is it located? Sorry for the multiple questions, and thanks again for your help.

In your picture, look at the 32-pin square chip to the left and up from the can marked T16.000. That is the ATmega328P processor. The Pin 1 marker is in the lower left corner. Counting across the bottom from left to right you have pins 1 through 8. Pin 7 (XTAL1) and Pin 8 (XTAL2) go down to the small surface-mount component and onward to a tiny metal can with six pins. THAT tiny metal can is the resonator. The larger can marked T16.000 is the crystal for the USB-to-Serial chip. Use heat to desolder and remove the tiny can (resonator) and the surface-mount component. Connect the clock to the trace that goes to Pin 7.

@Johnwasser

Thanks a lot, very nice explanation. I had almost given up before coming to this forum. I will try that tomorrow and keep you updated. Again, thanks a lot.

So, I think I messed up. I removed the small surface-mount component and the tiny can(couldn't remove it completely).Then I soldered a wire from the Clock 0 of the clock generator to pin 7. Then, I tried to run the sketch that came with the clock generator library. The sketch basically generates 3 signals and shows you how you can modify them. I got the error avrdude: stk500_recv(): programmer is not responding. Attached is a picture of the current situation. I tried other sketches as well. None of them worked.

Without the clock running your Arduino will do nothing. If you don't have the clock running BEFORE you try to upload a sketch you won't be able to upload a sketch.

And how can I make the clock run beforehand? Thanks.

PizzaGuy:
And how can I make the clock run beforehand? Thanks.

Maybe you could get a second Arduino to control the clock.

I guess that's what I have to do. What model do you recommend and how can I make sure that it is genuine?