Prepared by: Mohamed AbdAllah
Raspberry pi interfacing
Lecture 3: Embedded Communication Protocols
1
Embedded Communication Protocols Agenda
 Embedded systems communication concepts.
 UART protocol.
 I2C protocol.
 SPI protocol.
2
Embedded systems communication concepts
 What is communication in embedded systems ?
• It is a way of exchanging data or commands between 2 or more different
embedded systems devices.
• Communication protocols are standards that contains data exchange
rules and format between embedded systems.
 Communication protocols examples in embedded systems
• UART.
• I2C.
• SPI.
• CAN.
• LIN.
3
Embedded systems communication concepts
 Bit rate
• It is the number of bits that are sent per unit of time usually bits/sec.
 Baud rate
• It is the number of symbols that are sent per unit of time usually, symbol
can be combination of any number of bits according to design choice.
• In case that symbol is only 1 bit, then baud rate will equal the bit rate.
4
Embedded systems communication concepts
 Serial communication
Sending bit by bit.
 Parallel Communication
Sending multiple bits simultaneously.
5
Embedded systems communication concepts
6
Embedded systems communication concepts
 Synchronous serial communication
• Synchronous serial communication describes a serial communication
protocol in which data is sent in a continuous stream at a constant rate.
• Synchronous communication requires that the clocks in the transmitting
and receiving devices are synchronized – running at the same rate – so
the receiver can sample the signal at the same time intervals used by the
transmitter so that there is an extra wire for clock carrying.
Sender Receiver
Tx
Rx
Clck
7
Embedded systems communication concepts
 Asynchronous serial communication
• Asynchronous serial communication is a form serial communication in
which the communicating endpoints' interfaces are not continuously
synchronized by a common clock signal.
• Instead of a common synchronization signal, the data stream contains
synchronization information in form of start and stop signals, before and
after each unit of transmission, respectively. The start signal prepares the
receiver for arrival of data and the stop signal resets its state to enable
triggering of a new sequence.
Sender Receiver
Tx
Rx
8
Protocols examples
UART
I2C
SPI
9
UART
UART
I2C
SPI
10
UART
 What is UART ?
• UART stands for Universal Asynchronous Receiver Transmitter. There is
one wire for transmitting data, and one wire to receive data. A common
parameter is the baud rate known as "bps" which stands for bits per
second. If a transmitter is configured with 9600bps, then the receiver
must be listening on the other end at the same speed.
• UART is a serial communication, so bits must travel on a single wire. If you
wish to send a char (8-bits) over UART, the char is enclosed within a start
and a stop bit, so to send 8-bits of char data, it would require 2-bit
overhead; this 10-bit of information is called a UART frame.
11
UART
 UART frame format
12
UART
 UART frame format
• Start bit: 1 bit indicates the start of a new frame, always logic low.
• Data: 5 to 8 bits of sent data.
• Parity bit: 1 bit for error checking
 Even parity: clear parity bit if number of 1s sent is even.
 Odd parity: clear parity bit if number of 1s sent is odd.
• Stop bit: 1 or 2 bits indicate end of frame, always logic high.
13
UART
 UART notes
• UART supports PC communication through RS232.
• UART standard baud rate examples (110, 300, 600, 1200, 4800, 9600, ....).
• UART is a full duplex communication protocol.
• UART is point to point communication protocol, which means
communication can be between 2 devices only at the same time.
14
I2C
UART
I2C
SPI
15
I2C
 What is I2C?
• I²C (Inter-Integrated Circuit), is a multi-master, multi-slave, serial
computer bus invented by Philips Semiconductor (now NXP
Semiconductors). It is typically used for attaching lower-speed peripheral
ICs to processors and microcontrollers.
• I2C is a synchronous serial communication using two wires, one wire for
data (SDA) and the other wire for clock (SCL).
16
I2C
 I2C bus
17
I2C
 I2C bus
18
I2C
 I2C data validity
• For the data to be valid on the SDA line, it must not change while the SCL
is high. The data on the SDA line should change only and only when the
SCL line goes low.
19
I2C
 I2C frame format
20
I2C
 I2C frame format
• Start bit: 1 bit indicates the start of a new frame, always logic low.
• Address: 7 bits that decides slave address which is the device that will
process the upcoming sent data by the master.
• R/W̅ : 1 bit to decide type of operation, logic high for read, logic low for
write.
• ACK: 1 bit sent by the slave as acknowledge by polling line low.
• Data: each 8-bits of data sent is followed by ACK bit by the receiver.
• Stop bit: 1 bit indicates the end of the frame.
21
I2C
 I2C bus arbitration mechanism
• Since the bus structure is a wired AND (if one device pulls a line low it
stays low), you can test if the bus is idle or occupied.
• When a master changes the state of a line to HIGH, it MUST always check
that the line really has gone to HIGH. If it stays low then this is an
indication that the bus is occupied and some other device is pulling the
line low.
• Therefore the general rule is: If a master can't get a certain line to go
high, it lost arbitration and needs to back off and wait until a stop
condition is seen before making another attempt to start transmitting.
22
I2C
 I2C bus arbitration mechanism
23
I2C
 Case 1: Master (Transmitter) to Slave (Receiver) Data Transfer
• The Master sends the START sequence to begin the transaction.
• It is followed by Master sending 7-bit Slave address and the R/W̅ bit set to
zero. We set it to zero because the Master is writing to the Slave.
• The Slave acknowledges by pulling the ACK bit low.
• Once the Slave acknowledges the address, Master can now send data to
the Slave byte-by-byte. The Slave has to send the ACK bit after every byte
it receives.
• This goes on till Slave can no longer receive data and does NOT send the
ACK bit.
• This is when the Master realizes that the Slave is not accepting anymore
and then STOPs the transaction (or RE-START).
• An example of this case would be like performing page write operations
on a EEPROM chip. 24
I2C
 Case 1: Master (Transmitter) to Slave (Receiver) Data Transfer
25
I2C
 Case 2: Slave (Transmitter) to Master (Receiver) Data Transfer
• The Master sends the START sequence, followed by the 7-bit Slave
address and the R/W̅ bit set to 1.
• We set R/W̅ bit to 1 because the Master is reading from the Slave.
• The Slave acknowledges the address, thus ready to send data now.
• Slave keeps on sending data to the Master, and the Master keeps on
sending ACK to the Slave after each byte until it can no longer accept any
more data.
• When the Master feels like ending the transaction, it does not send the
ACK, thus ending with the STOP sequence.
• An example of this case could be an Analog to Digital Converter (ADC)
sending data to the microcontroller continuously. The microcontroller
accepts data as long as it wants to, after which it stops/finishes execution.
26
I2C
 Case 2: Slave (Transmitter) to Master (Receiver) Data Transfer
27
I2C
 Case 3: Bi-directional Read and Write in same Data Transfer
• The Master sends out the START sequence, followed by the 7-bit Slave
address and the R/W̅ bit, then the Slave acknowledges the address.
• Depending upon the value of the R/W̅ bit, read/write operations are
performed (like the previous two cases).
• Whatever the case it may be, it always ends with the receiver not sending
the ACK.
• At the end the Master attempts a repeated START and the entire process
repeats again, until the Master decides to STOP.
• An example of this case could be performing sequential read from a
EEPROM chip. It is bi-directional because the CPU first writes the address
from where it would like to start reading, followed by reading from the
device.
28
I2C
 Case 3: Bi-directional Read and Write in same Data Transfer
29
I2C
 I2C notes
• I2C supports a wide range of voltage levels, hence you can provide +5
volts, or +3.3 volts as Vcc easily, and other lower/higher voltages as well.
• This gives us a wide range of choices for the values of the pull-up resistors
Anything within the range of 1k to 47k should be fine, however values
lower than 10k are usually preferred.
• I2C is a half duplex communication protocol.
• I2C supports serial 8-bit data transfers up to a speed of 100 kbps, which is
the standard clock speed of SCL. However, I2C can also operate at higher
speeds – Fast Mode (400 kbps) and High Speed Mode (3.4 Mbps).
30
I2C
 I2C notes
• Maximum number of nodes is 112, as address is 7-bits and there are 16
nodes reserved.
• I2C is used for short distance communication.
• The Slave is allowed to hold the clock line low until it is ready to give out
the result. The Master must wait for the clock to go back to high before
continuing with its work, this is called clock stretching.
31
SPI
UART
I2C
SPI
32
SPI
 What is SPI?
• Serial Peripheral Interface (SPI) bus is a synchronous serial
communication interface specification used for short distance
communication.
• The SPI bus can operate with a single master device and with one or more
slave devices.
33
SPI
 SPI connection
34
SPI
 SPI connection
• SCLK : Serial Clock (output from master).
• MOSI : Master Output, Slave Input (output from master).
• MISO : Master Input, Slave Output (output from slave).
• SS : Slave Select (active low, output from master).
35
SPI
 SPI notes
• SPI is a full duplex communication protocol.
• SPI is single master multiple slaves communication protocol.
• SPI protocol has complete flexibility for the bits transferred as there is no
limit for 8-bit word or message size or purpose.
36
Mohamed AbdAllah
Embedded Systems Engineer
mohabdallah8@gmail.com
37

More Related Content

PPTX
Communication protocols
PPTX
8051 memory
PPTX
PPTX
8051 MICROCONTROLLER ARCHITECTURE.pptx
PPTX
8086 Microprocessor Pipeline Architecture.pptx
PPT
3. Coprocessor.ppt
PPT
The constrained application protocol (CoAP)
PPTX
Introduction to Internet of Things Hardware
Communication protocols
8051 memory
8051 MICROCONTROLLER ARCHITECTURE.pptx
8086 Microprocessor Pipeline Architecture.pptx
3. Coprocessor.ppt
The constrained application protocol (CoAP)
Introduction to Internet of Things Hardware

What's hot (20)

PDF
Communication protocols - Embedded Systems
PPSX
Physical layer ppt
PDF
ARM Architecture
PPT
Interfacing 8255
PPTX
General Purpose Input Output - Brief Introduction
PPT
Pin Description Of Intel 80386 DX Microprocessor
PDF
IoT & M2M.pdf
PPTX
Raspberry Pi (Introduction)
PDF
IoT, M2M and IoT System Management
PPTX
ARM Processors
PDF
Raspberry Pi
PPTX
Memory banking-of-8086-final
PDF
How BGP Works
PPTX
User datagram protocol (udp)
PPT
Controller area network (CAN bus) ppt
PPTX
communication-protocols
PPTX
Spi in arm7(lpc2148)
PPTX
8051 serialp port
PPTX
IOT PROTOCOLS.pptx
Communication protocols - Embedded Systems
Physical layer ppt
ARM Architecture
Interfacing 8255
General Purpose Input Output - Brief Introduction
Pin Description Of Intel 80386 DX Microprocessor
IoT & M2M.pdf
Raspberry Pi (Introduction)
IoT, M2M and IoT System Management
ARM Processors
Raspberry Pi
Memory banking-of-8086-final
How BGP Works
User datagram protocol (udp)
Controller area network (CAN bus) ppt
communication-protocols
Spi in arm7(lpc2148)
8051 serialp port
IOT PROTOCOLS.pptx
Ad

Similar to Raspberry Pi - Lecture 3 Embedded Communication Protocols (20)

PPTX
embedded system on board communication.pptx
PPTX
embedded system on board communication.pptx
PPTX
embedded system on board communication.pptx
PDF
communication interfaces-Embedded real time systems
PPTX
I2C introduction
PPTX
I2C Protocol
PPTX
I2c protocol - Inter–Integrated Circuit Communication Protocol
PPTX
Communication Protocols in Embedded Systems.pptx
PPTX
Serial Communication in 8051
PPT
I2C PRESENTATION.PPT
PDF
Embedded Networking - Serial Bus Communication Protocols – I2C Bus
PPT
I2C Protocol
PPT
Serial-peripheral-imterface-protocol.ppt
PPTX
UNI T 6- SPI_I2C_Lecture8.pptx
PPTX
Inter intergrated circuits-communication protocol
PPTX
Peripherals and interfacing
PPT
I2C And SPI Part-23
PPTX
UART SPI and I2C serial Interfaces .pptx
PPTX
Communication_Protocols[2][1].pptx on protocoals
PPTX
Serial Busses.pptx
embedded system on board communication.pptx
embedded system on board communication.pptx
embedded system on board communication.pptx
communication interfaces-Embedded real time systems
I2C introduction
I2C Protocol
I2c protocol - Inter–Integrated Circuit Communication Protocol
Communication Protocols in Embedded Systems.pptx
Serial Communication in 8051
I2C PRESENTATION.PPT
Embedded Networking - Serial Bus Communication Protocols – I2C Bus
I2C Protocol
Serial-peripheral-imterface-protocol.ppt
UNI T 6- SPI_I2C_Lecture8.pptx
Inter intergrated circuits-communication protocol
Peripherals and interfacing
I2C And SPI Part-23
UART SPI and I2C serial Interfaces .pptx
Communication_Protocols[2][1].pptx on protocoals
Serial Busses.pptx
Ad

More from Mohamed Abdallah (10)

PDF
Hardware interfacing basics using AVR
PDF
Embedded C - Lecture 4
PDF
Embedded C - Lecture 3
PDF
Embedded C - Lecture 2
PDF
Embedded C - Lecture 1
PDF
Raspberry Pi - Lecture 6 Working on Raspberry Pi
PDF
Raspberry Pi - Lecture 5 Python for Raspberry Pi
PDF
Raspberry Pi - Lecture 4 Hardware Interfacing Special Cases
PDF
Raspberry Pi - Lecture 2 Linux OS
PDF
Raspberry Pi - Lecture 1 Introduction
Hardware interfacing basics using AVR
Embedded C - Lecture 4
Embedded C - Lecture 3
Embedded C - Lecture 2
Embedded C - Lecture 1
Raspberry Pi - Lecture 6 Working on Raspberry Pi
Raspberry Pi - Lecture 5 Python for Raspberry Pi
Raspberry Pi - Lecture 4 Hardware Interfacing Special Cases
Raspberry Pi - Lecture 2 Linux OS
Raspberry Pi - Lecture 1 Introduction

Recently uploaded (20)

PPTX
A Brief Introduction to IoT- Smart Objects: The "Things" in IoT
PPTX
Graph Data Structures with Types, Traversals, Connectivity, and Real-Life App...
PDF
Java Basics-Introduction and program control
PPTX
Chemical Technological Processes, Feasibility Study and Chemical Process Indu...
PDF
UEFA_Embodied_Carbon_Emissions_Football_Infrastructure.pdf
PPTX
Micro1New.ppt.pptx the mai themes of micfrobiology
PPTX
CONTRACTS IN CONSTRUCTION PROJECTS: TYPES
PPTX
Sorting and Hashing in Data Structures with Algorithms, Techniques, Implement...
PPTX
Chapter 2 -Technology and Enginerring Materials + Composites.pptx
PDF
distributed database system" (DDBS) is often used to refer to both the distri...
PPTX
PRASUNET_20240614003_231416_0000[1].pptx
PPTX
CN_Unite_1 AI&DS ENGGERING SPPU PUNE UNIVERSITY
PDF
Applications of Equal_Area_Criterion.pdf
PDF
Present and Future of Systems Engineering: Air Combat Systems
PDF
Unit1 - AIML Chapter 1 concept and ethics
PPTX
Software Engineering and software moduleing
PPTX
Module 8- Technological and Communication Skills.pptx
PPTX
Principal presentation for NAAC (1).pptx
PDF
Computer System Architecture 3rd Edition-M Morris Mano.pdf
PPTX
wireless networks, mobile computing.pptx
A Brief Introduction to IoT- Smart Objects: The "Things" in IoT
Graph Data Structures with Types, Traversals, Connectivity, and Real-Life App...
Java Basics-Introduction and program control
Chemical Technological Processes, Feasibility Study and Chemical Process Indu...
UEFA_Embodied_Carbon_Emissions_Football_Infrastructure.pdf
Micro1New.ppt.pptx the mai themes of micfrobiology
CONTRACTS IN CONSTRUCTION PROJECTS: TYPES
Sorting and Hashing in Data Structures with Algorithms, Techniques, Implement...
Chapter 2 -Technology and Enginerring Materials + Composites.pptx
distributed database system" (DDBS) is often used to refer to both the distri...
PRASUNET_20240614003_231416_0000[1].pptx
CN_Unite_1 AI&DS ENGGERING SPPU PUNE UNIVERSITY
Applications of Equal_Area_Criterion.pdf
Present and Future of Systems Engineering: Air Combat Systems
Unit1 - AIML Chapter 1 concept and ethics
Software Engineering and software moduleing
Module 8- Technological and Communication Skills.pptx
Principal presentation for NAAC (1).pptx
Computer System Architecture 3rd Edition-M Morris Mano.pdf
wireless networks, mobile computing.pptx

Raspberry Pi - Lecture 3 Embedded Communication Protocols

  • 1. Prepared by: Mohamed AbdAllah Raspberry pi interfacing Lecture 3: Embedded Communication Protocols 1
  • 2. Embedded Communication Protocols Agenda  Embedded systems communication concepts.  UART protocol.  I2C protocol.  SPI protocol. 2
  • 3. Embedded systems communication concepts  What is communication in embedded systems ? • It is a way of exchanging data or commands between 2 or more different embedded systems devices. • Communication protocols are standards that contains data exchange rules and format between embedded systems.  Communication protocols examples in embedded systems • UART. • I2C. • SPI. • CAN. • LIN. 3
  • 4. Embedded systems communication concepts  Bit rate • It is the number of bits that are sent per unit of time usually bits/sec.  Baud rate • It is the number of symbols that are sent per unit of time usually, symbol can be combination of any number of bits according to design choice. • In case that symbol is only 1 bit, then baud rate will equal the bit rate. 4
  • 5. Embedded systems communication concepts  Serial communication Sending bit by bit.  Parallel Communication Sending multiple bits simultaneously. 5
  • 7. Embedded systems communication concepts  Synchronous serial communication • Synchronous serial communication describes a serial communication protocol in which data is sent in a continuous stream at a constant rate. • Synchronous communication requires that the clocks in the transmitting and receiving devices are synchronized – running at the same rate – so the receiver can sample the signal at the same time intervals used by the transmitter so that there is an extra wire for clock carrying. Sender Receiver Tx Rx Clck 7
  • 8. Embedded systems communication concepts  Asynchronous serial communication • Asynchronous serial communication is a form serial communication in which the communicating endpoints' interfaces are not continuously synchronized by a common clock signal. • Instead of a common synchronization signal, the data stream contains synchronization information in form of start and stop signals, before and after each unit of transmission, respectively. The start signal prepares the receiver for arrival of data and the stop signal resets its state to enable triggering of a new sequence. Sender Receiver Tx Rx 8
  • 11. UART  What is UART ? • UART stands for Universal Asynchronous Receiver Transmitter. There is one wire for transmitting data, and one wire to receive data. A common parameter is the baud rate known as "bps" which stands for bits per second. If a transmitter is configured with 9600bps, then the receiver must be listening on the other end at the same speed. • UART is a serial communication, so bits must travel on a single wire. If you wish to send a char (8-bits) over UART, the char is enclosed within a start and a stop bit, so to send 8-bits of char data, it would require 2-bit overhead; this 10-bit of information is called a UART frame. 11
  • 12. UART  UART frame format 12
  • 13. UART  UART frame format • Start bit: 1 bit indicates the start of a new frame, always logic low. • Data: 5 to 8 bits of sent data. • Parity bit: 1 bit for error checking  Even parity: clear parity bit if number of 1s sent is even.  Odd parity: clear parity bit if number of 1s sent is odd. • Stop bit: 1 or 2 bits indicate end of frame, always logic high. 13
  • 14. UART  UART notes • UART supports PC communication through RS232. • UART standard baud rate examples (110, 300, 600, 1200, 4800, 9600, ....). • UART is a full duplex communication protocol. • UART is point to point communication protocol, which means communication can be between 2 devices only at the same time. 14
  • 16. I2C  What is I2C? • I²C (Inter-Integrated Circuit), is a multi-master, multi-slave, serial computer bus invented by Philips Semiconductor (now NXP Semiconductors). It is typically used for attaching lower-speed peripheral ICs to processors and microcontrollers. • I2C is a synchronous serial communication using two wires, one wire for data (SDA) and the other wire for clock (SCL). 16
  • 19. I2C  I2C data validity • For the data to be valid on the SDA line, it must not change while the SCL is high. The data on the SDA line should change only and only when the SCL line goes low. 19
  • 20. I2C  I2C frame format 20
  • 21. I2C  I2C frame format • Start bit: 1 bit indicates the start of a new frame, always logic low. • Address: 7 bits that decides slave address which is the device that will process the upcoming sent data by the master. • R/W̅ : 1 bit to decide type of operation, logic high for read, logic low for write. • ACK: 1 bit sent by the slave as acknowledge by polling line low. • Data: each 8-bits of data sent is followed by ACK bit by the receiver. • Stop bit: 1 bit indicates the end of the frame. 21
  • 22. I2C  I2C bus arbitration mechanism • Since the bus structure is a wired AND (if one device pulls a line low it stays low), you can test if the bus is idle or occupied. • When a master changes the state of a line to HIGH, it MUST always check that the line really has gone to HIGH. If it stays low then this is an indication that the bus is occupied and some other device is pulling the line low. • Therefore the general rule is: If a master can't get a certain line to go high, it lost arbitration and needs to back off and wait until a stop condition is seen before making another attempt to start transmitting. 22
  • 23. I2C  I2C bus arbitration mechanism 23
  • 24. I2C  Case 1: Master (Transmitter) to Slave (Receiver) Data Transfer • The Master sends the START sequence to begin the transaction. • It is followed by Master sending 7-bit Slave address and the R/W̅ bit set to zero. We set it to zero because the Master is writing to the Slave. • The Slave acknowledges by pulling the ACK bit low. • Once the Slave acknowledges the address, Master can now send data to the Slave byte-by-byte. The Slave has to send the ACK bit after every byte it receives. • This goes on till Slave can no longer receive data and does NOT send the ACK bit. • This is when the Master realizes that the Slave is not accepting anymore and then STOPs the transaction (or RE-START). • An example of this case would be like performing page write operations on a EEPROM chip. 24
  • 25. I2C  Case 1: Master (Transmitter) to Slave (Receiver) Data Transfer 25
  • 26. I2C  Case 2: Slave (Transmitter) to Master (Receiver) Data Transfer • The Master sends the START sequence, followed by the 7-bit Slave address and the R/W̅ bit set to 1. • We set R/W̅ bit to 1 because the Master is reading from the Slave. • The Slave acknowledges the address, thus ready to send data now. • Slave keeps on sending data to the Master, and the Master keeps on sending ACK to the Slave after each byte until it can no longer accept any more data. • When the Master feels like ending the transaction, it does not send the ACK, thus ending with the STOP sequence. • An example of this case could be an Analog to Digital Converter (ADC) sending data to the microcontroller continuously. The microcontroller accepts data as long as it wants to, after which it stops/finishes execution. 26
  • 27. I2C  Case 2: Slave (Transmitter) to Master (Receiver) Data Transfer 27
  • 28. I2C  Case 3: Bi-directional Read and Write in same Data Transfer • The Master sends out the START sequence, followed by the 7-bit Slave address and the R/W̅ bit, then the Slave acknowledges the address. • Depending upon the value of the R/W̅ bit, read/write operations are performed (like the previous two cases). • Whatever the case it may be, it always ends with the receiver not sending the ACK. • At the end the Master attempts a repeated START and the entire process repeats again, until the Master decides to STOP. • An example of this case could be performing sequential read from a EEPROM chip. It is bi-directional because the CPU first writes the address from where it would like to start reading, followed by reading from the device. 28
  • 29. I2C  Case 3: Bi-directional Read and Write in same Data Transfer 29
  • 30. I2C  I2C notes • I2C supports a wide range of voltage levels, hence you can provide +5 volts, or +3.3 volts as Vcc easily, and other lower/higher voltages as well. • This gives us a wide range of choices for the values of the pull-up resistors Anything within the range of 1k to 47k should be fine, however values lower than 10k are usually preferred. • I2C is a half duplex communication protocol. • I2C supports serial 8-bit data transfers up to a speed of 100 kbps, which is the standard clock speed of SCL. However, I2C can also operate at higher speeds – Fast Mode (400 kbps) and High Speed Mode (3.4 Mbps). 30
  • 31. I2C  I2C notes • Maximum number of nodes is 112, as address is 7-bits and there are 16 nodes reserved. • I2C is used for short distance communication. • The Slave is allowed to hold the clock line low until it is ready to give out the result. The Master must wait for the clock to go back to high before continuing with its work, this is called clock stretching. 31
  • 33. SPI  What is SPI? • Serial Peripheral Interface (SPI) bus is a synchronous serial communication interface specification used for short distance communication. • The SPI bus can operate with a single master device and with one or more slave devices. 33
  • 35. SPI  SPI connection • SCLK : Serial Clock (output from master). • MOSI : Master Output, Slave Input (output from master). • MISO : Master Input, Slave Output (output from slave). • SS : Slave Select (active low, output from master). 35
  • 36. SPI  SPI notes • SPI is a full duplex communication protocol. • SPI is single master multiple slaves communication protocol. • SPI protocol has complete flexibility for the bits transferred as there is no limit for 8-bit word or message size or purpose. 36