Non-Volatile SRAM

I’m used to discovering cool new technology when browsing sites like DigiKey. But occasionally, you’ll come across device descriptions that at first look like oxymorons.

I recently needed to order a few 32kB SRAM chips for a course I’m teaching, involving building the latest incarnation of the DrACo/Z80 computer. DigiKey has always been a reliable source for SRAM, and ever since I learned that pretty much every manufacturer out there uses compatible pinouts and protocols, life has been easy. (There are benefits to working with tech with forty-year-old traditions and standards!)

32kB (volatile) SRAM

While ordering the SRAM, I came across an interesting filter field — Volatile or Non-Volatile. This is interesting because SRAM, being transistor-based, is inherently volatile: when you remove the power, it stops remembering whatever you stored in it. (SRAM uses six-transistor memory cells, and when you remove the power, the delicate balancing act that keeps it in a zero or one state goes away. When powered up again, it will basically pick 0 or 1 at random.)

Filtering by Non-Volatile and selecting a likely-looking example, it became apparent what I was looking at. Someone using SRAM had at some point asked an engineer to make a version that wouldn’t lose its contents when powered off. Having looked at the problem, an engineering solution was arrived at — a button-cell battery and a small power management circuit was unceremoniously grafted on top of a memory chip. When external power is available, the system works as usual. When power to the Z80 is cut, it keeps the SRAM memory powered but inactive, with a backup time of up to eleven years, per the datasheet. It looks weird, but it works nicely.

Battery-backed-up NVSRAM, on its custom adapter

The form factor is still DIP28 with the same (or compatible) pinout — but due to the addition of the backup battery, it’s in a 600-mil (0.6″) wide format instead of 300-mil. The 32kB SRAM chips we’ve used over the years have come in both formats — and both work well on a breadboard. However, the original prototype uses a 300-mil socket. Re-wire-wrapping it would be a boring, tedious weekend project with a real risk of breaking things.

The most efficient solution (the one which would have it working by the next lecture and which didn’t involve FedExing exotic adapter PC boards overnight) was to hack together an adapter out of stripboard. It actually turned out better than I was expecting.

The NVSRAM unit next to its adapter

This almost solved the problem. The row connectors I used for the 300-mil pins were too big to fit in the DrACo’s wire-wrapped socket. Fortunately, a pair of DIP14 sockets were just the right size to fit in the socket and accept the new contraption.

The whole works, in place on the DrACo/Z80.
It looks weird, but it works!

It’s weird, having 32kB of memory space that won’t go away. Now I need to figure out what to do with it. For now, I’m running a short program to zero it all out.

What uses do people have for so many thousands of bytes of memory, anyway…??

This entry was posted in Digital, DrACo/Z80, Drexel, EET325, Toys. Bookmark the permalink.

Leave a Reply