Yesterday I dusted off some old floppy disks – literally blew dust off of them – so that I could salvage their data while there was still time. Trouble was, I didn’t have a computer with a floppy drive. How to read the disks?
Ironically, the only reason I even had these old floppies lying around was because they were supposed to be my super-safe backups. Apparently sometime in the 1990s I figured that 3.5” floppy disks would be the eternal medium for safeguarding my most precious digital data, which evidently included saved games from Quake II and some 320×240 JPEGs from my first digital camera. Sheesh.
Rummaging through the clutter, I eventually found an old floppy drive unattached to any machine. I even located an appropriate ribbon cable. Next setback: my current computer’s motherboard doesn’t support a floppy controller. What? No floppy controller at all? What do you think this is – 2015?
That necessitated building a “new” old machine from a mothballed old motherboard that did support floppy drives, an old power supply with the correct connectors, an unused case, etc. About an hour later, my retro-90s PC booted (Windows XP, natch), and I once again heard the familiar grind-grind of disk-drive heads seeking back and forth. Ah, nostalgia.
Go ahead and make fun of me all you want, but backwards compatibility is a constant presence in our business. We happily obsolete our own devices at a steady pace, and sometimes we wind up pulling the rug out from under our own feet. QWERTY keyboards, TCP/IP stacks, DOS function calls, x86 compatibility – they’re all symptoms of old technology that just won’t die. Not because we haven’t developed better alternatives, but because we don’t like the better alternatives. Have you ever actually tried using one of those split, lumpy, ergonomically correct Dvorak keyboards?
There’s good business in retro-technology. Just ask any military contractor. Or Microchip, for that matter. The company that pushes out new and interesting microcontrollers almost weekly also keeps one eye on the rearview mirror, satisfying a sizable niche for backward compatibility. Case in point: the new MEC1400 family of controller chips.
You don’t often see “Microchip” and “x86” in the same sentence, much less the same datasheet. But the new MEC1400 parts combine the two very nicely. Allow me to quote directly from Microchip’s own product literature: “The MEC1400 family is a highly configurable, mixed-signal, advanced I/O controller architecture. MEC1418 incorporates a 32-bit MIPS32 M14K microcontroller core with 192 KB of closely coupled SRAM for code and data that loads from SPI flash. Designers can leverage the host SPI-flash (used for BIOS storage) for nonvolatile EC firmware storage, as a cost-effective system solution.”
So… what does this thing do, exactly? It’s a keyboard controller for PCs.
But wait – aren’t there already cheap keyboard controllers for PCs? Of course, but they – like most everything else about the PC – are based on older technologies and ad hoc pseudo-standards, all of which are getting long in the tooth and aren’t keeping pace with modern design. Most new/old PC peripheral controllers use the LPC (low pin count) bus to amalgamate controller functions, which is a lot better than the original way of doing things. But even LPC is looking a bit tired these days. Despite the name, LPC eats up a lot of pins if you’re trying to design a small device like a tablet, or even a decent laptop. It also uses 3.3V signaling, which is so 1990s. All the cool kids are using the newer eSPI (enhanced serial peripheral interface) now, don’tcha know?
The eSPI standard is Intel’s officially preferred way of replacing LPC peripherals. It uses fewer pins than LPC, it’s faster than LPC (up to 66 MHz), and it can run at either 3.3V or 1.8V. It supports both peripherals and memory, and it can even do 64-bit addressing if you’re clever. I can’t help pointing out that eSPI is both faster and more capable than the original ISA expansion bus on early PCs. You know, the one we used for memory and graphics cards.
Microchip’s new MEC1400 complements your PC-compatible chipset by providing the low-speed peripherals that any self-respecting PC needs: the keyboard, interrupt controller, UART, ACPI interfaces, DMA controller, counter/timers, PWM for fans, general-purpose I/O, and so on. What makes it special is that it does this either through the semi-old LPC interface or through the shiny-new eSPI interface, at either 3.3V or 1.8V. In short, it’s the modern way to add old peripherals. Like doing cave paintings with Adobe Illustrator.
There are six different chips in the MEC1400 series, depending on whether you want eSPI support or not, and how much SRAM you like. (There are packaging options, too, but I don’t count those.) Prices hover around $2, depending on the usual factors.
Oh, and did I mention that all six varieties are powered by their own on-chip MIPS CPU core? How’s that for a retro mind blower? Here we have the same 32-bit RISC processor that launched Silicon Graphics and MIPS Computer Systems; that famously rendered all the CGI in Jurassic Park; and that propelled the career of developer John Hennessy to the presidency of Stanford University. Yeah, that MIPS. Handling the keyboard interface for old PC clones.
But you know what the MEC1400 chips don’t have? A floppy interface.