Arduino on ATMEGA1280, 1281 and 2560

Hi!

I'm facing a new communications project and I need between two and four hw serial ports. It's a battery-based application, so power consumption must be kept as low as possible and sleep modes should be considered. 8-)

I've already read several posts about this but I need some more specific information:

1) Is it possible to run the Arduino Bootloader on an Atmega1280, 1281 or 2560 at 3,3 V and 8 MHz? Where can I find it?

2) Regarding the battery supply, there is no need to recharge it but its power must be kept for 1-2 years.

  • which is the recommeded battery technology? Litium?
  • I think that an input voltage between 4,8 and 3,6 V could be perfect. What do you recommend?
  • Peak power consumption should be around 100 mA, but most of the time (95%) the system will remain slept. Which supply IC's do you recommend? I would point to Low Drop-out regulators...
  • Any suggestion for battery voltage monitoring IC's?

I've found most of the parts but these may condition my project.

Thanks in advance!

/me

A couple things to consider.

Don't use a regulator. I would be better to use a battery that had the voltage you needed. The regulator will waste your precious power.

You will want to look over the datasheet for these processors very carefully. Make sure they can run at 8MHz with only 3.3 volts. From what I remember it is out of spec to run those processors at 8MHz with only 3.3 volts, but I could be wrong.

Make sure you look at the different sleep modes and the current draw with those modes. You can then calculate the amount of current you will need and can then pick a battery.

I believe you can check the battery voltage with a few components and the analog pin.

You'll probably have to design a custom PCB that doesn't have a USB interface or a regulator. You can easily get a basic device working with a SMD breakout board and very few components.

[edit]Looks like they will work at 8MHz down to 2.7 volts[/edit]

You will want to look over the datasheet for these processors very carefully. Make sure they can run at 8MHz with only 3.3 volts. From what I remember it is out of spec to run those processors at 8MHz with only 3.3 volts, but I could be wrong.

Regarding to the operation frequency, I was thinking in a graph which shows Freq vs voltage supply. You'll find clock specifications in page 371 of ATMEGA640/1280/1281/2560/2561 datasheet. Maybe you meant 16 MHz...

You'll probably have to design a custom PCB that doesn't have a USB interface or a regulator. You can easily get a basic device working with a SMD breakout board and very few components.

I use these FTDI adapters from Sparkfun. http://www.sparkfun.com/products/9716 I'll need to afford a 3,3V new one. Mine are all at 5 V.

I believe you can check the battery voltage with a few components and the analog pin.

I've found some tricks at Microchip website and they have sigma-delta ADC's thought for these applications. Current consumption is around 1 uA.

Don't use a regulator. I would be better to use a battery that had the voltage you needed. The regulator will waste your precious power.

I've already thought this, but I believe that most of IC's need a constant voltage supply. Another option could be a DC/DC. If the Litium batteries are rated 3,6V, this means that the DC/DC will decrease voltage supply to this level. Any suggestion?

Those cheap DC/DC converters use heaps of power, maybe 20-30mA doing nothing. There would be more efficient ways of doing it though I'm sure. For example I've seen battery packs (Lithium?) with a built in 5v upper so they must be pretty efficient. I can't remember where I saw them, somewhere like Pololu I think.

I believe that most of IC's need a constant voltage supply

Is that really the case, it depends on the actual chips you're using I suppose. What are you using?

It would certainly be the most efficient to run straight from a battery.

I believe you can check the battery voltage with a few components and the analog pin.

Yep, drop the voltage with a divider, read with an ADC using an internal reference.


Rob