Atmega328P-PU low voltage operation

hello, i'm going to operate atmega328 chip on breadboard without any crystal. it has duemilanove bootloader on it. so once i program it using arduino board, i'll take it on a breadboard and it would do it's job, but problem is that i'm limited in voltage, so i'd like it to run on 1.8 - 2.2 volts. i've googled and read that it would have low operational Freq, but i don't care. i've tried to configure boards.txt in arduino IDE for low Freq, but it didn't work. so please help me.

thank you!

giorgi111-111:
hello, i'm going to operate atmega328 chip on breadboard without any crystal. it has duemilanove bootloader on it. so once i program it using arduino board, i'll take it on a breadboard and it would do it's job, but problem is that i'm limited in voltage, so i'd like it to run on 1.8 - 2.2 volts. i've googled and read that it would have low operational Freq, but i don't care. i've tried to configure boards.txt in arduino IDE for low Freq, but it didn't work. so please help me.

At that voltage you can only run it at 4MHz. If speed isn't very important and you don't want to use a crystal then it's much easier to run at 1MHz. You can do this with the "Internal RC Oscillator" - see the "System Clock and Clock Options" section of the datasheet for details.

You select it by burning fuse bits. For that you need an ISP programmer, you can't do it with just a bootloader. ISP programmers are about $8 and it's well worth getting one if you're doing this sort of thing. usbtinyisp for sale | eBay

Or...you can use your Arduino as an ISP programmer. http://arduino.cc/en/Tutorial/ArduinoISP

nb. If the chip has a bootloader on it then you need to provide a crystal until you select the internal RC oscillator as clock source.

i take my atmega328 chip (duemilanove) and put it in arduino board, then i program it, using this configuration :
##############################################################

atmega328.name=Arduino Duemilanove w/ ATmega328

atmega328.upload.protocol=arduino
atmega328.upload.maximum_size=30720
atmega328.upload.speed=57600

atmega328.bootloader.low_fuses=0xFF
atmega328.bootloader.high_fuses=0xDA
atmega328.bootloader.extended_fuses=0x05
atmega328.bootloader.path=atmega
atmega328.bootloader.file=ATmegaBOOT_168_atmega328.hex
atmega328.bootloader.unlock_bits=0x3F
atmega328.bootloader.lock_bits=0x0F

atmega328.build.mcu=atmega328p
atmega328.build.f_cpu=1000000L
atmega328.build.core=arduino
atmega328.build.variant=standard

then i take chip and put on breadboard, where voltage is 2.0 volts it does't work, but when voltage changes to 3.7v it works fine.

Bits 7-6-5-4-3 of the Extended Fuse Byte are not used. Bits 2-1-0 set the Brown-out Detector trigger level.
See Table 28-6 and Table 29-13
0x05 = 00000101, effectively xxxxx101

Which sets the Brown-out level at 2.7 +/-0.2V.
So 2V is too low, 3.7V would be okay.

A fuse setting of xxxxx110, or 0x06, would bring that down to 1.7-2V.
Or xxxxx111, 0x07, and disable brown out detection.

please, I didn't understand, can you just copy correct version of fuse bits ?
thank

i can't understand what i've to change. please provide me with a tutorial where i can change it and work with atmega using 2.0 v, or just copy me a right configuration

Change the extended Fuse Byte to 0x06.
Put that value in boards.txt in place of 0x05.

Hi,
if I may chime in here...
I have a pro mini 5V/16MHz board, but want to use it with a 3V sensorboard.
As I understood, it would be possible when clockspeed is not important.
But what about I2C and SPI settings? Do I have to change anything, when the pro mini runs at 8MHz?

I'm referring to that snip:

  // Start the SPI library:
  SPI.begin();
  SPI.setDataMode(SPI_MODE3);
  SPI.setClockDivider(SPI_CLOCK_DIV8);

Maybe I just need to take the 3.3V/ 8MHz bootloader?

Can I leave the Crystal on the pcb, when I use the internal RC-oscillator?

Yes, you can load the 3.3V/8MHz bootloader
You, you can leave the crystal in place.
You need to change the settings in boards.txt to reflect using the internal oscillator.
SPI DIV2 is the fastest setting, 1/2 the system clock. DIV8 will be 1/8, or 1 MHz.

You are powering the board from 3.3V on the VCC pin to be compatible with the sensor?

CrossRoads:
Yes, you can load the 3.3V/8MHz bootloader
You, you can leave the crystal in place.
...good to know :slight_smile:

You are powering the board from 3.3V on the VCC pin to be compatible with the sensor?

That's the plan for debugging. Later I can change the voltage regulator onboard.

( note to myself: get an 3.3v FTDI programmer first )

If you disconnect your 3.3V sensor first, you can program with a 5V FTDI programmer.