3
\$\begingroup\$

BOD enabled, fast rising power, slowly rising power

I'm trying to run an ATmega48 off a quartz oscillator at 16MHz like so

Oscillator

Can't find anywhere what's the correct value to set the SUT to, or even what BOD means.

\$\endgroup\$
4
  • 1
    \$\begingroup\$ It is good practice to provide a link to the datasheet so users don't have to locate it. \$\endgroup\$
    – JYelton
    Commented Jul 7, 2023 at 16:09
  • \$\begingroup\$ I'm using SUT 11 and CKSEL = 1111 with 16MHz external crystal. And I have disabled CKDIV8. So the fuse bits low - 0xFF, high 0xDF. And info about BOD microchipdeveloper.com/8avr:bod \$\endgroup\$
    – G36
    Commented Jul 7, 2023 at 16:22
  • \$\begingroup\$ Do you need the Brown Out Detector? And how fast does your PSU ramp up? Answering these will give you your answer. \$\endgroup\$
    – user16324
    Commented Jul 7, 2023 at 16:34
  • \$\begingroup\$ Crystals are very high Q and so if the power does not rise quickly to give them a hearty whack they may take some time to slowly increase and then stabilize at full amplitude, so you may wish to have a longer SUT just in case. That's (usually) unnecessary with (relatively) low-Q ceramic resonators. Other than the startup delay time, the choices of BOD and oscillator type is not interrelated. \$\endgroup\$ Commented Jul 7, 2023 at 16:56

1 Answer 1

3
\$\begingroup\$

BOD is "brownout detection" and mentioned several places in the datasheet (search for "BOD").

Brownout detection information

Above, from page 321, you can see that brownout detection can be disabled or set for different voltage levels. Brownout detection is basically a method by which the microcontroller will shut down "gracefully" in the event of low voltage. Depending on the application, various bad things can happen (memory corruption, incomplete carry-out of instructions, etc.) in the event of a power failure that is preceded by a voltage sag. Enabling BOD allows the microcontroller to record the reason for reset and avoid certain undesired outcomes.

If your application requires the MCU to reset and be operational very quickly, you would want to employ BOD and have the shortest start-up time. When using a crystal oscillator, for example, the minimum delay is 16 + 14 clock cycles. If you have to accommodate slowly rising power (e.g. >10 ms), the delay increases to 16 + 14 clock cycles plus 65 milliseconds.

For hobby use, it's generally a safe bet to use the longest startup time and not use BOD. Unless you know your requirements dictate otherwise, of course. The startup time is really only a concern when other components are interacting with the MCU and it is necessary to know, for example, how long to wait for serial communication or an ADC conversion or something in the event the MCU is reset.

Some additional information you may find helpful:

\$\endgroup\$

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.