What Is It? - Basic SPI - Capabilities - Protocol - Pros and Cons - Uses
What Is It? - Basic SPI - Capabilities - Protocol - Pros and Cons - Uses
• What is it?
• Basic SPI
• Capabilities
• Uses
1
What is SPI?
2
SPI Basics
3
SPI Capabilities
• Always full-duplex
– Communicates in both directions simultaneously
– Transmitted (or received) data may not be meaningful
• Multiple Mbps transmission speeds
– 0-50 MHz clock speeds not uncommon
• Transfer data in 4 to 16 bit characters
• Supports multiple slaves
4
SPI bus wiring
• Bus wires
– Master-Out, Slave-In (MOSI)
– Master-In, Slave-Out (MISO)
– System Clock (SCLK)
– Slave Select/Chip Select (SS1#, …, SS#n or CS1, …, CSn)
• Master asserts slave/chip select line
• Master generates clock signal
• Shift registers shift data in and out
5
SPI signal functions
6
SPI uses a “shift register” model of communications
Master shifts out data to Slave, and shifts in data from Slave
http://upload.wikimedia.org/wikipedia/commons/thumb/b/bb/SPI_8-bit_circular_transfer.svg/400px-SPI_8-bit_circular_transfer.svg.png
7
Two bus configuration models
slaves
http://upload.wikimedia.org/wikipedia/commons/thumb/f/fc/SPI_three_sla
ves.svg/350px-SPI_three_slaves.svg.png
8
SPI clocking: there is no “standard way”
10
SPI tradeoffs: the pros and cons
• Pros
– Fast for point-to-point connections
– Easily allows streaming/constant data inflow
– No addressing in protocol, so it’s simple to implement
– Broadly supported
• Cons
– Slave select/chip select makes multiple slaves more complex
– No acknowledgement (can’t tell if clocking in garbage)
– No inherent arbitration
– No flow control (must know slave speed)
11
SPI is used everywhere!
• Peripherals
– LCDs
– Sensors
– Radios
– Lots of other chips
• Microcontrollers
– Almost all MCUs have SPI masters
– Some have SPI slaves
12
SPI summary
13
SPI bus architecture
• Shared bus
• SCK
• MOSI
• MISO
• Chip selects
14
SPI bus architecture
15
I2C bus
• Inter-Integrated Circuit
• Pronounced “eye-squared-see”
• Sometimes called “eye-two-see”
• Two wire serial bus specification
• Invented by Philips in the early 1980s
• The division is now NXP
• Was a patented protocol, but patent has now expired
16
I2C uses
17
I2C bus architecture
• I2C
• Standardizes peripheral classes
• SCK, SDA
• Philips/NXP
18
I2C details
• Multi-master, Multi-slave
• Uses bus arbitration
19
I2C wiring
• Two lines
• SDA (serial data)
• SCL (serial clock)
• Open collector design
• Simple interfacing in for multi-voltage
• Supports bus arbitration
20
I2C clock
21
I2C transaction
22
I2C start condition
23
I2C address transmission
24
I2C data transmission
25
I2C stop condition
26
I2C bus transactions: start and stop conditions
27
I2C bus transactions: data transfer
28
I2C bus transactions: data transfer
29