SparkFun Forums 

Where electronics enthusiasts find answers.

Discussions on the software and hardware for Atmel's STK standard.
User avatar
By roach
#111247
I'm looking at the ATmega168A-AU (a 168/20MHz in TQFP package) for my project. But I can't figure out the relationship between supply voltage and operating speed. I know it's buried in the datasheet somewhere, but basically, I want to know: Can I program and run this mcu on a 3.7V LiPo, at 20MHz? I know you'll tell me RTFM (believe me, I'm the first to say it), but for some reason, I'm just not finding it in the datasheet (maybe because it's the same datasheet for eight different controllers?). I'm confused. Also a little thick.

Any help is appreciated!
User avatar
By leon_heller
#111251
See the graph on page 321, you need a 4.5V or greater supply to run at 20 MHz. About 15MHz should be OK at 3.7V, but you need to allow for the voltage falling as the battery discharges.
User avatar
By thebecwar
#111253
Section 28 ("Electrical Characteristics") Subsection 4 ("Clock Characteristics") Paragraph 3 ("External Clock Drive"). Refer to Table 28-11 ("External Clock Drive")

Clock speeds for Vcc 1.8-5.5VDC:
Min: 0
Max: 4 MHz

Clock speeds for Vcc 2.7-5.5VDC:
Min: 0
Max: 10MHz

Clock speeds for Vcc 4.5-5.5VDC:
Min: 0
Max: 20MHz

If you want 20MHz you'll need a DC-DC converter/regulator to provide an absolute minimum Vcc of 4.5v. You'd probably want to go with 5v. If you need a 5v boost regulator, you can't go wrong with the mintyboost kit. The tolerances on a switching boost regulator are probably too tight to breadboard. If you're making a PCB check out the LT1302. If you don't plan on drawing significant current, you could also look into a charge pump to get you up to 5v. Your choice.
User avatar
By roach
#111256
Thank you both for your help!

A little more info. I'm using this chip (since it seems to be the only even-vaguely compatible one in the visible universe, Atmel's legendary supply shortages in plain evidence here) to develop a custom Arduino board. I'd be perfectly happy with any arduino-compatible mcu, running at anyspeed, as long as it comes in a TQFP package.

So are you saying that I can run this mcu at lower speeds (with a lower VCC)? I guess I should use a correspondingly lower-frequency XTAL?

I know these are newbie questions, I apologize :-)
User avatar
By roach
#111267
Thanks Leon. I guess what I'm asking is, since I don't see a 16MHz option specifically mentioned (only 4, 10 and 20, and their respective minimum voltages, etc), does that mean I can't use a 16MHz xtal? Or does it mean I can put a 20MHz xtal on there, and just assume that everything will run slightly slow (which is fine with me)?

edit: Nevermind. The datasheet says these speeds scale linearly between 2.7V and 4.5V, so I guess 15.555 is about as good as it gets. I'll go down to 10MHz.

edit: Of course, there's no 10MHz Arduino option, is there...

BONED!!!
User avatar
By thebecwar
#111278
why not just use a boost regulator. The LT1302 I mentioned can do 5V@500mA. That way you can use the 16MHz crystal that the Arduino libraries need. A lot of timing elements on the board and in the bootloader have a hard-coded clock freq, so for complete compatibility with the other boards, you should use a 16MHz clock.
User avatar
By roach
#111307
thebecwar wrote:why not just use a boost regulator. The LT1302 I mentioned can do 5V@500mA. That way you can use the 16MHz crystal that the Arduino libraries need. A lot of timing elements on the board and in the bootloader have a hard-coded clock freq, so for complete compatibility with the other boards, you should use a 16MHz clock.
The PCB I'm developing is really, really tiny. I wasn't sure I had enough room for something like this, though looking at the data sheet, it looks like it comes in a nice little SOIC package, so I might be able to fit it in.

Thanks!