SPI is short for Serial Peripheral Interface. It’s a great protocol and interface mechanism between multiple devices on a bus. It’s used all the time in the electronics world - it’s what makes your displays, SD cards, sensors and programmers work. The problem is that since its inception in the 1980s, the terms Master and Slave have been used to describe the controller and the peripheral (MOSI = Master Output Slave Input, and vice versa). The technology world can do better than this.
Yes, and it’s ok that you asked. These are terms that have centuries of history and violence packed into them. No human should be enslaved.
Old habits die hard, and given the chance people will resort to Master/Slave terminology. We must abandon MOSI/MISO if we want lasting change. Additionally, choosing what MOSI/MISO stands for quickly devolves (is it Main/Second? Or was it Manager/Subscriber?), leaving Master and Slave in its place.
Because we would end up with Pinny McPinFace. Humor aside, a group of hardware companies and electronic designers debated at length, ran through the alternatives and while I can’t say we all agreed, we ended up with consensus. The idea is that with the help and influence of the large number of electronics communities, we can sway larger companies and change the way SPI is taught and used.
SDO/SDI was deemed the best way to proceed because there are already numerous companies using the SDO/SDI terminology. The main MOSI/MISO culprit now is controller datasheets, so if you know anyone at ARM, TI, Microchip or Honeywell, please elbow them in the ribs, tell them to endorse this thing, and to start changing the way they write documentation for their products.
If not now, when? We can do this. We can try to make a very small corner of the universe a little better. I hope you'll also understand and see just how much you can help, too.
Ya, and it’s the right thing to do. Focus on new content, new designs, new schematics. You may not realize it, but many of you are operating at the forefront of the field. What we write, what we design, and what we teach are absorbed by the next generation of engineers. Change how you name a few pins on your schematic. Change how you talk about SPI on your videos. Do I still say Master/Slave by accident sometimes? Yep. But now I’m proud to point out how foolish those names are.
There’s a lot more work to do. SPI is something we can fix. Let’s do our small part and fix SPI now. We’ll work on I2C next.
Authored by Nathan Seidle