The document discusses the I2C communication bus protocol. It describes the I2C bus concept of using two bi-directional lines (SDA and SCL) to allow devices with unique addresses to communicate as masters or slaves. The document outlines the I2C communication protocol including START/STOP conditions, byte format, acknowledgment, synchronization, arbitration, and 7-bit and 10-bit addressing schemes. Key aspects of the I2C bus such as typical transfer rates, hardware connections, and terminology are also summarized.
I2C is a serial protocol for two-wire interface to connect low-speed devices like microcontrollers, EEPROMs, A/D and D/A converters, I/O interfaces and other similar peripherals in embedded systems.
I2C is a serial protocol for two-wire interface to connect low-speed devices like microcontrollers, EEPROMs, A/D and D/A converters, I/O interfaces and other similar peripherals in embedded systems. It was invented by Philips and now it is used by almost all major IC manufacturers. Each I2C slave device needs an address – they must still be obtained from NXP (formerly Philips semiconductors).
I2C is a serial protocol for two-wire interface to connect low-speed devices like microcontrollers, EEPROMs, A/D and D/A converters, I/O interfaces and other similar peripherals in embedded systems.
I2C is a serial protocol for two-wire interface to connect low-speed devices like microcontrollers, EEPROMs, A/D and D/A converters, I/O interfaces and other similar peripherals in embedded systems. It was invented by Philips and now it is used by almost all major IC manufacturers. Each I2C slave device needs an address – they must still be obtained from NXP (formerly Philips semiconductors).
Serial Peripheral Interface (SPI) is an interface bus commonly used to send data between microcontrollers and small peripherals such as shift registers, sensors, and SD cards.
This presentation discusses the details of the I2C protocol and interfacing of EEPROM with 8051 based on I2C protocol. It also discusses the other applications of I2C protocol
The Advanced Peripheral Bus (APB) is part of the Advanced Microcontroller Bus Architecture (AMBA) protocol family. It defines a low-cost interface that is optimized for minimal power consumption and reduced interface complexity.
AMBA AHB is a bus interface suitable for high-performance synthesizable designs. It defines the interface between components, such as masters, interconnects, and slaves.
I²C (Inter-Integrated Circuit), pronounced I-squared-C, is a multi-master, multi-slave, single-ended, serial computer bus invented by Philips Semiconductor (now NXP Semiconductors). It is typically used for attaching lower-speed peripheral ICs to processors and microcontrollers. Alternatively I²C is spelled I2C (pronounced I-two-C) or IIC (pronounced I-I-C).
Since October 10, 2006, no licensing fees are required to implement the I²C protocol. However, fees are still required to obtain I²C slave addresses allocated by NXP.[1]
Several competitors, such as Siemens AG (later Infineon Technologies AG, now Intel mobile communications), NEC, Texas Instruments, STMicroelectronics (formerly SGS-Thomson), Motorola (later Freescale), and Intersil, have introduced compatible I²C products to the market since the mid-1990s.
SMBus, defined by Intel in 1995, is a subset of I²C that defines the protocols more strictly. One purpose of SMBus is to promote robustness and interoperability. Accordingly, modern I²C systems incorporate policies and rules from SMBus, sometimes supporting both I²C and SMBus, requiring only minimal reconfiguration.
The Serial Peripheral Interface (SPI) bus is a synchronous serial communication interface specification used for short distance communication, primarily in embedded systems. The interface was developed by Motorola and has become a de facto standard. Typical applications include sensors, Secure Digital cards, and liquid crystal displays.
SPI devices communicate in full duplex mode using a master-slave architecture with a single master. The master device originates the frame for reading and writing. Multiple slave devices are supported through selection with individual slave select (SS) lines.
Sometimes SPI is called a four-wire serial bus, contrasting with three-, two-, and one-wire serial buses. The SPI may be accurately described as a synchronous serial interface,[1] but it is different from the Synchronous Serial Interface (SSI) protocol, which is also a four-wire synchronous serial communication protocol, but employs differential signaling and provides only a single simplex communication channel.
Communication protocols (like UART, SPI, I2C) play an very important role in Micro-controlled based embedded systems development. These protocols helps the main board to communicate with different peripherals by interfacing mechanism. Here is a presentation that talks about how these protocols actually work.
Serial Peripheral Interface (SPI) is an interface bus commonly used to send data between microcontrollers and small peripherals such as shift registers, sensors, and SD cards.
This presentation discusses the details of the I2C protocol and interfacing of EEPROM with 8051 based on I2C protocol. It also discusses the other applications of I2C protocol
The Advanced Peripheral Bus (APB) is part of the Advanced Microcontroller Bus Architecture (AMBA) protocol family. It defines a low-cost interface that is optimized for minimal power consumption and reduced interface complexity.
AMBA AHB is a bus interface suitable for high-performance synthesizable designs. It defines the interface between components, such as masters, interconnects, and slaves.
I²C (Inter-Integrated Circuit), pronounced I-squared-C, is a multi-master, multi-slave, single-ended, serial computer bus invented by Philips Semiconductor (now NXP Semiconductors). It is typically used for attaching lower-speed peripheral ICs to processors and microcontrollers. Alternatively I²C is spelled I2C (pronounced I-two-C) or IIC (pronounced I-I-C).
Since October 10, 2006, no licensing fees are required to implement the I²C protocol. However, fees are still required to obtain I²C slave addresses allocated by NXP.[1]
Several competitors, such as Siemens AG (later Infineon Technologies AG, now Intel mobile communications), NEC, Texas Instruments, STMicroelectronics (formerly SGS-Thomson), Motorola (later Freescale), and Intersil, have introduced compatible I²C products to the market since the mid-1990s.
SMBus, defined by Intel in 1995, is a subset of I²C that defines the protocols more strictly. One purpose of SMBus is to promote robustness and interoperability. Accordingly, modern I²C systems incorporate policies and rules from SMBus, sometimes supporting both I²C and SMBus, requiring only minimal reconfiguration.
The Serial Peripheral Interface (SPI) bus is a synchronous serial communication interface specification used for short distance communication, primarily in embedded systems. The interface was developed by Motorola and has become a de facto standard. Typical applications include sensors, Secure Digital cards, and liquid crystal displays.
SPI devices communicate in full duplex mode using a master-slave architecture with a single master. The master device originates the frame for reading and writing. Multiple slave devices are supported through selection with individual slave select (SS) lines.
Sometimes SPI is called a four-wire serial bus, contrasting with three-, two-, and one-wire serial buses. The SPI may be accurately described as a synchronous serial interface,[1] but it is different from the Synchronous Serial Interface (SSI) protocol, which is also a four-wire synchronous serial communication protocol, but employs differential signaling and provides only a single simplex communication channel.
Communication protocols (like UART, SPI, I2C) play an very important role in Micro-controlled based embedded systems development. These protocols helps the main board to communicate with different peripherals by interfacing mechanism. Here is a presentation that talks about how these protocols actually work.
Philips Semiconductors (now NXP Semiconductors) developed a simple bidirectional 2-wire bus for efficient inter-IC control. This bus is called the Inter-IC or I2C-bus which is a 8-bit oriented serial bus. Only two bus lines are required:
a serial data line (SDA)
a serial clock line (SCL).
This presentation discusses the Serial Communication features in 8051, the support for UART. It also discusses serial vs parallel communication, simplex, duplex and full-duplex modes, MAX232, RS232 standards
Join this video course on udemy . Click here :
https://www.udemy.com/course/mastering-microcontroller-with-peripheral-driver-development/?couponCode=SLIDESHARE
In this course, the code is developed such a way that, It can be ported to any MCU you have at your hand.
If you need any help in porting these codes to different MCUs you can always reach out to me!
The course is strictly not bound to any 1 type of MCU. So, if you already have any Development board which runs with ARM-Cortex M3/M4 processor,
then I recommend you to continue using it.
But if you don’t have any Development board, then check out the below Development boards.
Communication protocols in Embedded Systems. This presentation focused mainly on lower level protocols. Ideal for the beginner to build understanding on these protocols like I2C, USB, SPI etc.
Implementation of I2C Master Bus Protocol on FPGAIJERA Editor
The focus of this paper is on I2C (Inter-Integrated Circuit) protocol interface between Master Bus protocol and
slave. Here we are interfacing between micro-controller and DS1307. I2C bus protocol sends 8 bit data from
micro-controller to DS1307. This module was designed in VHDL and simulated and synthesized using Xilinx
ISE Design Suite 14.2. I2C and optimized for area and power. This concept is widely applicable from any high
speed device or low speed device to any low speed device or high speed device. This module acts as a slave for
the DS1307 at the same time acts like a master for the micro-controller device which can be considered as a
slave. . It can be used to interface low speed peripherals like motherboard, embedded system, mobile phones,
set top boxes, DVD, PDA’s or other electronic devices.
SPI is a serial bus standard established by Motorola and supported in silicon products from various manufacturers.
It is a synchronous serial data link that operates in full duplex (signals carrying data go in both directions simultaneously).
Devices communicate using a master/slave relationship, in which the master initiates the data frame. When the master generates a clock and selects a slave device, data may be transferred in either or both directions simultaneously.
Slow peripheral interfaces (i2 c spi uart)PREMAL GAJJAR
The Serial Peripheral Interface or SPI bus is a synchronous serial data link, a de facto standard, named by Motorola, that operates in full duplex mode. It is used for short distance, single master communication, for example in embedded systems, sensors, and SD cards.
Introduction to GNU/Linux, Free Software, Open Source Software, FSF, FSM, OSI
I2C Bus (Inter-Integrated Circuit)
1. I2C Bus
Author:
Varun Mahajan
<varunmahajan06@gmail.com>
2. Contents
●
I2C Bus concept
●
Communication Protocol
●
Bus Terminology
●
General characteristics
●
I2C Communication
●
Data Validity
●
START & STOP Conditions
●
Byte Format
●
Acknowledgment
●
Synchronization
●
Arbitration
●
7-Bit Addressing
●
10-Bit Addressing
3. I2C Bus concept
●
Two bi-directional lines – SDA and SCL
●
Each device is recognized by a unique address and can operate as a transmitter or
receiver
●
A master is the device which initiates the data transfer on the bus and generates
the clock signals to permit the transfer. At that time any device addressed is
considered a slave
●
Multi-master bus
4. I2C Communication Protocol
WRITE OPERATION
START CONTROL BYTE ACK Byte1 ACK Byte2 ACK STOP
READ OPERATION
START CONTROL BYTE ACK Byte1 ACK Byte2 ACK STOP
CONTROL BYTE 7 bit slave address R/W
Sent by master
Sent by slave
6. I2C Bus Terminology
Microcontroller A wants to send information to Microcontroller B:
●
MC A (master), addresses MC B (slave)
●
MC A (master-transmitter), sends data to MC B (slave-receiver)
●
MC A (master) terminates the transfer
Microcontroller A wants to receive information from microcontroller B:
●
MC A (master), addresses MC B (slave)
●
MC A (master-receiver), receives data from MC B (slave-transmitter)
●
MC A (master) terminates the transfer
7. H/W Connections
All the I2C interfaces are connected to the I2C bus using the wired-AND
connection
D1 D2
SDA2
SDA1 SCL2
SCL1
AND logic AND logic
SDA
SCL
8. I2C Bus: General Characteristics
●
Transfer rates:
- Standard mode : up to 100 kbit/sec
- Fast mode : up to 400 kbit/sec
- High Speed mode : up to 3.4 Mbit/sec
●
7-Bit and 10-Bit addressing
●
Bus Free: Both SCL and SDA lines are HIGH
●
The number of interfaces connected to the bus is solely dependent on the bus
capacitance limit of 400 pF
9. Data Validity
The data on SDA line must be stable during the HIGH period of SCL. The HIGH or
LOW state of SDA can change when the SCL is LOW.
10. START and STOP conditions
• START condition: A HIGH to LOW transition on SDA line while SCL is HIGH
• STOP condition: A LOW to HIGH transition on SDA line while SCL is HIGH
The bus is considered to be busy after the START condition. The bus is considered to
be free again after the STOP condition
11. Byte Format
●
Each byte put on the SDA line must be 8-bits long
●
The number of bytes that can be transmitted per transfer is unrestricted
●
Data is transferred with the most significant bit (MSB) first
●
Slave can force the master into a wait state by holding the SCL LOW
12. Acknowledgement
●
Each transferred byte needs to be acknowledged by the receiver
●
The acknowledge-related clock pulse is generated by the master
●
The transmitter releases the SDA line (HIGH) during the acknowledge clock pulse.
The receiver must pull down the SDA line during the acknowledge clock pulse so
that it remains stable LOW during the HIGH period of this clock pulse
13. Synchronization
●
Synchronization is performed using the wired-AND connection of I2C interfaces to
the SCL line
●
A synchronized clock is generated with its LOW period determined by the device
with the longest clock LOW period, and its HIGH period determined by the one with
the shortest clock HIGH period
14. Arbitration
Arbitration takes place on the SDA line, while the SCL line is at HIGH level, in such a
way that the master which transmits a HIGH level, while another master is
transmitting LOW will switch off its DATA output stage because the level on the bus
doesn’t correspond to its own level
15. 7-Bit Addressing
●
The first seven bits of the first byte make up the slave address
●
The eighth bit (LSB) determines the direction of the message. 0 means that the
master will write information to a selected device. 1 means that the master will read
information from the slave
18. 10-Bit Addressing
●
The first seven bits of the first byte are the combination 11110XX of which the last
two bits are the two MSBs of the 10-bit address
●
The eighth bit (LSB) determines the direction of the message. 0 means that the
master will write information to a selected device. 1 means that the master will read
information from the slave
●
If the eighth bit is 0, then the second byte contains the remaining 8 bits of the 10-
bit address
●
If the eighth bit is 1, then the next byte contains data transmitted from a slave to
a master