Industry Standard Control Interfaces for inter IC ...

49
Industry Standard Control Interfaces for inter IC Communication Moritz Nöltner Institut für Technische Informatik Lehrstuhl für Rechnerarchitektur Universität Heidelberg January 28, 2015

Transcript of Industry Standard Control Interfaces for inter IC ...

Industry Standard Control Interfaces for inter ICCommunication

Moritz Noumlltner

Institut fuumlr Technische InformatikLehrstuhl fuumlr Rechnerarchitektur

Universitaumlt Heidelberg

January 28 2015

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 2 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 3 35

Introduction SPI I2C Measurements Conclusion

How to Connect Circuits

Device 2Device 1

HyperTransportPATA SATAPCI PCI-ExpressAGPISAUSB

CANUART USARTSPII2C SMBusUNIO1-Wire

Moritz Noumlltner 4 35

Introduction SPI I2C Measurements Conclusion

Speed lt=gt Simplicity

Source httpwwwanandtechcomshow23542

Moritz Noumlltner 5 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 6 35

Introduction SPI I2C Measurements Conclusion

Serial Peripheral Interface

Source httpenwikipediaorgwikiFileMotorola_MC6800_microprocessorjpg

Created in the 1980sFirst used in Motorola6800Very widely acceptedBus systemFull duplexFour signal linestypically

Moritz Noumlltner 7 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull SS Slave SelectSlaves will only interact if their SS is acrive

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull MOSI Master Out Slave InSerial data line for master to slave

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull MISO Master In Slave OutSerial data line for master to slave

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull CLOCK Shift ClockOne bit is sent per clock cycle

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

Clock Phase amp Polarity

4 combinations

Source Taken from the datasheet for Motorola MC68HC11A0

Moritz Noumlltner 9 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Star

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slavessvg

3+n signal linesMOSI MISO CLOCK sharedOne SS for every slaveMaster activates a slave andcommunicates with itNo delay

Moritz Noumlltner 10 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Serial

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slaves_daisy_chainedsvg

Four signal linesMOSI MISO CLOCK SSsharedMessages are passed throughMessages get latched whenSS is deassertedNot supported by all devicesDelayed responses messagehas to pass adjacent slaves

Moritz Noumlltner 11 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 12 35

Introduction SPI I2C Measurements Conclusion

Inter-Integrated Circuit

Sourcehttpwwwcpushackcomgallery-1philipsphilipsmab8400b

Created in the 1980sFirst used in PhilipsMAB8400BVery widely acceptedCompatible withother buses SMBusPMBusBus systemMulti-masteroperationHalf duplex (simplex)Two signal lines +two pull-up resistors

Moritz Noumlltner 13 35

Introduction SPI I2C Measurements Conclusion

I2C Roles

Four roles possiblebullMaster Starts a transmissionbullSlave Responds to transmissionbullTransmitter Transmits databullReceiver Receives data

Moritz Noumlltner 14 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSDA Seria DataBidirectional datandash amp address line

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSCL Serial ClockUsed by the master to synchronise with theslaves

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Electrical Setup

Source Adapted from ``The I2C-BusSpecification v 21 2000

Open-drain oropen-collectoroutputsWired-AND

Moritz Noumlltner 16 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects negative Edge on

SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Seven bits of address are trans-mitted

bull Some addresses are reserved

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull ldquo1rdquo for readingbull ldquo0rdquo for writing

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 2 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 3 35

Introduction SPI I2C Measurements Conclusion

How to Connect Circuits

Device 2Device 1

HyperTransportPATA SATAPCI PCI-ExpressAGPISAUSB

CANUART USARTSPII2C SMBusUNIO1-Wire

Moritz Noumlltner 4 35

Introduction SPI I2C Measurements Conclusion

Speed lt=gt Simplicity

Source httpwwwanandtechcomshow23542

Moritz Noumlltner 5 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 6 35

Introduction SPI I2C Measurements Conclusion

Serial Peripheral Interface

Source httpenwikipediaorgwikiFileMotorola_MC6800_microprocessorjpg

Created in the 1980sFirst used in Motorola6800Very widely acceptedBus systemFull duplexFour signal linestypically

Moritz Noumlltner 7 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull SS Slave SelectSlaves will only interact if their SS is acrive

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull MOSI Master Out Slave InSerial data line for master to slave

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull MISO Master In Slave OutSerial data line for master to slave

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull CLOCK Shift ClockOne bit is sent per clock cycle

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

Clock Phase amp Polarity

4 combinations

Source Taken from the datasheet for Motorola MC68HC11A0

Moritz Noumlltner 9 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Star

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slavessvg

3+n signal linesMOSI MISO CLOCK sharedOne SS for every slaveMaster activates a slave andcommunicates with itNo delay

Moritz Noumlltner 10 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Serial

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slaves_daisy_chainedsvg

Four signal linesMOSI MISO CLOCK SSsharedMessages are passed throughMessages get latched whenSS is deassertedNot supported by all devicesDelayed responses messagehas to pass adjacent slaves

Moritz Noumlltner 11 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 12 35

Introduction SPI I2C Measurements Conclusion

Inter-Integrated Circuit

Sourcehttpwwwcpushackcomgallery-1philipsphilipsmab8400b

Created in the 1980sFirst used in PhilipsMAB8400BVery widely acceptedCompatible withother buses SMBusPMBusBus systemMulti-masteroperationHalf duplex (simplex)Two signal lines +two pull-up resistors

Moritz Noumlltner 13 35

Introduction SPI I2C Measurements Conclusion

I2C Roles

Four roles possiblebullMaster Starts a transmissionbullSlave Responds to transmissionbullTransmitter Transmits databullReceiver Receives data

Moritz Noumlltner 14 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSDA Seria DataBidirectional datandash amp address line

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSCL Serial ClockUsed by the master to synchronise with theslaves

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Electrical Setup

Source Adapted from ``The I2C-BusSpecification v 21 2000

Open-drain oropen-collectoroutputsWired-AND

Moritz Noumlltner 16 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects negative Edge on

SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Seven bits of address are trans-mitted

bull Some addresses are reserved

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull ldquo1rdquo for readingbull ldquo0rdquo for writing

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 3 35

Introduction SPI I2C Measurements Conclusion

How to Connect Circuits

Device 2Device 1

HyperTransportPATA SATAPCI PCI-ExpressAGPISAUSB

CANUART USARTSPII2C SMBusUNIO1-Wire

Moritz Noumlltner 4 35

Introduction SPI I2C Measurements Conclusion

Speed lt=gt Simplicity

Source httpwwwanandtechcomshow23542

Moritz Noumlltner 5 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 6 35

Introduction SPI I2C Measurements Conclusion

Serial Peripheral Interface

Source httpenwikipediaorgwikiFileMotorola_MC6800_microprocessorjpg

Created in the 1980sFirst used in Motorola6800Very widely acceptedBus systemFull duplexFour signal linestypically

Moritz Noumlltner 7 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull SS Slave SelectSlaves will only interact if their SS is acrive

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull MOSI Master Out Slave InSerial data line for master to slave

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull MISO Master In Slave OutSerial data line for master to slave

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull CLOCK Shift ClockOne bit is sent per clock cycle

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

Clock Phase amp Polarity

4 combinations

Source Taken from the datasheet for Motorola MC68HC11A0

Moritz Noumlltner 9 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Star

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slavessvg

3+n signal linesMOSI MISO CLOCK sharedOne SS for every slaveMaster activates a slave andcommunicates with itNo delay

Moritz Noumlltner 10 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Serial

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slaves_daisy_chainedsvg

Four signal linesMOSI MISO CLOCK SSsharedMessages are passed throughMessages get latched whenSS is deassertedNot supported by all devicesDelayed responses messagehas to pass adjacent slaves

Moritz Noumlltner 11 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 12 35

Introduction SPI I2C Measurements Conclusion

Inter-Integrated Circuit

Sourcehttpwwwcpushackcomgallery-1philipsphilipsmab8400b

Created in the 1980sFirst used in PhilipsMAB8400BVery widely acceptedCompatible withother buses SMBusPMBusBus systemMulti-masteroperationHalf duplex (simplex)Two signal lines +two pull-up resistors

Moritz Noumlltner 13 35

Introduction SPI I2C Measurements Conclusion

I2C Roles

Four roles possiblebullMaster Starts a transmissionbullSlave Responds to transmissionbullTransmitter Transmits databullReceiver Receives data

Moritz Noumlltner 14 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSDA Seria DataBidirectional datandash amp address line

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSCL Serial ClockUsed by the master to synchronise with theslaves

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Electrical Setup

Source Adapted from ``The I2C-BusSpecification v 21 2000

Open-drain oropen-collectoroutputsWired-AND

Moritz Noumlltner 16 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects negative Edge on

SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Seven bits of address are trans-mitted

bull Some addresses are reserved

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull ldquo1rdquo for readingbull ldquo0rdquo for writing

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

How to Connect Circuits

Device 2Device 1

HyperTransportPATA SATAPCI PCI-ExpressAGPISAUSB

CANUART USARTSPII2C SMBusUNIO1-Wire

Moritz Noumlltner 4 35

Introduction SPI I2C Measurements Conclusion

Speed lt=gt Simplicity

Source httpwwwanandtechcomshow23542

Moritz Noumlltner 5 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 6 35

Introduction SPI I2C Measurements Conclusion

Serial Peripheral Interface

Source httpenwikipediaorgwikiFileMotorola_MC6800_microprocessorjpg

Created in the 1980sFirst used in Motorola6800Very widely acceptedBus systemFull duplexFour signal linestypically

Moritz Noumlltner 7 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull SS Slave SelectSlaves will only interact if their SS is acrive

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull MOSI Master Out Slave InSerial data line for master to slave

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull MISO Master In Slave OutSerial data line for master to slave

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull CLOCK Shift ClockOne bit is sent per clock cycle

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

Clock Phase amp Polarity

4 combinations

Source Taken from the datasheet for Motorola MC68HC11A0

Moritz Noumlltner 9 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Star

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slavessvg

3+n signal linesMOSI MISO CLOCK sharedOne SS for every slaveMaster activates a slave andcommunicates with itNo delay

Moritz Noumlltner 10 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Serial

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slaves_daisy_chainedsvg

Four signal linesMOSI MISO CLOCK SSsharedMessages are passed throughMessages get latched whenSS is deassertedNot supported by all devicesDelayed responses messagehas to pass adjacent slaves

Moritz Noumlltner 11 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 12 35

Introduction SPI I2C Measurements Conclusion

Inter-Integrated Circuit

Sourcehttpwwwcpushackcomgallery-1philipsphilipsmab8400b

Created in the 1980sFirst used in PhilipsMAB8400BVery widely acceptedCompatible withother buses SMBusPMBusBus systemMulti-masteroperationHalf duplex (simplex)Two signal lines +two pull-up resistors

Moritz Noumlltner 13 35

Introduction SPI I2C Measurements Conclusion

I2C Roles

Four roles possiblebullMaster Starts a transmissionbullSlave Responds to transmissionbullTransmitter Transmits databullReceiver Receives data

Moritz Noumlltner 14 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSDA Seria DataBidirectional datandash amp address line

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSCL Serial ClockUsed by the master to synchronise with theslaves

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Electrical Setup

Source Adapted from ``The I2C-BusSpecification v 21 2000

Open-drain oropen-collectoroutputsWired-AND

Moritz Noumlltner 16 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects negative Edge on

SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Seven bits of address are trans-mitted

bull Some addresses are reserved

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull ldquo1rdquo for readingbull ldquo0rdquo for writing

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

Speed lt=gt Simplicity

Source httpwwwanandtechcomshow23542

Moritz Noumlltner 5 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 6 35

Introduction SPI I2C Measurements Conclusion

Serial Peripheral Interface

Source httpenwikipediaorgwikiFileMotorola_MC6800_microprocessorjpg

Created in the 1980sFirst used in Motorola6800Very widely acceptedBus systemFull duplexFour signal linestypically

Moritz Noumlltner 7 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull SS Slave SelectSlaves will only interact if their SS is acrive

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull MOSI Master Out Slave InSerial data line for master to slave

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull MISO Master In Slave OutSerial data line for master to slave

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull CLOCK Shift ClockOne bit is sent per clock cycle

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

Clock Phase amp Polarity

4 combinations

Source Taken from the datasheet for Motorola MC68HC11A0

Moritz Noumlltner 9 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Star

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slavessvg

3+n signal linesMOSI MISO CLOCK sharedOne SS for every slaveMaster activates a slave andcommunicates with itNo delay

Moritz Noumlltner 10 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Serial

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slaves_daisy_chainedsvg

Four signal linesMOSI MISO CLOCK SSsharedMessages are passed throughMessages get latched whenSS is deassertedNot supported by all devicesDelayed responses messagehas to pass adjacent slaves

Moritz Noumlltner 11 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 12 35

Introduction SPI I2C Measurements Conclusion

Inter-Integrated Circuit

Sourcehttpwwwcpushackcomgallery-1philipsphilipsmab8400b

Created in the 1980sFirst used in PhilipsMAB8400BVery widely acceptedCompatible withother buses SMBusPMBusBus systemMulti-masteroperationHalf duplex (simplex)Two signal lines +two pull-up resistors

Moritz Noumlltner 13 35

Introduction SPI I2C Measurements Conclusion

I2C Roles

Four roles possiblebullMaster Starts a transmissionbullSlave Responds to transmissionbullTransmitter Transmits databullReceiver Receives data

Moritz Noumlltner 14 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSDA Seria DataBidirectional datandash amp address line

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSCL Serial ClockUsed by the master to synchronise with theslaves

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Electrical Setup

Source Adapted from ``The I2C-BusSpecification v 21 2000

Open-drain oropen-collectoroutputsWired-AND

Moritz Noumlltner 16 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects negative Edge on

SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Seven bits of address are trans-mitted

bull Some addresses are reserved

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull ldquo1rdquo for readingbull ldquo0rdquo for writing

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 6 35

Introduction SPI I2C Measurements Conclusion

Serial Peripheral Interface

Source httpenwikipediaorgwikiFileMotorola_MC6800_microprocessorjpg

Created in the 1980sFirst used in Motorola6800Very widely acceptedBus systemFull duplexFour signal linestypically

Moritz Noumlltner 7 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull SS Slave SelectSlaves will only interact if their SS is acrive

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull MOSI Master Out Slave InSerial data line for master to slave

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull MISO Master In Slave OutSerial data line for master to slave

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull CLOCK Shift ClockOne bit is sent per clock cycle

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

Clock Phase amp Polarity

4 combinations

Source Taken from the datasheet for Motorola MC68HC11A0

Moritz Noumlltner 9 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Star

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slavessvg

3+n signal linesMOSI MISO CLOCK sharedOne SS for every slaveMaster activates a slave andcommunicates with itNo delay

Moritz Noumlltner 10 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Serial

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slaves_daisy_chainedsvg

Four signal linesMOSI MISO CLOCK SSsharedMessages are passed throughMessages get latched whenSS is deassertedNot supported by all devicesDelayed responses messagehas to pass adjacent slaves

Moritz Noumlltner 11 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 12 35

Introduction SPI I2C Measurements Conclusion

Inter-Integrated Circuit

Sourcehttpwwwcpushackcomgallery-1philipsphilipsmab8400b

Created in the 1980sFirst used in PhilipsMAB8400BVery widely acceptedCompatible withother buses SMBusPMBusBus systemMulti-masteroperationHalf duplex (simplex)Two signal lines +two pull-up resistors

Moritz Noumlltner 13 35

Introduction SPI I2C Measurements Conclusion

I2C Roles

Four roles possiblebullMaster Starts a transmissionbullSlave Responds to transmissionbullTransmitter Transmits databullReceiver Receives data

Moritz Noumlltner 14 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSDA Seria DataBidirectional datandash amp address line

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSCL Serial ClockUsed by the master to synchronise with theslaves

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Electrical Setup

Source Adapted from ``The I2C-BusSpecification v 21 2000

Open-drain oropen-collectoroutputsWired-AND

Moritz Noumlltner 16 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects negative Edge on

SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Seven bits of address are trans-mitted

bull Some addresses are reserved

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull ldquo1rdquo for readingbull ldquo0rdquo for writing

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

Serial Peripheral Interface

Source httpenwikipediaorgwikiFileMotorola_MC6800_microprocessorjpg

Created in the 1980sFirst used in Motorola6800Very widely acceptedBus systemFull duplexFour signal linestypically

Moritz Noumlltner 7 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull SS Slave SelectSlaves will only interact if their SS is acrive

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull MOSI Master Out Slave InSerial data line for master to slave

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull MISO Master In Slave OutSerial data line for master to slave

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull CLOCK Shift ClockOne bit is sent per clock cycle

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

Clock Phase amp Polarity

4 combinations

Source Taken from the datasheet for Motorola MC68HC11A0

Moritz Noumlltner 9 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Star

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slavessvg

3+n signal linesMOSI MISO CLOCK sharedOne SS for every slaveMaster activates a slave andcommunicates with itNo delay

Moritz Noumlltner 10 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Serial

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slaves_daisy_chainedsvg

Four signal linesMOSI MISO CLOCK SSsharedMessages are passed throughMessages get latched whenSS is deassertedNot supported by all devicesDelayed responses messagehas to pass adjacent slaves

Moritz Noumlltner 11 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 12 35

Introduction SPI I2C Measurements Conclusion

Inter-Integrated Circuit

Sourcehttpwwwcpushackcomgallery-1philipsphilipsmab8400b

Created in the 1980sFirst used in PhilipsMAB8400BVery widely acceptedCompatible withother buses SMBusPMBusBus systemMulti-masteroperationHalf duplex (simplex)Two signal lines +two pull-up resistors

Moritz Noumlltner 13 35

Introduction SPI I2C Measurements Conclusion

I2C Roles

Four roles possiblebullMaster Starts a transmissionbullSlave Responds to transmissionbullTransmitter Transmits databullReceiver Receives data

Moritz Noumlltner 14 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSDA Seria DataBidirectional datandash amp address line

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSCL Serial ClockUsed by the master to synchronise with theslaves

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Electrical Setup

Source Adapted from ``The I2C-BusSpecification v 21 2000

Open-drain oropen-collectoroutputsWired-AND

Moritz Noumlltner 16 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects negative Edge on

SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Seven bits of address are trans-mitted

bull Some addresses are reserved

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull ldquo1rdquo for readingbull ldquo0rdquo for writing

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull SS Slave SelectSlaves will only interact if their SS is acrive

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull MOSI Master Out Slave InSerial data line for master to slave

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull MISO Master In Slave OutSerial data line for master to slave

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull CLOCK Shift ClockOne bit is sent per clock cycle

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

Clock Phase amp Polarity

4 combinations

Source Taken from the datasheet for Motorola MC68HC11A0

Moritz Noumlltner 9 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Star

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slavessvg

3+n signal linesMOSI MISO CLOCK sharedOne SS for every slaveMaster activates a slave andcommunicates with itNo delay

Moritz Noumlltner 10 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Serial

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slaves_daisy_chainedsvg

Four signal linesMOSI MISO CLOCK SSsharedMessages are passed throughMessages get latched whenSS is deassertedNot supported by all devicesDelayed responses messagehas to pass adjacent slaves

Moritz Noumlltner 11 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 12 35

Introduction SPI I2C Measurements Conclusion

Inter-Integrated Circuit

Sourcehttpwwwcpushackcomgallery-1philipsphilipsmab8400b

Created in the 1980sFirst used in PhilipsMAB8400BVery widely acceptedCompatible withother buses SMBusPMBusBus systemMulti-masteroperationHalf duplex (simplex)Two signal lines +two pull-up resistors

Moritz Noumlltner 13 35

Introduction SPI I2C Measurements Conclusion

I2C Roles

Four roles possiblebullMaster Starts a transmissionbullSlave Responds to transmissionbullTransmitter Transmits databullReceiver Receives data

Moritz Noumlltner 14 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSDA Seria DataBidirectional datandash amp address line

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSCL Serial ClockUsed by the master to synchronise with theslaves

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Electrical Setup

Source Adapted from ``The I2C-BusSpecification v 21 2000

Open-drain oropen-collectoroutputsWired-AND

Moritz Noumlltner 16 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects negative Edge on

SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Seven bits of address are trans-mitted

bull Some addresses are reserved

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull ldquo1rdquo for readingbull ldquo0rdquo for writing

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull SS Slave SelectSlaves will only interact if their SS is acrive

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull MOSI Master Out Slave InSerial data line for master to slave

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull MISO Master In Slave OutSerial data line for master to slave

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull CLOCK Shift ClockOne bit is sent per clock cycle

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

Clock Phase amp Polarity

4 combinations

Source Taken from the datasheet for Motorola MC68HC11A0

Moritz Noumlltner 9 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Star

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slavessvg

3+n signal linesMOSI MISO CLOCK sharedOne SS for every slaveMaster activates a slave andcommunicates with itNo delay

Moritz Noumlltner 10 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Serial

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slaves_daisy_chainedsvg

Four signal linesMOSI MISO CLOCK SSsharedMessages are passed throughMessages get latched whenSS is deassertedNot supported by all devicesDelayed responses messagehas to pass adjacent slaves

Moritz Noumlltner 11 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 12 35

Introduction SPI I2C Measurements Conclusion

Inter-Integrated Circuit

Sourcehttpwwwcpushackcomgallery-1philipsphilipsmab8400b

Created in the 1980sFirst used in PhilipsMAB8400BVery widely acceptedCompatible withother buses SMBusPMBusBus systemMulti-masteroperationHalf duplex (simplex)Two signal lines +two pull-up resistors

Moritz Noumlltner 13 35

Introduction SPI I2C Measurements Conclusion

I2C Roles

Four roles possiblebullMaster Starts a transmissionbullSlave Responds to transmissionbullTransmitter Transmits databullReceiver Receives data

Moritz Noumlltner 14 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSDA Seria DataBidirectional datandash amp address line

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSCL Serial ClockUsed by the master to synchronise with theslaves

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Electrical Setup

Source Adapted from ``The I2C-BusSpecification v 21 2000

Open-drain oropen-collectoroutputsWired-AND

Moritz Noumlltner 16 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects negative Edge on

SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Seven bits of address are trans-mitted

bull Some addresses are reserved

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull ldquo1rdquo for readingbull ldquo0rdquo for writing

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull MOSI Master Out Slave InSerial data line for master to slave

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull MISO Master In Slave OutSerial data line for master to slave

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull CLOCK Shift ClockOne bit is sent per clock cycle

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

Clock Phase amp Polarity

4 combinations

Source Taken from the datasheet for Motorola MC68HC11A0

Moritz Noumlltner 9 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Star

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slavessvg

3+n signal linesMOSI MISO CLOCK sharedOne SS for every slaveMaster activates a slave andcommunicates with itNo delay

Moritz Noumlltner 10 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Serial

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slaves_daisy_chainedsvg

Four signal linesMOSI MISO CLOCK SSsharedMessages are passed throughMessages get latched whenSS is deassertedNot supported by all devicesDelayed responses messagehas to pass adjacent slaves

Moritz Noumlltner 11 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 12 35

Introduction SPI I2C Measurements Conclusion

Inter-Integrated Circuit

Sourcehttpwwwcpushackcomgallery-1philipsphilipsmab8400b

Created in the 1980sFirst used in PhilipsMAB8400BVery widely acceptedCompatible withother buses SMBusPMBusBus systemMulti-masteroperationHalf duplex (simplex)Two signal lines +two pull-up resistors

Moritz Noumlltner 13 35

Introduction SPI I2C Measurements Conclusion

I2C Roles

Four roles possiblebullMaster Starts a transmissionbullSlave Responds to transmissionbullTransmitter Transmits databullReceiver Receives data

Moritz Noumlltner 14 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSDA Seria DataBidirectional datandash amp address line

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSCL Serial ClockUsed by the master to synchronise with theslaves

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Electrical Setup

Source Adapted from ``The I2C-BusSpecification v 21 2000

Open-drain oropen-collectoroutputsWired-AND

Moritz Noumlltner 16 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects negative Edge on

SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Seven bits of address are trans-mitted

bull Some addresses are reserved

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull ldquo1rdquo for readingbull ldquo0rdquo for writing

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull MISO Master In Slave OutSerial data line for master to slave

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull CLOCK Shift ClockOne bit is sent per clock cycle

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

Clock Phase amp Polarity

4 combinations

Source Taken from the datasheet for Motorola MC68HC11A0

Moritz Noumlltner 9 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Star

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slavessvg

3+n signal linesMOSI MISO CLOCK sharedOne SS for every slaveMaster activates a slave andcommunicates with itNo delay

Moritz Noumlltner 10 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Serial

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slaves_daisy_chainedsvg

Four signal linesMOSI MISO CLOCK SSsharedMessages are passed throughMessages get latched whenSS is deassertedNot supported by all devicesDelayed responses messagehas to pass adjacent slaves

Moritz Noumlltner 11 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 12 35

Introduction SPI I2C Measurements Conclusion

Inter-Integrated Circuit

Sourcehttpwwwcpushackcomgallery-1philipsphilipsmab8400b

Created in the 1980sFirst used in PhilipsMAB8400BVery widely acceptedCompatible withother buses SMBusPMBusBus systemMulti-masteroperationHalf duplex (simplex)Two signal lines +two pull-up resistors

Moritz Noumlltner 13 35

Introduction SPI I2C Measurements Conclusion

I2C Roles

Four roles possiblebullMaster Starts a transmissionbullSlave Responds to transmissionbullTransmitter Transmits databullReceiver Receives data

Moritz Noumlltner 14 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSDA Seria DataBidirectional datandash amp address line

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSCL Serial ClockUsed by the master to synchronise with theslaves

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Electrical Setup

Source Adapted from ``The I2C-BusSpecification v 21 2000

Open-drain oropen-collectoroutputsWired-AND

Moritz Noumlltner 16 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects negative Edge on

SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Seven bits of address are trans-mitted

bull Some addresses are reserved

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull ldquo1rdquo for readingbull ldquo0rdquo for writing

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

SPI Signal Lines

Source Adapted from ``SPI Block Guide V 0306 2003

bull CLOCK Shift ClockOne bit is sent per clock cycle

Moritz Noumlltner 8 35

Introduction SPI I2C Measurements Conclusion

Clock Phase amp Polarity

4 combinations

Source Taken from the datasheet for Motorola MC68HC11A0

Moritz Noumlltner 9 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Star

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slavessvg

3+n signal linesMOSI MISO CLOCK sharedOne SS for every slaveMaster activates a slave andcommunicates with itNo delay

Moritz Noumlltner 10 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Serial

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slaves_daisy_chainedsvg

Four signal linesMOSI MISO CLOCK SSsharedMessages are passed throughMessages get latched whenSS is deassertedNot supported by all devicesDelayed responses messagehas to pass adjacent slaves

Moritz Noumlltner 11 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 12 35

Introduction SPI I2C Measurements Conclusion

Inter-Integrated Circuit

Sourcehttpwwwcpushackcomgallery-1philipsphilipsmab8400b

Created in the 1980sFirst used in PhilipsMAB8400BVery widely acceptedCompatible withother buses SMBusPMBusBus systemMulti-masteroperationHalf duplex (simplex)Two signal lines +two pull-up resistors

Moritz Noumlltner 13 35

Introduction SPI I2C Measurements Conclusion

I2C Roles

Four roles possiblebullMaster Starts a transmissionbullSlave Responds to transmissionbullTransmitter Transmits databullReceiver Receives data

Moritz Noumlltner 14 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSDA Seria DataBidirectional datandash amp address line

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSCL Serial ClockUsed by the master to synchronise with theslaves

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Electrical Setup

Source Adapted from ``The I2C-BusSpecification v 21 2000

Open-drain oropen-collectoroutputsWired-AND

Moritz Noumlltner 16 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects negative Edge on

SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Seven bits of address are trans-mitted

bull Some addresses are reserved

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull ldquo1rdquo for readingbull ldquo0rdquo for writing

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

Clock Phase amp Polarity

4 combinations

Source Taken from the datasheet for Motorola MC68HC11A0

Moritz Noumlltner 9 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Star

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slavessvg

3+n signal linesMOSI MISO CLOCK sharedOne SS for every slaveMaster activates a slave andcommunicates with itNo delay

Moritz Noumlltner 10 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Serial

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slaves_daisy_chainedsvg

Four signal linesMOSI MISO CLOCK SSsharedMessages are passed throughMessages get latched whenSS is deassertedNot supported by all devicesDelayed responses messagehas to pass adjacent slaves

Moritz Noumlltner 11 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 12 35

Introduction SPI I2C Measurements Conclusion

Inter-Integrated Circuit

Sourcehttpwwwcpushackcomgallery-1philipsphilipsmab8400b

Created in the 1980sFirst used in PhilipsMAB8400BVery widely acceptedCompatible withother buses SMBusPMBusBus systemMulti-masteroperationHalf duplex (simplex)Two signal lines +two pull-up resistors

Moritz Noumlltner 13 35

Introduction SPI I2C Measurements Conclusion

I2C Roles

Four roles possiblebullMaster Starts a transmissionbullSlave Responds to transmissionbullTransmitter Transmits databullReceiver Receives data

Moritz Noumlltner 14 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSDA Seria DataBidirectional datandash amp address line

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSCL Serial ClockUsed by the master to synchronise with theslaves

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Electrical Setup

Source Adapted from ``The I2C-BusSpecification v 21 2000

Open-drain oropen-collectoroutputsWired-AND

Moritz Noumlltner 16 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects negative Edge on

SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Seven bits of address are trans-mitted

bull Some addresses are reserved

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull ldquo1rdquo for readingbull ldquo0rdquo for writing

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Star

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slavessvg

3+n signal linesMOSI MISO CLOCK sharedOne SS for every slaveMaster activates a slave andcommunicates with itNo delay

Moritz Noumlltner 10 35

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Serial

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slaves_daisy_chainedsvg

Four signal linesMOSI MISO CLOCK SSsharedMessages are passed throughMessages get latched whenSS is deassertedNot supported by all devicesDelayed responses messagehas to pass adjacent slaves

Moritz Noumlltner 11 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 12 35

Introduction SPI I2C Measurements Conclusion

Inter-Integrated Circuit

Sourcehttpwwwcpushackcomgallery-1philipsphilipsmab8400b

Created in the 1980sFirst used in PhilipsMAB8400BVery widely acceptedCompatible withother buses SMBusPMBusBus systemMulti-masteroperationHalf duplex (simplex)Two signal lines +two pull-up resistors

Moritz Noumlltner 13 35

Introduction SPI I2C Measurements Conclusion

I2C Roles

Four roles possiblebullMaster Starts a transmissionbullSlave Responds to transmissionbullTransmitter Transmits databullReceiver Receives data

Moritz Noumlltner 14 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSDA Seria DataBidirectional datandash amp address line

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSCL Serial ClockUsed by the master to synchronise with theslaves

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Electrical Setup

Source Adapted from ``The I2C-BusSpecification v 21 2000

Open-drain oropen-collectoroutputsWired-AND

Moritz Noumlltner 16 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects negative Edge on

SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Seven bits of address are trans-mitted

bull Some addresses are reserved

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull ldquo1rdquo for readingbull ldquo0rdquo for writing

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

SPI Bus Topologies Serial

Source Adapted fromhttpenwikipediaorgwikiFile

SPI_three_slaves_daisy_chainedsvg

Four signal linesMOSI MISO CLOCK SSsharedMessages are passed throughMessages get latched whenSS is deassertedNot supported by all devicesDelayed responses messagehas to pass adjacent slaves

Moritz Noumlltner 11 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 12 35

Introduction SPI I2C Measurements Conclusion

Inter-Integrated Circuit

Sourcehttpwwwcpushackcomgallery-1philipsphilipsmab8400b

Created in the 1980sFirst used in PhilipsMAB8400BVery widely acceptedCompatible withother buses SMBusPMBusBus systemMulti-masteroperationHalf duplex (simplex)Two signal lines +two pull-up resistors

Moritz Noumlltner 13 35

Introduction SPI I2C Measurements Conclusion

I2C Roles

Four roles possiblebullMaster Starts a transmissionbullSlave Responds to transmissionbullTransmitter Transmits databullReceiver Receives data

Moritz Noumlltner 14 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSDA Seria DataBidirectional datandash amp address line

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSCL Serial ClockUsed by the master to synchronise with theslaves

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Electrical Setup

Source Adapted from ``The I2C-BusSpecification v 21 2000

Open-drain oropen-collectoroutputsWired-AND

Moritz Noumlltner 16 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects negative Edge on

SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Seven bits of address are trans-mitted

bull Some addresses are reserved

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull ldquo1rdquo for readingbull ldquo0rdquo for writing

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 12 35

Introduction SPI I2C Measurements Conclusion

Inter-Integrated Circuit

Sourcehttpwwwcpushackcomgallery-1philipsphilipsmab8400b

Created in the 1980sFirst used in PhilipsMAB8400BVery widely acceptedCompatible withother buses SMBusPMBusBus systemMulti-masteroperationHalf duplex (simplex)Two signal lines +two pull-up resistors

Moritz Noumlltner 13 35

Introduction SPI I2C Measurements Conclusion

I2C Roles

Four roles possiblebullMaster Starts a transmissionbullSlave Responds to transmissionbullTransmitter Transmits databullReceiver Receives data

Moritz Noumlltner 14 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSDA Seria DataBidirectional datandash amp address line

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSCL Serial ClockUsed by the master to synchronise with theslaves

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Electrical Setup

Source Adapted from ``The I2C-BusSpecification v 21 2000

Open-drain oropen-collectoroutputsWired-AND

Moritz Noumlltner 16 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects negative Edge on

SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Seven bits of address are trans-mitted

bull Some addresses are reserved

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull ldquo1rdquo for readingbull ldquo0rdquo for writing

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

Inter-Integrated Circuit

Sourcehttpwwwcpushackcomgallery-1philipsphilipsmab8400b

Created in the 1980sFirst used in PhilipsMAB8400BVery widely acceptedCompatible withother buses SMBusPMBusBus systemMulti-masteroperationHalf duplex (simplex)Two signal lines +two pull-up resistors

Moritz Noumlltner 13 35

Introduction SPI I2C Measurements Conclusion

I2C Roles

Four roles possiblebullMaster Starts a transmissionbullSlave Responds to transmissionbullTransmitter Transmits databullReceiver Receives data

Moritz Noumlltner 14 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSDA Seria DataBidirectional datandash amp address line

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSCL Serial ClockUsed by the master to synchronise with theslaves

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Electrical Setup

Source Adapted from ``The I2C-BusSpecification v 21 2000

Open-drain oropen-collectoroutputsWired-AND

Moritz Noumlltner 16 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects negative Edge on

SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Seven bits of address are trans-mitted

bull Some addresses are reserved

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull ldquo1rdquo for readingbull ldquo0rdquo for writing

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

I2C Roles

Four roles possiblebullMaster Starts a transmissionbullSlave Responds to transmissionbullTransmitter Transmits databullReceiver Receives data

Moritz Noumlltner 14 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSDA Seria DataBidirectional datandash amp address line

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSCL Serial ClockUsed by the master to synchronise with theslaves

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Electrical Setup

Source Adapted from ``The I2C-BusSpecification v 21 2000

Open-drain oropen-collectoroutputsWired-AND

Moritz Noumlltner 16 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects negative Edge on

SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Seven bits of address are trans-mitted

bull Some addresses are reserved

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull ldquo1rdquo for readingbull ldquo0rdquo for writing

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSDA Seria DataBidirectional datandash amp address line

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSCL Serial ClockUsed by the master to synchronise with theslaves

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Electrical Setup

Source Adapted from ``The I2C-BusSpecification v 21 2000

Open-drain oropen-collectoroutputsWired-AND

Moritz Noumlltner 16 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects negative Edge on

SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Seven bits of address are trans-mitted

bull Some addresses are reserved

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull ldquo1rdquo for readingbull ldquo0rdquo for writing

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSDA Seria DataBidirectional datandash amp address line

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSCL Serial ClockUsed by the master to synchronise with theslaves

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Electrical Setup

Source Adapted from ``The I2C-BusSpecification v 21 2000

Open-drain oropen-collectoroutputsWired-AND

Moritz Noumlltner 16 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects negative Edge on

SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Seven bits of address are trans-mitted

bull Some addresses are reserved

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull ldquo1rdquo for readingbull ldquo0rdquo for writing

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

I2C Signal Lines

Source Adapted from ``The I2C-Bus Specification v 21 2000

bullSCL Serial ClockUsed by the master to synchronise with theslaves

Moritz Noumlltner 15 35

Introduction SPI I2C Measurements Conclusion

I2C Electrical Setup

Source Adapted from ``The I2C-BusSpecification v 21 2000

Open-drain oropen-collectoroutputsWired-AND

Moritz Noumlltner 16 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects negative Edge on

SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Seven bits of address are trans-mitted

bull Some addresses are reserved

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull ldquo1rdquo for readingbull ldquo0rdquo for writing

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

I2C Electrical Setup

Source Adapted from ``The I2C-BusSpecification v 21 2000

Open-drain oropen-collectoroutputsWired-AND

Moritz Noumlltner 16 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects negative Edge on

SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Seven bits of address are trans-mitted

bull Some addresses are reserved

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull ldquo1rdquo for readingbull ldquo0rdquo for writing

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects negative Edge on

SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Seven bits of address are trans-mitted

bull Some addresses are reserved

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull ldquo1rdquo for readingbull ldquo0rdquo for writing

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects negative Edge on

SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Seven bits of address are trans-mitted

bull Some addresses are reserved

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull ldquo1rdquo for readingbull ldquo0rdquo for writing

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Seven bits of address are trans-mitted

bull Some addresses are reserved

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull ldquo1rdquo for readingbull ldquo0rdquo for writing

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull ldquo1rdquo for readingbull ldquo0rdquo for writing

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter releases the SDAline

bull Receiver pulls SDA low to ac-knowledge

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull Transmitter sends one byte ofdata

bull It may send the next byte if re-ceiver acknowledges

bull When receiver not-acknowledges the transmissionends

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

I2C Protocol Parts

Start Address RW

ACK

Data

NACK

Stop

bull SCL highbull Master injects Positive-going

Edge on SDA

Moritz Noumlltner 17 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example1

Simple I2C read on default register

Moritz Noumlltner 18 35

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

I2C Protocol Example2

Example of repeated start

Example of multi-byte transmission

Moritz Noumlltner 19 35

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

I2C Clock Stretching

bull No fixed speed Any device may slow down the transmissionbull Master pauses switching of SCL rarrtransmission is pausedbull Slave holds SCL low rarrmaster waits for release

Upper diagram no stretching lower diagram with stretchingMoritz Noumlltner 20 35

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

I2C Collision Detection amp Bus Arbitrationbull Two devices issue start condition rarrbecome master of the busbull Both transmit address and possibly databull One master sends ldquo1rdquo one sends ldquo0rdquobull The master sending ldquo1rdquo notices the discrepancy between its output and the bus rarrloses arbitrationbull A master that lost bus arbitration switches to slave mode

bull Second master became slave before any race condition occuredbull rarrno data loss

Moritz Noumlltner 21 35

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

I2C 10-bit Addressing

bull 7-bit addressing means 128 addressesbull 16 addresses reserved rarronly 112 addresses freebull More addresses needed rarr10-bit-addressing

First byte 11110 + first 2 bits of 10-bit address + RW-bitSecond byte Remaining 8 bits of slave addressRest of transmission as usual

Source Adapted from ``UM10204I2C-busspecificationandusermanualRev62014

Moritz Noumlltner 22 35

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

I2C Higher Speeds

bull Standard Mode Up to 100kbitsbull Fast Mode Up to 400kbits

Fully compatible with Standard Modebull Fast Mode Plus Up to 1Mbits

Timing loosened more drive strengthbull High Speed

ModeUp to 34Mbits

A number of changes∘ Pull-up current sources in each device∘ Schmitt-trigger inputs for spike suppression∘ Clock stretching only after ACK bit∘ rarrspecial initiation master-codeldquo00001XXrdquo ldquoXrdquo transmitted in Fast ModeBus arbitration only during master-code transfer

Moritz Noumlltner 23 35

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

I2C High Speed Mode Electrical Setup

Source Adapted from ``The I2C-Bus Specification v 21 2000

Moritz Noumlltner 24 35

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

I2C Ultra Fast Mode

bull Ultra Fast Mode Up to 5MbitsNot compatibleChanges∘ Unidirectional Protocol∘ Push-Pull output stages∘ Rest of protocol remains mostly the same

Moritz Noumlltner 25 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 26 35

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

Practical Part

Goal Measure an I2CtransactionA Raspberry Pi isconnected to a labcardMeasurement donewith a temperaturesensor on the card

Source httpstatictrustedreviewscom9400002d03f1a88_orh350w620Raspberry-Pi-B-Plus-modeljpg

Moritz Noumlltner 27 35

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

Hardware Setup

Raspberry Pi drivesI2C bus multiplexerLTC4306LTC4306 connectedto temperature sensorMAX6657Oscilloscope attachedto I2C bus on sensor

Moritz Noumlltner 28 35

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

Software Setup

bull Load Kernel Modules i2c-bcm2708 amp i2c-devbull Load package i2c-toolsbull Start terminal session

Moritz Noumlltner 29 35

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

Software Session Tell the multiplexer to connect the correct bus to the pipiraspberrypi ~ $ i2cset 1 73 3 64WARNING This program can confuse yourI2C bus cause data loss and worseI will write to device filedevi2c-1 chip address 0x49 dataaddress 0x03 data 0x40 mode byteContinue [Yn] y Read the temperature sensorpiraspberrypi ~ $ i2cget -y 1 76 00x1b A thumb was placed on the sensor to warm it up a littlepi2raspberrypi ~ $ i2cget -y 1 76 00x1d

Moritz Noumlltner 30 35

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

I2C Measurement

Moritz Noumlltner 31 35

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

Table of Contents

1 Introduction

2 Serial Peripheral Interface

3 Inter-Integrated Circuit

4 Practical Part

5 Conclusion

Moritz Noumlltner 32 35

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

Comparison of SPI an I2C

Speed

Simplicityof use

Simplicityat Chip

Simplicityat Board

Versatility Robustness

Comparison of the buses (visualisation of estimation) Red I2C Blue SPI

Moritz Noumlltner 33 35

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

Conclusion

Both SPI and I2C very mature bussesNevertheless up to dateLow pin count low speedsSPI used for data connections mostlyI2C prevalently used for configuration centric communication

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

ReferencesDatasheet of the Motorola MC68HC11A8 microcontroller describing the SPI busLast downloaded 2014-01-10httpcachefreescalecomfilesmicrocontrollersdocdata_sheetMC68HC11A8pdf

Datasheet of the Motorola MC68HCP11A1VP microcontrollerLast downloaded 2014-01-10httppdfdatasheetcatalogcomdatasheetmotorolaMC68HCP11A1VPpdf

SPI Block Guide V0306Last downloaded 2014-01-10httpwwweenmtedu~teareee308ldatasheetsS12SPIV3pdf

Datasheet detailing MicrowireLast downloaded 2014-01-11httpwwwticomlitansnoa743snoa743pdf

Phillips Semiconductors The I2C-Bus Specification 2000Last downloaded 2014-01-10httpwwwcsunceduResearchstcFAQsInterfacesI2C-BusSpec-V21pdf

NXP Semiconductors UM10204 I2C-bus specification and user manualLast downloaded 2014-01-10httpwwwnxpcomdocumentsuser_manualUM10204pdf

Homepage for PMBus detailing itrsquos connection to I2CLast visited 2014-01-11httppmbusorgaboutpmbusancestry

Specification of SMBusLast downloaded 2014-01-11httpsmbusorgspecssmbus20pdf

Moritz Noumlltner 34 35

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

Homepage about I2C detailing TWILast visited 2014-01-11httpwwwi2c-busorgtwi-bus

Example of a datasheet using the term ldquoTwo Wire Interfacerdquo instead of I2CLast downloaded 2014-01-11httpwwwatmelcomImages2466Spdf

Moritz Noumlltner 35 35

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion

Introduction SPI I2C Measurements Conclusion

End

Any Questions

Moritz Noumlltner 35 35

  • Introduction
  • Serial Peripheral Interface
  • Inter-Integrated Circuit
  • Practical Part
  • Conclusion