3.3 or 5V SPI. Which is faster?

I know the µControllers operate at 3.3 but tolerate 5V. I am currently running slave devices on the SPI bus at 5V. If I lower the voltage to 3.3 volts can I theoretically increase the speed of SPI communications? Am I limiting my solution by running at 5V and not 3.3V?

@ andre.m - eh?

Speed isn’t related to voltage, it’s related to how fast the USART peripheral on the micro can run.

They go very very slow when you supply no power :wink:

The spec sheet for the parts you’re using will be more informative here - they may have a performance versus voltage table, but I doubt it. If they support running from 3v3 or 5v, and there was nothing else special (long cable runs for example :wink: ) I’d go with whatever had the most capable supply.

1 Like

@ Brett - Yes, there are long cable runs. 16 foot cable. You know my project well.

So what is the voltage drop over those runs , are you really supplying them 5v over long runs ? Are the signals actually 5v when they get to the controller ?

@ Brett - The voltage is high enough.

ok, so you’re being obtuse deliberately I expect.

Are you really attempting to run SPI over 16 feet ? Good luck with that.

SPI, like I2C and direct UART, is a passive bus, intended for short runs (PCB traces and short cables). If you want to get reliability over long runs, then you can get some improvement with well managed cables (shielding, ferrites) or you can move to a different transport layer such as CAN, RS232, RS422, RS485 etc.

@ Brett - Hum… no dude, I’m running SPI over 12 feet (I managed to shorten it). The last device on the chain is 10 feet away but it gets it’s input from a device 2.2 feet feet away, but the signal back to the master is 12 feet away. Test show that it does work. NETMF for the win.

I thought you were one of those who knew my solution.

SPI FTW then. Just remember, long cables = great antennas


At 5v, more electrons have to be pushed through all the wires than at 3.3v. It stands to reason that for more electrons to be moved through the wire during the same amount of elapsed time, the electrons have to move faster.

Only, this violates Einstein’s laws, so to compensate, the mass of the wires must therefore increase. So for every SPI clock cycle, at 5V, your micro will become slightly heavier than a micro running at 3.3v. This is okay, as long as you don’t leave it running overnight, as then it would be come so massive it would start having gravitational effects on the surrounding circuitry. Left alone for a week, and your house might disappear. Hopefully this would end the problem by cutting power to the device. But if you happened to be powering it with a long term battery… well… heaven helps us all.


Actually there is a logical farcically there. The mass of the wires doesn’t need to increase. As the electrons speed up they generate heat, until the system reaches equilibrium. So at 5V the wires will just feel a little warmer.

I agree with Brett about the limitation based on the speed of the micro and not the voltage. Having said that, I have seen in the past on Arduino’s that if you run at 3V3 instead of 5V, then the micro can only be run at lower speed. So in that case 5V supply will allow faster speeds.