Atmega 328p 8mhz won't run at 3.3V (internal oscillator)

So I am not sure what I am doing wrong here. I have a bootloaded my 328p with the 8mhz bootloader, I have set the fuse settings to an internal oscillator, brownout detection is off, but yet when I fire up my little blink program it runs at 5V and not at 3.3V. We have a variable voltage supply and we turned it down slowly to see where it powers down, the atmega seems to die at 3.45V.

Steps I am following: 1. Insert atemega328p into Arduino UNO 2. attach AVR pocket programmer 6 pin connector to the ICSP header on the UNO 3 Select board in Arduino environment(ATmega328 on a breadboard (8 MHz internal clock)) 4 Burn bootloader 5. Remove from UNO 6. place in bread board, attach LED to CORRECT pin 7. attach power and ground @ 3.3V from arduino UNO 8. Feel sad at my failure as nothing happens 9. hook up 5V from UNO 10. Feel a mixture of confusion and frustration as every 5V blink mocks me. on a breadboard (8 MHz internal clock)



I have tried several times through out various projects that I have done to figure out this internal oscillator thing. any ideas?

  1. attach power and ground @ 3.3V from arduino UNO

What is the maximum current rating of the 3.3V regulator? Is your circuit exceeding that?

it is one LED and the uC, I thought the regulator in the arduino could handle 500mA. at most I would think uC + LED would be 50mA. it is running straight up Blink.ino

What is the maximum current rating of the >>> 3.3V <<< regulator?

"The Uno solves this problem by adding a new 3.3V regulator the LP2985 which can easily provide 150mA."

We also used an external adjustable power supply capable of delivering 1A. That is how I know it was going out at 3.45, which leads me to believe it is a voltage issue.

TimmyCNinja: it is one LED and the uC

You forgot something.

[quote author=Coding Badly link=topic=200721.msg1480050#msg1480050 date=1385256163]

TimmyCNinja: it is one LED and the uC

You forgot something.




oy, checking now.

So that was not it. Oddly it turned out to be a strange error that perhaps some of you might have seen. So when we were going to burn the fuse bits, it was stating that an error had occurred. when I would attempt to burn the efuse bits to FE or FF, this error would occur while attempting to burn the bootloader. it would say checking FE != 06 and it would not attempt to burn the bootloader. we took that to mean that it had screwed up.

But strange enough 07 is the same as FF according to this, so we just loaded our program using the ICSP since we don’t care about loading programs with serial. this was really hard for us to figure out and I hope someone else can benefit from this. Finally got the internal oscillator working.

There is some ambiguity (and thus tool incompatibility) in the way that unimplemented fuses should have their value specified. Only the low three bits of efuse "exist", and some apps expect non-existant fuses to be "1" (unprogrammed; this is consistent with the datasheet), but a typical user interface will expect unused bits to be left at 0, because obviously you can't SET a non-existent bit, either.

I have the same problem. I tried also to : -change bootloader to optiboot -change internal clock to 1Mhz -change Atmega 328P.

The only way to solve is increasing a little bit the power supply.

The only explanation i give myself is something related to the internal clock jittering and the internal triggers of clock waveform.

The original problem was that the the Atmega328p was not configured to run at lower voltages. That is the fuses for the "brown out" detection were incorrectly set, causing the device to reset as soon as the voltage reached a lower threshold.

If everything works for you at higher voltages (up to 5.5 volts) then it is likely you have the same problem.

Google for: Arduino brown out