Go Down

Topic: Interfacing with external flash (Read 366 times) previous topic - next topic

jtw11

A few questions about interfacing with external flash for data storage... Namely, with the following device; http://uk.farnell.com/spansion/s25fl256sagnfi001/memory-flash-256mbit-8wson/dp/2136254

1) Regarding the flash chips clock frequency, does this need to be equal to or lower than the MCUs clock - or does this not matter?
2) To use external flash, do I need to use a flash controller?
3) Almost all devices are built for 3.3V supply by the looks of things, does this mean the SPI interface to them is also 3.3V, not the default 5V the Atmel chips operate at? If this is the case, I assume I'll need to level shift 5V down to 3.3V?

CrossRoads

1.  You can run it as slow as you want. 
2. No. Just the normal SPI signals, and HOLD/ & WP/ if you use them.
3. Yes.  Look at TXB0106 for  that.
Designing & building electrical circuits for over 25 years. Check out the ATMega1284P based Bobuino and other '328P & '1284P creations & offerings at  www.crossroadsfencing.com/BobuinoRev17.
Arduino for Teens available at Amazon.com.

jtw11

#2
Dec 06, 2012, 02:21 pm Last Edit: Dec 06, 2012, 05:00 pm by jtw11 Reason: 1

2. No. Just the normal SPI signals, and HOLD/ & WP/ if you use them.


Thank god for that - my board design is quickly filling up!

Regarding the hold function, looks like I can use this to prevent data transfer going wrong if an interrupt comes in? Set the hold pin active at the start of an ISR, then release it at the end of an ISR. Am I correct in thinking this would work?

EDIT: Actually, thinking along those lines - I have 6 other devices on the SPI bus, what will happen if while communicating with one of these devices, an interrupt is triggered? Would it be best to disable interrupts at the beginning of any SPI comms, and reenable at the end and simply let the ISRs queue up?

EDIT 2: Regarding the 3.3v supply to the level shifter, I've just been looking at 3.3v regulators - do I parallel one next to the 5v reg, or inline with the 5v reg etc - but actually, given I have a 5v regulated supply already, it follows that I should just be able to make 3.3V using a voltage divider with very low tolerance resistors. Correct?

In fact, do I need a level shifter at all? Can I not just pass the 5v signals from the MCU through appropriate voltage dividers straight into the flash IC? What is the advantage of using a level shifter?

Go Up