"Funduino" pro mini clone - running at 3.3v and 16mhz

Hey guys,
I've got a Pro Mini clone that was labeled as 5v, 16mhz when I ordered it. Only paid $6 for it too!

Turns out, I'm getting 3.3v as a logic high and the chip appears to be running at 16mhz.
I know this is out of spec for the chip, which requires a minimum of 3.6v @16mhz.
From what i've read, people have success overclocking the 328p, but I'd rather run the chip in-spec for any timing sensitive projects.

Is there an easy way to get the chip to run at 8Mhz?
The crystal is SMD and there's no way I can solder something that small.

Can I perhaps set a fuse or hack the bootloader to use a divider of two for clock speed?

Thoughts?

Panici:
Is there an easy way to get the chip to run at 8Mhz?
The crystal is SMD and there's no way I can solder something that small.

Yes, you can use the "Burn Bootloader" function to set the fuses to run on the 8MHz internal oscillator. At that point, the external crystal will be ignored.

You may be able to find an existing entry in the boards.txt file that comes with the Arduino IDE that suits your needs. If not, there's this: http://www.engbedded.com/fusecalc/

Note, you will need an AVR ISP or an Arduino as ISP to use the Burn Bootloader function:

http://arduino.cc/en/Tutorial/ArduinoISP

tylernt:

Panici:
Is there an easy way to get the chip to run at 8Mhz?
The crystal is SMD and there's no way I can solder something that small.

Yes, you can use the "Burn Bootloader" function to set the fuses to run on the 8MHz internal oscillator. At that point, the external crystal will be ignored.

You may be able to find an existing entry in the boards.txt file that comes with the Arduino IDE that suits your needs. If not, there's this: AVR® Fuse Calculator – The Engbedded Blog

Note, you will need an AVR ISP or an Arduino as ISP to use the Burn Bootloader function:

http://arduino.cc/en/Tutorial/ArduinoISP

Ah, I was aware of the internal crystal, but I thought it was considered inaccurate?
As I mentioned above, my reason for wanting to run the chip in-spec was for timing sensitive projects.

Panici:
Ah, I was aware of the internal crystal, but I thought it was considered inaccurate?
As I mentioned above, my reason for wanting to run the chip in-spec was for timing sensitive projects.

The internal RC oscillator can be somewhat (in)accurate. It's not guaranteed to be well calibrated from the factory, but it's usually not bad. You can calibrate it yourself, but the speed will still vary a little with voltage and temperature.

What are you doing that requires so much precision? If you're just timing things to milliseconds precision, the internal RC oscillator should be just fine. Usually you just need the crystal for high bit rate asynchronous (RS232 serial UART) communications.

Anyway. Pg 35 of the datasheet says:

8.11 System Clock Prescaler
The ATmega48PA/88PA/168PA/328P has a system clock prescaler, and the system clock can
be divided by setting the ”CLKPR – Clock Prescale Register” on page 377. This feature can be
used to decrease the system clock frequency and the power consumption when the requirement
for processing power is low. This can be used with all clock source options, and it will affect the
clock frequency of the CPU and all synchronous peripherals.

8.12.2 CLKPR – Clock Prescale Register
• Bits 3..0 – CLKPS3..0: Clock Prescaler Select Bits 3 - 0
These bits define the division factor between the selected clock source and the internal system
clock. These bits can be written run-time to vary the clock frequency to suit the application
requirements. As the divider divides the master clock input to the MCU, the speed of all synchronous peripherals is reduced when a division factor is used.

Table 8-17. Clock Prescaler Select

CLKPS3 CLKPS2 CLKPS1 CLKPS0 Clock Division Factor
0      0      0      0      1
0      0      0      1      2

I've never tried, it but perhaps setting CLKPS0 to '1' and the rest of the CLKPS bits to '0' will divide the crystal clock by 2?

D'oh! I guess I should have checked the datasheet!

That looks perfect. I'll give it a shot when I have some time and report back!

've got a Pro Mini clone that was labeled as 5v, 16mhz when I ordered it. Only paid $6 for it too!

Ummm. I have ordered over time more than 50 of these
http://www.ebay.com/itm/Arduino-PRO-MINI-ATMEGA328-5V-16M-MWC-avr328P-Development-Board-/271251071444
And have NEVER gotten a 16MHz version with a 3.3V regulator. Since they use pick & place automation on these boards, an entire 3.3V reel of regulators would need to have been substituted accidentally ...
Are you putting 7 - 9 Volts on the RAW power pin?

Ray

mrburnette:

've got a Pro Mini clone that was labeled as 5v, 16mhz when I ordered it. Only paid $6 for it too!

Ummm. I have ordered over time more than 50 of these
http://www.ebay.com/itm/Arduino-PRO-MINI-ATMEGA328-5V-16M-MWC-avr328P-Development-Board-/271251071444
And have NEVER gotten a 16MHz version with a 3.3V regulator. Since they use pick & place automation on these boards, an entire 3.3V reel of regulators would need to have been substituted accidentally ...
Are you putting 7 - 9 Volts on the RAW power pin?

Ray

Thanks for that link ray! Those are super cheap!
I got mine from Dealextreme.

With 12v on vin I'm getting 3.3v as a digital high. So definitely 3.3v regulator.

With 12v on vin I'm getting 3.3v as a digital high. So definitely 3.3v regulator.

Just plain strange. Probably one of those midnight product runs.

Ray