Atmega1284P @ 16MHz with 3.3V?

I'm wanting to run the 1284P directly from lithium (4.2V peak, 3.7V nominal) with a LDO 3V3 regulator (dropout ~3.4V). Page 325 of the Atmel datasheet (http://www.atmel.com/Images/doc8059.pdf) shows the speed grades for the chip. My first question is to ensure I understand the graph correctly. Since it's linear it seems like a simple cross-multiplication to get the exact speed at a given voltage. If my understanding/math is correct...

2.7V @ 10MHz (given)
3.4V @ 12.58MHz (calculated for regulator dropout)
3.7V @ 13.7MHz (calculated for lithium nominal)
4.2V @ 15.55MHz (calculated for lithium peak)

The second question is that assuming the above is correct I understand I'll be overclocking a bit at 16MHz, especially as the batteries drain. Has anyone else done this? Maybe with a 328P and can let me know if things went well or they had problems? I feel like I've read that people have done this without any issue but since this is a small-run commercial product I'm working on I don't want it to be unstable.

Any advice here is appreciated -- thanks in advance!

CraigKC:
assuming the above is correct I understand I'll be overclocking a bit at 16MHz, especially as the batteries drain.

I'm confused. Are you running the processor off the 3.3V regulator or directly off the battery? If you use regulated voltage the battery voltage won't make a difference.

Has anyone else done this?

Yes, and it is not a problem, unless you are designing for NASA.

@ dhenry... Don't quit your day job. Nasa?...

Bob

CraigKC:
Has anyone else done this? Maybe with a 328P and can let me know if things went well or they had problems? I feel like I've read that people have done this without any issue but since this is a small-run commercial product I'm working on I don't want it to be unstable.

Any advice here is appreciated -- thanks in advance!

The clocking/voltage specs seem to be very conservative. I (and many others) have run atmega and attiny devices at 16MHz with 3.3V, for example, without any observable problems. Indeed, I've never heard or seen any report of a problem overclocking these outside of the datasheet specs.

I personally haven't tried running at a lower voltage than 3.3V at 16MHz, so couldn't tell you where the practical cut-off is. There must be limits, though, and although it is possible to disable brown-out reset completely by fuse settings, I wouldn't recommend it -- it could be coincidence, but the only 328p chip that has mysteriously died on me (even HV programming couldn't get a response from it) was one that I had completely disabled BO resets. I now routinely run BO reset at 2.7V for a 3.3V powered device.

But note that running outside these parameters all bets are off regarding temperature range of the device, life time of the device, and reliability of the device.

Going outside published parameters is only what idiots do, like our dear henry.

Grumpy_Mike:
Going outside published parameters is only what idiots do.

wimp :wink:

You may consider to set "Full-swing Crystal.." ("Full Swing Oscillator..") fuse to be on the safe side.. :.
http://www.engbedded.com/fusecalc

I've run ATmega328's @ 16MHz @ 3.3V. One is connected to a nRF24L01 wireless module and a couple of I2C sensors. Have not had any issues.

pico:

Grumpy_Mike:
Going outside published parameters is only what idiots do.

wimp :wink:

Idiot :wink:

Bajdi:
I've run ATmega328's @ 16MHz @ 3.3V. One is connected to a nRF24L01 wireless module and a couple of I2C sensors. Have not had any issues.

So have you tested this over the full temperature range, over the full voltage tolerance range. Have you tested the voltage thresholds of the inputs, the voltage outputs and loading. The propagation delays and all the machine op codes? How many samples have you tested?

No I thought not.

A simple functional test tells you absolutely nothing but yet beginners often think it is the be all and end all. It is not.

For hobby stuff I see no reason to not try it. A crystal is easily swapped if it doesn't work. The downside is that when you run in to trouble you will keep guessing if it's the mcu that is acting strange or if your code is buggy. If I would make a commercial device I would stick to what the datasheet says.
Some people have no problem in selling boards that don't meet the specifications. I've seen a Chinese Arduino clone which has a jumper to switch between 3.3V and 5V and has a 16MHz crystal.
When I was a student I spent most of my free time overclocking cpu's using a LN2 setup just to see what the max frequency was. Some cpu's it was possible to run them at 1.5-2x the rated clock frequency, would only work for a couple of minutes though :stuck_out_tongue:
When I last ordered some 16MHz crystals from Tayda I saw that they also sell 25MHz crystals so I couldn't resist and bought some :stuck_out_tongue:

Grumpy_Mike:
So have you tested this over the full temperature range, over the full voltage tolerance range. Have you tested the voltage thresholds of the inputs, the voltage outputs and loading. The propagation delays and all the machine op codes? How many samples have you tested?

Yawn :wink:

For hobby stuff...

Some among us like to fancy themselves as designers for NASA.

If all you are going to be doing is to flash an LED on the Arduino board, then you can get by going out of spec. Who knows or cares if it misses a flash or hangs up and does not work. But if you are doing something serious like making an alarm system, replacing a controller for your dish washer or building a keypad to open your garage door, then you need to be exact and operate within the specs of all the parts you are using.
It is easier to do it right the first time than to figure out what is wrong.

dhenry:

For hobby stuff...

Some among us like to fancy themselves as designers for NASA.

Assuming it is aimed at me for at least wanting to stick to the data sheet.

Here is where, yet again, you show your ignorance dear henry. My background is in consumer electronics. Here you have to design so that when the stuff is made in a factory the other side of the words you get a good yield, that means less than 1% need rework and that there are as few returns under a one or two year warranty as possible. For that anything under 3% return is considered good. It has to have a 5 year life but not much longer, plus it has to be made as cheaply as possible.

Now with NASA you are making only one or two, you can test the f**k out of it, it doesn't matter what it costs but it must not fail. That is a very different skill set.

What is your skill set dear henry? Or don't you have one?

Some among us like to fancy themselves as designers for NASA

No doubt the same NASA designers who confused lbf and newtons, and crashed a $125 million spacecraft?