Design your flash card interface to the spec, not to a vendor
May 15, 2015
Over the years, I've seen many embedded systems designed to a specific vendor's flash card. In most cases, industry standard specs were available at t...
Over the years, I’ve seen many embedded systems designed to a specific vendor’s flash card. In most cases, industry standard specs were available at the time of the design as reference. The industry standard specs contain signal and timing information for worst-case situations on a given form factor. As an example, the specification for a time-out limit of a certain flash card may be 500 ms, but in practice, all the cards tested during a design became active within 20 ms or less.
Some designers may be enticed to write their code giving no more than 50 ms for the card to show active prior to posting a card error. With this thinking, there’s a significant guard band of 30 ms compared to the 20-ns experience from the tested cards.
Many of these systems never encounter an issue, but there are regular examples teaching us that this isn’t the right way to go. Even with long life cycle industrial-grade flash storage, after some years, there will be a transition that may or may not affect the system.
If you fast-forward five years or more, there may be changes in the memory technology or other components that cause flash card vendors to modify their card timings. What was once a 20 ms or less to active is now 300 ms. This is still within the published industry standard spec, but the embedded system no longer recognizes that a flash card is present because it times out too soon due the 50 ms time-out limit set by the designer.
This may seem like a trivial task to upgrade code to time out after a longer period, but keep in mind that this is on a design from five years ago. The original engineer may have moved on or likely has forgotten much of the code. Depending on the system, it could be short/quick fix, a matter of relearning the code and making the fix or possibly an insurmountable problem.
The bottom line is this is an easily solved problem at the beginning of the design process. Whenever possible, use the industry-standard spec to design the host system interface to the flash card, SSD, or module, not the currently available products in the market. You will be happier, and those who support the system in the future will be happier.
Steve Larrivee is a vice president at Cactus Technologies and has over 30 years of experience in the data storage market, including 10 years with SanDisk and five at Seagate Technology.