Running a Microcontroller with Selectable Voltage (3.3V/5V)

avrnon-volatile-memoryvoltage-regulator

I'm working on a non-volatile SPI memory chip programmer. My design sends individual data bytes over USB to an MCP2200 (USB to serial converter chip), then the serial data is sent to an ATMega48, which is responsible for writing the data bytes to the memory chip.

I did find this question (Selecting 3.3v or 5v to supply EEPROM by µC output) and I'll probably use a circuit similar to what is featured in the first answer. However, in terms of effects, it only discusses the memory chip being programmed, and not the effect of switching operating voltages on the MCU in the programmer.

So, my questions are:

1.) If I use a solution similar to the one in the above question and I programmed the ATMega48 with a 5V programmer, what happens when I run the MCU at 3.3V? Will it work or will I damage something? (I'm mostly concerned about the integrity of the memory cells, but any other danger areas would be of interest too.)

2.) Once I flip to 3.3V, will there be an issue going back to 5V, such as the 3.3V logic level not being sufficiently high to be counted as a '1'?

EDIT: The power rail on the programmer provides power to the MCP2200, the ATMega48, and the memory being programmed. As a result, voltages will never go above VCC.

Best Answer

  1. No. An MCU is operational over a specified range no matter at which voltage it has been programmed. An unprogrammed cell is at VCC, programmed at ground, you won't be changing much here by changing VCC :-).

  2. 3.3V will be counted as 1 just fine at speeds the MCU can operate. The signals that go other way could pose a problem - check the datasheet to see if signal levels higher than VCC are allowed and if yes on which pins (mixed A/D pins are often weak).