The new generation of ATmega and ATtiny (for example, the ATmega3208) now supports an internal 16/20 MHz oscillator. However, looking at the safe operating area and the provided BOD levels, I'm confused about how they are supposed to be used without an external BOD or other special care.

Safe Operating Area

The selectable levels of the BOD are 1.8V, 2.6V and 4.3V.

As the highest BOD level is 4.3V, it seems I would officially require an external BOD to be able to use 20 MHz. Another needlessly complicated solution would be to use the "Voltage Level Monitor" which can generate an interrupt if I'm 5%, 15% or 25% above the BOD level, so, for example, the interrupt triggers if I've fallen below 4.515 V (4.3 + 5%) and then I would need to cut my own power supply.

Even running at 16 MHz seems tricky. Officially I need to be above 3.78V, but there is no BOD level in this area, so I would be forced to use 4.3V anyway. Which is a shame, because I would like to use the time the voltage is falling from 4.3V to 3.8V to save stuff to eeprom, but if I have no BOD around 3.8V then I have to switch off at 4.3V.

And the voltages required for the eeprom are not mentioned anywhere. There are two fail modes for the eeprom:

  1. the voltage is physically not enough for the eeprom (yet they don't mention what this voltage is)
  2. the voltage is not enough for the processor, so it might execute random commands.

Only the second one is depending on the clock frequency. Does this mean I could run on 5 MHz at 1.8V and still safely use the eeprom?

(back in the day I did extensive testing with the old ATmega328, and it always worked fine with 2.7V even with 20Mhz, despite the datasheet saying 4.5V too, at this frequency. However, this being a completely new architecture, I wouldn't rely on my experiences with the old one)

Does this mean the built-in BOD is almost useless, or am I too overly cautious?

  • 1
    \$\begingroup\$ Are you using it over that full temperature range? If not, some judicious de-rating may be possible. \$\endgroup\$
    – user16324
    Jun 3, 2021 at 13:51

1 Answer 1


Certainly it looks like the BOD levels are selected for 5,10 and 20 MHz and if you want to use a different frequency then there isn’t an ideal BOD level and you’d need an external voltage monitor. It’s fair to say that most devices will perform properly somewhat below the minimum guaranteed level - bear in mind that this is (hopefully) tested in the factory and any that fail are rejected, so you might expect that there’s a certain amount of headroom built in. Your concerns are valid though, I’ve had issues with ATmega processors corrupting EEPROM contents on power-off when the BOD wasn’t set properly.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.