Sixteen memories

A couple of weeks ago I got a bug report that SPIDriver's flash utility doesn't support some manufacturer's SPI FRAM. (FRAM is an interesting alternative to flash memory with much faster write speed).

I checked the datasheets and confirmed that yes, it wasn't properly supported by the SPIDriver's flash utility. I'd need to add a new code path specifically for FRAM. Adding the FRAMs to my Digikey cart, I wondered about testing. I usually put the memory on a carrier card, plug it into the SPIDriver, then run some tests.
This image was deleted by MailChimp when they shut down TinyLetter.
This gets quite unwieldy when testing against multiple memories - to run the regression tests you need to fiddle around plugging in each flash chip in turn. It would be so much better to have a setup with all the memories - both flash and FRAM - on one board with some way of activating them under software control. A few hours later, I have this:
This image was deleted by MailChimp when they shut down TinyLetter.
On the left is a SPI interface - it plugs straight into the SPIDriver. The board itself has places for 16 memories - plenty of room for flashes and FRAMs. At the top a 16-line I²C port expander controls the power for all 16. Only one will be powered up at a time. The 4-pin header next to it is for connection to an I²CDriver. So the test suite will select each installed flash or FRAM in turn, and for each one run a set of tests.

I confess. The Eagle autorouter did some of this.
It's helpful to have visual confirmation on tools themselves that they're doing the right thing, and I actually started adding individual LEDs and resistors to each of the 16 memories. But then I remembered Electric Dollar Store, and instead put a single module slot in the corner. I'll fill it with a DIG2, and the I²CDriver can set the display the number of the activated memory whenever it talks to the port expander. Much easier!
DIG2
That's the design. It went off to the board house this morning, so it should be back here within a week. The board uses hand-solderable components, so there's no need for a stencil. With luck, next week's newsletter will feature the thing actually running.

The board design is in this directory. I'll have a few spares of the PCB -- if you want one, email me at jamesb@excamera.com and I'll mail it to you.

Thanks for reading.