4

Id like to make my 5v pro mini use 3.3 v instead of 5 because i want to use it in an existing piece of electronics that uses 3v throughout.

Looking at the specs for the pro mini it says the 3.3v version can accept higher voltages.

So is there a regulator i can bypass/bridge that will convert my 5v version to a 3.3v version? or am i wasting my time?

Majenko
  • 105,851
  • 5
  • 82
  • 139
S Rosam
  • 141
  • 1
  • 1
  • 2

2 Answers2

10

I have good news, and I have bad news.

The good news is that only two changes to the board are required to change it from a 5V board to a 3.3V (or any voltage within spec) board.

The bad news is that there's no way in hell you'll be able to do them.

So, we work around them and get the board up and running.

The first is obvious: a 3.3V board should be running off of 3.3V. Since we can't replace the SOT23-5 regulator on the board (the little 5-pin device towards the end) we need a voltage regulator to supply this, directly to the VCC pin. Find yourself a linear or switching regulator that provides this voltage.

The second is that the microcontroller, an Atmel ATmega168/P, is not specced to run at 16MHz when the supply voltage is only 3.3V; the maximum speed is 12MHz. Since we can't replace the crystal on the board (the little silver package next to the MCU itself) we need to perform some trickery to tell the MCU divide the frequency down to something way below safe, and then boost it up after. Use a programmer (see some of my other answers for more info about this) to set the CKDIV8 fuse and then use the routines in avr/power.h in your code to "reduce" the divisor to 2, bringing the clock speed back up to 8MHz. While you're at it, check the BOD fuses to make sure they're not set to something useless like 0b100.

As always, see the datasheet.

Ignacio Vazquez-Abrams
  • 17,733
  • 1
  • 28
  • 32
4

See this nice article by Adafruit, which explains how to run an Arduino Uno at 16Mhz with 3.3v. Both the Arduino Pro Mini and the Uno use the same ATmega328p chip, and they claim that even though running at 16Mhz is out of specs, it should work.

As Ignacio mentioned in his answer, there will be no alternative to downclocking the Mini Pro if you want to play it safe and stay within the specs. If you are willing to take the chance, remove the 5v regulator as suggested, and connect a regulated 3.3v to Vin. Consider the hazards; they might include device resets, misbehaving code or malfunctioning I/O pins. If you are using an unregulated 3v voltage source, you will need to step up the voltage - using DC DC step up converter such as this one. (By the way - you could also find a step up converter to 5v - hence problem solved...)

In addition, see this SO answer for more details. The safe clock speed for the ATmega328p operating at 3.3v would be 13.33Mhz. For reference, here is the Safe Operating Area graph from the datasheet supplied in the answer:

enter image description here

Omer
  • 1,390
  • 1
  • 9
  • 15