Industry Standard Control Interfaces for inter IC ...
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
-