KEMBAR78
IOT Lecture7-Serial-Spi-And-I2c | PDF | Computer Science | Computer Networking
0% found this document useful (0 votes)
75 views17 pages

IOT Lecture7-Serial-Spi-And-I2c

The document discusses SPI and I2C communication protocols used in wireless embedded systems. It outlines the advantages and disadvantages of each protocol, detailing how SPI allows fast point-to-point connections while I2C enables multiple devices to connect with only two wires. Key concepts such as clock modes, data transfer, and master-slave relationships are explained for both protocols.

Uploaded by

Ramdas Hansda
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
75 views17 pages

IOT Lecture7-Serial-Spi-And-I2c

The document discusses SPI and I2C communication protocols used in wireless embedded systems. It outlines the advantages and disadvantages of each protocol, detailing how SPI allows fast point-to-point connections while I2C enables multiple devices to connect with only two wires. Key concepts such as clock modes, data transfer, and master-slave relationships are explained for both protocols.

Uploaded by

Ramdas Hansda
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

CSE190 Winter 2020

SPI and I2C

Wireless Embedded Systems


SPI
Communication

2
Four clocking “modes”
•Two phases
•Two polarities

SPI Master and selected slave must


be in the same mode

clocking:
there is no During transfers with slaves A
and B, Master must

“standard •Configure clock to Slave A’s clock mode


•Select Slave A
•Do transfer
•Deselect Slave A Master reconfigures clock mode
•Configure clock to Slave B’s clock mode on-the-fly!

way” •Select Slave B


•Do transfer
•Deselect Slave B

7
SPI timing
diagram

5
SPI Pros and Cons
• Pros:
– Fast and easy
• Fast for point-to-point connections
• Easily allows streaming/Constant data inflow
• No addressing/Simple to implement
– Everyone supports it

• Cons:
– SS makes multiple slaves very complicated
– No acknowledgement ability
– No inherent arbitration
– No flow control
5
Communication with the
accelerometer
• Read acceleration values and configure
interrupts
I2C bus (in
Pros
our
• Two wires bus that can connect multiple
projects) peripherals with the MCU

Cons

• Overhead is significantly higher, and bus


is slower
I2C Details

• Two lines
– Serial data line (SDA)
– Serial clock line (SCL)

• Only two wires for connecting


multiple devices
Each I2C device recognized by a
unique address

Each I2C device can be either a


transmitter or receiver
I2C I2C devices can be masters or
Details slaves for a data transfer
• Master (usually a microcontroller):
Initiates a data transfer on the bus,
generates the clock signals to permit
that transfer, and terminates the
transfer
• Slave: Any device addressed by the
master at that time
How can any device
transfer or receive on the same two wires?

• Pull ups and high-impedance


mode pins
– Wires default to being “on”,
any device can
make a wire go “off”.
– This is super clever. SPI and
UART can’t do this, why?
Bit Transfer on the I2C Bus
• In normal data transfer, the data line only changes state
when the clock is low

SDA

SCL
Data line stable; Change
Data valid of data
allowed

10 of 40
Start and Stop Conditions
• A transition of the data line while
the clock line is high is defined as
either a start or a stop condition.
• Both start and stop conditions are
generated by the bus master
• The bus is considered busy after a SD SD
start condition, until a stop A A

condition occurs SCL SCL

Start Stop
Conditio Condition
n

11 of 40
2
IC Addressing

• Each node has a unique 7 (or 10) bit address

• Peripherals often have fixed and programmable address


portions

• Addresses starting with 0000 or 1111 have special functions:-


– 0000000 Is a General Call Address
– 0000001 Is a Null (CBUS) Address
– 1111XXX Address Extension
– 1111111 Address Extension – Next Bytes are the Actual
Address

12 of 40
I2C-Connected
System
• Example I2C-connected
system with two
microcontrollers
• (Source: I2C
Specification, Philips)
Who is the master?

• master-transmitters
• master-receivers

Suppose microcontroller A wants to send


information to microcontroller B
• A (master) addresses B (slave)
Master-Slave • A (master-transmitter), sends data to B (slave-receiver)
• A terminates the transfer.
Relationships If microcontroller A wants to receive information
from microcontroller B
• A (master) addresses microcontroller B (slave)
• A (master-receiver) receives data from B (slave-
transmitter)
• A terminates the transfer

In both cases, the master (microcontroller A)


generates the timing and terminates the transfer
Exercise: How fast can I2C run?
• How fast can you run it?
• Assumptions
– 0’s are driven
– 1’s are “pulled up”
• Some working figures
– Rp = 10 kΩ
– Ccap = 100 pF
– VDD = 5 V
– Vin_high = 3.5 V
• Recall for RC circuit
– Vcap(t) = VDD(1-e-t/τ)
– Where τ = RC

15
An I2C “transactions” involves the following bits

<S><A6:A0><R/W><A><D7:D0><A><F>

Exercise: Bus
bit rate vs Which of these actually carries useful data?

Useful data <S><A6:A0><R/W><A><D7:D0><A><F>

rate

So, if a bus runs at 400 kHz


What is the data
What is the clock What is the bus
throughput (i.e.
period? “efficiency”?
data-bits/second)?

16
How to operate the accelerometer?

Accel
I2C register 1
MCU I2C register 2
….

Springs

https://www.youtube.com/watch?v=eqZgxR6eRjo

You might also like