Go Down

Topic: changing a Pro Mini 3.3V 8Mhz to 5V 16Mhz (Read 931 times) previous topic - next topic

screwdriver

Hi,

I purchased the 3.3V Version of the Pro mini, and now I noticed, that I will need a higher clock speed (need a higher PWM-frequency and changing the internal timers is not an option, as it would affect the SPI-communication and millis() ). As I'm not that familar with the Board I got a few questions:

I read that all I need to do is to change the crystal and the voltage regulator (and of course burn a new bootloader), is that right?
Can I use any 16 Mhz crystal?
Also I'm planning to power it trough the raw pin, so would it be ok to just remove the old regulator and not put a new one in?
Is this even possible with a ceap normal soldering iron without destroying anything  (maybe there is a special trick?)

I'm a little afraid to fiddle around on the board itself, so any advice is appreciated...

Coding Badly

Quote
need a higher PWM-frequency


On all six PWM pins?

tim7

Ye-es that right, but...

...the Pro-Mini is damn small, and myself I really wouldn't like to try de-soldering anything.  You don't need to remove the regulator to run it at 5V: just apply 5V to VCC.  However the oscillator is a 3-pin surface-mount ceramic, which would be extremely difficult to remove.

At 17-euro each, I'd suggest investing in another board.  You'll always find a use for the old one.  Alternatively, you might investigate low-level programming of the timers to get the frequencies you need.

screwdriver

I need PWM with at least 500Hz on 4 pins (3,5,6,9;  pin 10 and 11 are needed for SPI communication).On 16 Mhz this would be fine, because pin 5 and 6 would have 1000Hz and pin 3 and 9 500Hz, but on 8Mhz its 500 and 250Hz. When I adjust the timers, the SPI communication (and possibly the I2C) would not work anymore..(and in addition to that millis() and delay() would give strange results too)).
I hoped to get along without replaceing the whole board, as I already soldered it in (maybe this was not my best idea...).

Coding Badly

I need PWM with at least 500Hz on 4 pins (3,5,6,9;  pin 10 and 11 are needed for SPI communication).


Bummer.

Quote
On 16 Mhz this would be fine, because pin 5 and 6 would have 1000Hz and pin 3 and 9 500Hz, but on 8Mhz its 500 and 250Hz.


8 MHz is a difficult frequency.  Ironically, it's easier to get the PWM frequencies you need if the processor is running at 1 MHz.

Quote
I hoped to get along without replaceing the whole board, as I already soldered it in (maybe this was not my best idea...).


The only issue is that you will be running the processor outside of specifications.  Many many folks have done that successfully.  As far as I am aware, no one on this forum has had a problem doing what you are trying to do.  But, the fact remains, you are essentially "overclocking" the processor.

Oh, wait.  I just read the subject line.  Are you also planning to run the board at 5 volts?

tim7

I was under the impression that the serial interfaces all had separate clock logic, and were not tied to the timers.  Is this wrong?

screwdriver

I dont know how the serial interface timing really works, but here (http://arduino.cc/en/Tutorial/SecretsOfArduinoPWM) it says, that the Atmega has 3 internal timers, each used for 2 pwm pins...And as the SPI communication disables PWM on pin 10 (and/or 11) I thougt, that it will be affected by a change of the timers too...
But another question to the crystal itself: as you mentioned, it has three pins connected to the board, but most crystals I know only have two..if I want to replace it, which ones do I have to connect?

tim7

There are 3 timers, plus clock logic for each serial interface (SPI, TWI, and USART).  Although certain pins have several different functions, AFAIK the underlying timers related to those functions are not linked (except in so far as they all use the CPU clock signal).  So using the SPI interface (Arduino pins 10-13) of course means that you can't use the timer outputs OC2A or OC1B (because they share the same pins), but does not otherwise affect the running of Timer-1 and Timer-2.

I found this in the Arduino Playground, which explains how to change the timer clock-prescalers, and what the side-effects are:
http://arduino.cc/playground/Main/TimerPWMCheatsheet
For more sophisticated timer control you'll need to wade through the ATMEGA328 datasheet.

The oscillator on the Pro Mini boards is a ceramic, which takes the place of a crystal plus the two support capacitors.  The third connection is to ground.

Go Up