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.

SPI, I2C, UART, RS232, USB pros and cons?

Status
Not open for further replies.

shly

Junior Member level 1
Junior Member level 1
Joined
Sep 14, 2004
Messages
15
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
79
any good matierials discussing this?

thanks
 

USB generally requires specialized hardware (built into some controllers, but not most) and generally requires the host side implementation to be pretty complex. Suitable for communication between pluggable and interchangeable devices, but not optimal for cases where both ends of the connection are "known".

SPI is fast and simple, but uses a lot of wires (at least four; more if handshaking is necessary). It would be possible to design a protocol with all of SPI's advantages, plus handshaking, in only three wires; such a device could be used with existing controllers, though separate select and handshake lines may be needed. I'm unaware of anyone having done such a thing, though. SPI signals are actively driven both high and low, so there is no need to wait for signals to be passively pulled up.

I2C is a nice protocol, but its speed is limited to about 1mbps (compared with 10-60mbps for SPI). It only needs two wires, but they have to be wired open-collector with passive pullups.

UARTs can be very nice. RS-232 (using positive and negative voltage levels) is a bit more robust than logic-level signalling. UART communication needs only one wire in each direction, and may be used at speeds up to 1mpbs or more. The biggest difficulties are that speeds may be limited unless both ends of the connection have suitably-related clocks available, and that handshaking either requires injecting stuff into the datastream or using additional wires.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top