I need memory to read from, for my project. I first intended to use an SD card, but I now found out a W25Q64/128 SPI Flash is more practical, since I don't need to write data.
However, this W25QXX Flash works with 3.3V SPI and the Arduino Mega has a 5V SPI.
By searching around, I find many solutions, but two that work which are quite different:
- Using a voltage divider, which has the advantage of a simple circuit, but has problems that too less current is passed. However according to this link, in the end, someone fixed it easily by using much smaller resistor values.
- Using a buffer circuit, which has the advantage of probably being more secure, but means some quite big ICs to be added. A circuit is mentioned in this link; credits to Steve Marple.
Question: Why should I (or shouldn't I) use this SPI Flash with a 5V using small resistor divider voltages?
(It seems that if I only want to add only this single 3.3V SPI Flash on the SPI bus, I can use the voltage divider using small resistors).
UPDATE
After Marcus Müller's answer, I found the following page that gives a lot of backgrounds (his solution is indeed the one with the most advantages): how-to-interface-a-5v-output-to-a-3-3v-input