What Do I Lose By Running 8MHz?

I'm doing some custom boards using a 328P running at 3.3V, which means I cannot run at the normal 16MHz. Is there anything important that does not work at 8MHz? I'm not concerned about the reduced processing power, and about the only peripherals I'm using are I2C (@100kHz), Serial (@38.4kBAUD), and the A/D. I assume all of those will work exactly as they do when running 16MHz?

Regards,
Ray L.

Are you using the internal oscillator, or an external clock source?

You lose the other 8mhz :roll_eyes:

There are also some peripherals that either need the higher voltage signal, or return a higher voltage; you need to check these for those you use.

pert:
Are you using the internal oscillator, or an external clock source?

External crystal.

Regards,
Ray L.

dochawk:
You lose the other 8mhz :roll_eyes:

There are also some peripherals that either need the higher voltage signal, or return a higher voltage; you need to check these for those you use.

Other than the A/D? If so, which ones?

Regards,
Ray L.

You loose half the instructions :stuck_out_tongue:

I have made a couple of devices with the internal 8MHz oscillator and the only problem I have had was due to voltage drop (battery supply).

RayLivingston:
Other than the A/D? If so, which ones?

For that, you need to check the data sheets.

Every time.

Danois90:
You loose half the instructions :stuck_out_tongue:

The imp on my shoulder is encouraging me to say something about needing to know which 8mhz you are using, the odd or even, so that you can set the compiler to use the odd or even memory addresses as appropriate . . . :o

hawk

I have several projects that work using the internal 8Mhz oscillator. I am not aware that I have lost anything other than speed that I did not need. (He was a poet and he did not know it --- groan)

...R

The internal oscillator is less accurate. On some chips more so than others. With timing critical operations like UART communication, it can be far enough off to cause problems.

If you use the MiniCore core at 8MHz with internal oscillator you gain 2 digital pins. The crystal pins (IDE pins 20 & 21, physical chip pins 9 & 10).

You'll need to configure/tweak the IDE so any timing functions or serial communications don't get messed-up and there could be complications if you use the bootloader at the wrong speed.

...That's more "complication" than I'd want to get into.

Once the code is loaded it will simply run slower.

Configuring, sure, but it's as easy as selecting the right board from the Tools menu. There should be no "tweaking" needed. Just use an 8 MHz board definition and F_CPU will be set to 8000000L and the bootloader and upload baud will match. Arduino AVR Boards has some 8 MHz boards, but MiniCore is best.