Hello everyone,

This is more fun oriented project than something useful (or not) since ATmega328 was not designed for clock frequency above 20MHz (see datasheet). So, 30MHz is push it far from the limit. :)

Besides, I have not studied very much to make this, sorry!

In this "experiment", instead of the 16MHz crystal (as in Arduino), an 29.491MHz oscillator were used, connected to a 100nF capacitor to filter DC levels. The signal coming from the capacitor goes to the ATmega's XTAL1 pin. The XTAL2 pin was not connected.

The picture below shows the oscillator signal after the capacitor:

For checking the difference on the speed before and after the overclock, I have used the following code with the Arduino's IDE (UNO/Optiboot bootloader). Very simple, it just put the B register pins High and Low.

PS: To upload the program, the 16MHz crystal was used instead the 30MHz oscillator. I don't know yet why it is necessary, since the oscillator does not work during the upload. Probably, the AVRdude must be configured (using the IDE?), so the bootloader speed can be the same, since the uC is responding faster. Any help here will be appreciated.

void setup() {                

    DDRB = 0xFF;

}

void loop() {

  while(1){

    PORTB = 0x00;

    PORTB = 0xFF;

  }

}

Anyway, take a look at the results for both speeds:

16MHz CRYSTAL:

29.491MHz OSCILLATOR:

The frequency come from 4MHz to almost 6MHz. A very interesting increment. But is the uC working fine?

Probably not! Or it will probably show bad functioning sometime or in some situations. But, since this is more for fun than to manufacture any medical device, why don't we test the serial communication?

Serial Communication

Before we can use the serial communication, it is necessary to change the operation configuration, so the timing can match the new clock frequency: 29.491MHz (not 16MHz anymore).

Since the Arduino's IDE was used for coding and upload, the boards.txt file, in the Hardware folder had to be changed, defining the new clock frequency. In this "experiment", it was created a new board on the boards list, but changing the frequency of the UNO board would be enough (the ATmega328 was used with UNO's bootloader).

Take a look at the line 35.

Before uploading the code, the new board was selected, so the uC can "know" in which frequency it is running. This way, it can be possible to calculate the time correctly for the baud rate. In this case: 9600.

void setup() {                

    Serial.begin(9600);

}

void loop() {

 if (Serial.available()>0){

   Serial.write(Serial.read());

 }

}

The code is very simple, it just receive a character and repeat it.

It works! The characters are repeated using the Serial Monitor just fine!

How useful the overclock can be?

Probably most for learning and fun, but personally, I think it can improve this project: Arduino Generated VGA Color Signal, published here in GL:

With a higher frequency it will be possible to have more pixels on the generated image.

But this is for the next hacking! :)

Thanks everyone!!!

Views: 8060

Tags: ATmega328, arduino, atmega, overclock, vga

Comment by Kathy Moseler on December 23, 2012 at 6:33pm

Hi, it would not surprise me that you could successfully clock the Arduino faster because most chip makers design over a specific temperature range (most likely 0-70 C).  You can clock it much faster at 25C than at 70C.  20MHz would be guaranteed at 70C.  The highest possible frequency at 25C would have to be characterized; it would be unpredictable chip to chip (i.e. what works for one person may not work for another). 

Another factor is differences in production lots.  Some chips work faster than others.  Chip makers often sort chips during testing and sell faster chips at higher prices.  I haven't seen that Arduino does this; perhaps they should consider it.

Comment by Marcelo Rodrigues on December 24, 2012 at 4:31am

Hi Kathy,

Indeed. Probably it is possible to go even faster, but near 25C, as you mentioned.

Would be nice to have a plot temperature x maximum clock frequency. I don't think the datasheet provide this info, but I will take a close look.

Thanks!

Comment by Kathy Moseler on December 24, 2012 at 8:17am

Good point, I am not sure if you will find it on the datasheet.  Such plots are always on the datasheets of small components, but on a microprocessor - I am not sure if they include it.  Cheers, Kathy

Comment

You need to be a member of GarageLab (arduino, electronics, robotics, hacking) to add comments!

Join GarageLab (arduino, electronics, robotics, hacking)

Latest Activity

GarageLab commented on GarageLab's blog post Tutorial: Using GPS Shield as an Anti-Theft Device
"Hello Pierre, Yes, You can do it. Use a GPS module like one…"
1 hour ago
GarageLab posted a blog post

VoLumen — The Most Advanced Persistence of Vision Display Yet

We’re just blown away by this new project by [Maximilian Mali] and [Sebastian Haushofer]. It’s a…See More
2 hours ago
Amy Ciesielka posted a blog post
7 hours ago
Dam Srasquasz commented on GarageLab's blog post Tutorial: Using GPS Shield as an Anti-Theft Device
"@up you can buy any shield you want for example: click sending text messase is easy and…"
yesterday
Profile IconMarek Florianczyk, Amy Ciesielka and Dam Srasquasz joined GarageLab (arduino, electronics, robotics, hacking)
yesterday
David Braithwaite posted a discussion

Robot, motor, relay kits

Hi,I have been playing around with bots for a few years now, I have found these guys that sell a…See More
yesterday
David Braithwaite replied to derrrick wiltshire's discussion dc motor (small 5v) reverse direction control circuit
" Hi, Check these guys out for these kits, Rk Online Store Laters "
yesterday
Chas Stearns updated their profile
Monday
GarageLab posted a blog post

Real-life Spider-Man webshooter uses a coil gun instead of web fluid

In honor of The Amazing Spider-Man 2 opening tomorrow in Germany (among other places), German laser…See More
Thursday
Shannon Bradley and Marcelo Rodrigues are now friends
Apr 16
Terry Renner is now a member of GarageLab (arduino, electronics, robotics, hacking)
Apr 16
Andy S posted a discussion

Arduino MEGA boolean?

Hi everyone,been banging my head against the wall a few days now.i have a small project, where i…See More
Apr 16
Bobby Marshall posted a video

SELFIE Mirror

Meet the S.E.L.F.I.E., the "The Self Enhancing Live Feed Image Engine". Find out how it works: http://istrategylabs.com/2014/04/take-an-instant-selfie-with-t...
Apr 15
GarageLab posted a blog post
Apr 15
pj jones posted a status
"Designing an Home Automation Project"
Apr 14
Profile Iconpj jones, Robert Kribel and Lars Goldschlager joined GarageLab (arduino, electronics, robotics, hacking)
Apr 14
Fontaine Pierre commented on GarageLab's blog post Tutorial: Using GPS Shield as an Anti-Theft Device
"Hi, Is it possible to make a car tracker with this GPS + GSM shield to send a message if limits…"
Apr 11
GarageLab posted a blog post
Apr 11
Profile Iconeslam mohamed haredy, Wesley Castillo and Lise Pape joined GarageLab (arduino, electronics, robotics, hacking)
Apr 10

© 2014   Created by Marcelo Rodrigues.

Badges  |  Report an Issue  |  Terms of Service