Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

What is the reason for SPI to be able to run at 50MHz, but UART etc only 4MHz?

Status
Not open for further replies.

kel8157

Full Member level 2
Joined
Nov 14, 2007
Messages
131
Helped
5
Reputation
10
Reaction score
3
Trophy points
1,298
Activity points
2,017
I have seen people using peripherals like UART/I2C/SPI etc in system on chip ASIC designs, there is a phenomenon is UART/I2C are usually run at a few MHz however SPI can be used at 50MHz+. There are clocks with higher than 100MHz, and I see no reason why UART signals can not be processed at that clocks. What is the cause of this difference? UART/I2C are used to interact with host computer using cables so they must be run at slow speed?
 

Being UARTs asynchronous devices, they require a sampling clock which is generally 16x times the "official" speed of the serial communication.
The limitation in I2C speed are simply defined in the I2C standard: read it and you will discover the reasons behind it. ;-)
 
Last edited:
There is at least one simple and hard to overcome reason for this: UART revceivers need to oversample the input data with a factor 8 to 16 higher clock frequency. As a second point, UART is mostly used as peripheral interface while SPI is dedicated to "interchip" connections, rarely connecting beyond PCB boundaries.

I2C is an interchip interface as well, at best connecting multiple PCBs over short distance. But I2C low data rates of 100 and 400 kHz are fixed by specification, the supplementing Hs speed is supported by very few chips and rarely used. I2C is used for connections without high throughput demand.

It's possible to run high speed UART interfaces with programmable logic devices, if you have a high frequency clock available, e.g. provided by an on-chip PLL.
 
SPI can run at the samt rate as the available clock. UART normally has the clock at 8 or 16 times the rate to be able to synchronize to the start bit, but it will work fine down to 3.
 
thank you all.. understand..
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top