I have a 5V Arduino Mega 1280 board, and I need to use SPI bus to communicate with 64 chips(3.3V not 5V tolerant I/Os)
I need to modify my board,
I've changed 16MHz crystal with a 8 MHz one.
I thought I can supply 3v3 to Vin pin, it worked but when I plugged USB cable(I need UART always), it runs at 5V.
I've looked at schematic of Arduino Mega, I decided to remove some components to make my Mega 3v3 board.
Grumpy_Mike:
No but data selector or shift register running at 3V3 cuts down the number drastically.
Yeah, you are right. But my circuit drives 64 SPI device, if I use shift register (probably they communicate via SPI), I need to control a SPI device through controlling SPI device, that makes thing difficult. Instead of using SRs, I think I can easily power the board with 3v3 supply. If I can't find the answer, I will remove the opamp chip on pcb, and cut the 5V lines. Or simply I will apply 3v3 to Vin or 5V pin and cut thee vcc pin of USB cable.
unsolder the 5v regulator and put in its place a 3.3v regulator of the same form factor;
the schematic suggests board space for a mc33269st but doesnt have the actual part in. in its space, solder in a 3.3v regulator and unsolder the 5v regulators output pin.
if you already have a 3.3v source, jump the 5v regulator's input/output pin, and plug in the 3.3v source.
beamformer:
I have a 5V Arduino Mega 1280 board, and I need to use SPI bus to communicate with 64 chips(3.3V not 5V tolerant I/Os)
I need to modify my board,
I've changed 16MHz crystal with a 8 MHz one.
I thought I can supply 3v3 to Vin pin, it worked but when I plugged USB cable(I need UART always), it runs at 5V.
I've looked at schematic of Arduino Mega, I decided to remove some components to make my Mega 3v3 board.
What should I do?
You can change 5V into 3.3V using two resistors...
Mega2560V is, but that is not what is installed on Arduino Mega boards.
From the front page of the data sheet:
Speed Grade:
– ATmega2560V
• 0 - 2MHz @ 1.8V - 5.5V, 0 - 8MHz @ 2.7V - 5.5V
– ATmega2560
• 0 - 16MHz @ 4.5V - 5.5V
Good luck with your testing tho. Maybe it will turn out to work ok for the functions you are using, similar to running a '328 at 3V, 16 MHz, 0.7V to 0.8V below spec but folks have reported it to work.
You can change 5V into 3.3V using two resistors...
Sometimes it can work with just 1 resistor. Many devices now have input clamping diodes. With a resistor, a 5v->3.3v drive will be limited to 3.3v+Vfwd on the clamping diode, and will for sure to be recognized as high.
The issue is more with 3.3v -> 5v drive: a 3.3v logic high may not be recognized by the 5v device as logic high. The solution? Use a pull-up resistor.
So here is the set-up: use a current limiting resistor between your 5v and 3.3v device. On the 5v device side of the resistor, use a pull-up resistor. Resistor values not particular, anything this side of 10k should work.
64 chip selects could be handled binarily by decoding or addressing 64 separate conditions and the trick is to make all the CS operations identical or as near as to overlap and then address the issue by encoding the thing in 6 bits of data to decoders or a 64 bit serial stream. The decoding solution is faster but requires external hardware and the serial thing is going to be slower but it really makes little difference in real time because it is a small part of any serial transaction. This now brings the issue into an addressable form. Solve the CS interface and then decide which method to address them with. Done Deal. IMO
I got a Mega clone from China, made with a ATMEGA2560 without V, and a CH340G USB to Usart converter and i'm planning to convert the whole board to 3v3.
And because no one has done this afaik with a search on google, i revived this old thread.
Will replace the 5V LDO Voltage regulator with a 1117 3v3 version, will connect pin 4 of the CH340G to 3v3, pin 16 also to 3v3, this way i can still program the board from Arduino IDE, also the on-board small 5 pin 3v3 regulator will be bypassed because of the larger one providing enough current.
Not thinking of going from 16 to 8MHz just yet, but if I do, i'm going to need help importing something in Arduino so i can compile for the modified clock, Today I studied the board, the datasheets, i already converted a nano to 3v3 and it works great.
Will update with pictures and how-to tomorrow.
razvitm:
I got a Mega clone from China, made with a ATMEGA2560 without V, and a CH340G USB to Usart converter and i'm planning to convert the whole board to 3v3.
And because no one has done this afaik with a search on google, i revived this old thread.
Will replace the 5V LDO Voltage regulator with a 1117 3v3 version, will connect pin 4 of the CH340G to 3v3, pin 16 also to 3v3, this way i can still program the board from Arduino IDE, also the on-board small 5 pin 3v3 regulator will be bypassed because of the larger one providing enough current.
Not thinking of going from 16 to 8MHz just yet, but if I do, i'm going to need help importing something in Arduino so i can compile for the modified clock, Today I studied the board, the datasheets, i already converted a nano to 3v3 and it works great.
Will update with pictures and how-to tomorrow.
Undervolting is the same as overclocking.
You loose reliability, and not every functional part inside the chip might work over the full temp range.
Good luck (you might need it).
Leo..