Simultaneous read/write or suspend/resume? Do you know when to choose?

Also, bit banging SPI, diagnosing intermittent RDID failure, and the mystery of MSL and RoHS ratings.

Q: What are some of the considerations that I need to be aware of when deciding whether to use the Simultaneous Read/Write or Suspend/Resume features that are available in flash memory devices?

 

A: To begin, you’ll need to be using a flash memory device that offers both features. Not all devices are capable of performing Simultaneous Read/Write operations, so be sure to check.

Much of your decision on whether to use Simultaneous Read/Write or Suspend/Resume should be based on knowing how often your system will need to suspend embedded operations (erase/program). If your system only occasionally needs to suspend embedded operations, i.e. with interrupt-driven controllers or computer systems, then the Suspend/Resume feature should provide adequate overall performance. If, however, your system is real-time and/or needs to frequently read from the device, or if it requires immediate access to its contents, a flash memory device with the Simultaneous Read/Write feature will deliver better erase performance with minimum read latencies. Why? That’s best answered by looking at how each of these features operate.

When you use Suspend/Resume to handle the interrupt, the erase or program operation pauses while reading occurs (see figure 1). This is a serial sequence and it can significantly increase the total time of the erase operation. Because erase operations take longer than programming, they’re the main concern for system latency and likely the reason for your question.

 

Figure 1: Under the Suspend/Resume command, erase or program operations pause during read operations.

Figure 1: Under the Suspend/Resume command, erase or program operations pause during read operations.

 

 

During an erase operation, the flash memory device issues a number of erase pulses to the memory array. Each pulse needs to be completed before the next can be issued. If the erase pulse is not complete before a Suspend command is issued, it must be restarted. If Suspend/Resume commands are issued in quick succession, the device will have to restart many of its erase pulses, which can significantly increase the total time of the erase function, thus degrading the overall performance of the device. The degradation may be so great that it extends beyond the specified maximum erase time (see figure 2). Remember, each device requires a minimum time between the beginning of an erase or Resume command and the Suspend command. Consult the device’s datasheet for these values.

 

 

Figure 2: Restarted erase pulses extend total erase time potentially past maximum time limits.

Figure 2: Restarted erase pulses extend total erase time potentially past maximum time limits.

A better solution for this application would be to use the Simultaneous Read/Write feature (see figure 3). During an erase operation using Simultaneous Read/Write, latency caused by the restarting of erase pulses is no longer an issue. Reading and erasing happen in parallel, thus improving the overall performance of the flash memory device in this application.

 

 

Figure 3: Simultaneous Read/Write avoids the timing issues experienced with repeated Suspend/Resume commands.

Figure 3: Simultaneous Read/Write avoids the timing issues experienced with repeated Suspend/Resume commands.

For more information on using Simultaneous Read/Write and Suspend/Resume, please refer to the device datasheet and also the application note found here.

 

 

Q: I am bit-banging serial peripheral interface (SPI) from my microcontroller to the S25FL256S flash memory device and am having issues reading and writing to the device. After researching, I understand that devices with a density of greater than 128 Mb, which includes my 256-Mb device, require 4-byte addressing. For my application, however, there are many current conditions that would not allow me to use 4-byte addressing. Are there any other options available to me?

 

A: Yes, fortunately there is an option that you can use. You’ll be using 3-byte addressing instead of 4-byte, since this is the only type of addressing currently available to you in your application without making changes. This option uses the Bank Address Register to resolve this limitation (see table).

 

To use 3-byte addressing in your command, keep bit 7 of the Bank Address Register as “0” (default). Change bit 0 of Bank Address Register to “1” when addressing the upper 128-Mb memory space. Change bit 0 of Bank Address Register to “0” when addressing the lower 128-Mb memory space.

 

Table: Bank Address Register state provides for 3-byte addressing

Table: Bank Address Register state provides for 3-byte addressing

 

This should resolve your limitation without requiring any changes to be made.

 

 

Q: I’m designing a product that uses an SPI flash memory chip for storage. When testing the Read Identification (RDID) command, the SPI device intermittently returns an incorrect device ID (approximately 25% of the time).  What could be causing the RDID command to intermittently fail?

 

A: Your design may be experiencing some noise or signal spikes on the input. In order to resolve this, I would suggest installing a 0.1-uF capacitor on the SCLK input signal pin. Although the SCLK input signal may appear clean on the signal analyzer, the capacitor will help to minimize or eliminate the erroneous signal spikes along with slowing the rise and fall times of the SCLK input signal.

 

 

Q: How do I find the moisture sensitivity level (MSL) for the Spansion GL NOR flash memory devices? Also, where can I find out whether my Spansion device is RoHS compliant?

 

A: Thanks for your questions and they’re good ones to post in our Top Tips corner since I see these come in with some frequency. The answers to both questions can be found in the same location. Follow these steps to find the MSL rating along with determining whether your device is RoHS compliant. The MSL rating applies to both lead-free and non-lead-free package types.

 

  1. Find the package type symbol from the data sheet for your respective device. For example, the package type symbol for S29GL256S10FHI010 is “LAA 064.”
  2. Visit our Packing and Packaging Handbook.
  3. Click on “Chapter 2: Package Materials” to open the document.
  4. Search for “LAA 064” within the document. It should bring you to page 2-35. The MSL is stated on the top center portion of the page. In this example, the MSL level is “3.” Likewise, in the same area of the page, the device is indicated as being RoHS compliant or not RoHS compliant. In this example, this device is RoHS compliant.

You can use this same method to find other package types (LAE 064, TS 056) for the S29GL NOR flash devices.

 

 

Q: I have a Spansion flash memory device S70FL01GS. I’ve found the data sheet, but it does not tell me how to read data from the device or how to program data into it. Where can I find a document that tells me how to use this device?

 

A: The device you’re using, the S70FL01GS, is actually a dual-die stack of S25FL512S die. The S70FL01GS datasheet provides information about this configuration in the “General Description” section, referencing the datasheet of the discrete die, S25FL512S. You’ll be able to find the information you’re looking for by using that document, found here.

 

Top Tips Note: Similar datasheet references exist for other Spansion flash memory devices, such as the S70GL02GP (dual-die stack S29GL01P), and S70GL02GS (dual-die stack S29GL01S).

Get More from Core & Code Subscribe
image_pdf

Leave a Reply

Your email address will not be published. Required fields are marked *


Other stories in this issue

feature

Finding the best wireless option for your IoT design

For designers, a diverse set of wireless connectivity options provides the glue that holds IoT together.