I want to build a data logger with 4 serial ports and some analog channels recording to a SD card. 4 UARTS leads me to a Mega, but SD cards run at 3.3V. I'm a hardware guy so I know I can level shift the SD card to 5V. But to save battery power I would rather run the whole board at 3.3V which means the mega has to run at 8MHz. How hard would this be? Is it really as simple as changing the crystal and this line of boards.txt "mega2560.build.f_cpu=16000000L" Can I create a new option on the tool/board menu this way?
I would rather not hang extra UARTS on an UNO but that is also an option.
I don't think Mega2560's work at 3.3V, need 4.5 min. Check the datasheet:
Speed Grade:
– ATmega640V/ATmega1280V/ATmega1281V:
• 0 - 4MHz @ 1.8V - 5.5V, 0 - 8MHz @ 2.7V - 5.5V
– ATmega2560V/ATmega2561V:
• 0 - 2MHz @ 1.8V - 5.5V, 0 - 8MHz @ 2.7V - 5.5V
– ATmega640/ATmega1280/ATmega1281:
• 0 - 8MHz @ 2.7V - 5.5V, 0 - 16MHz @ 4.5V - 5.5V
– ATmega2560/ATmega2561: <<< this is the part on the Mega2560?
• 0 - 16MHz @ 4.5V - 5.5V
Looks like it:
NXP I think makes a nice SPI dual UART if you want to use that and a '1284 for instance.
I am going to have to lay out my own PCB to make this datalogger fit in the application anyway. I was hoping to use the ATmega2560V rated 0-8MHz @ 2.7-5.5V. It is the software end of things where I have my doubts. I want to use as much of the standard Arduino development environment as I can so other people, better at software than me, can write some good code.
That should be okay, if not slow. May need to fool around with signature bytes when programming.
westfw and maniacbug could help you with changing the optiloader to work a new part at a different speed.