LabWorX / Mastering the I²C Bus
Straight from the Lab to your Brain / LabWorX 1
Vincent Himpe
Diese Publikation zitieren
Vincent Himpe, LabWorX / Mastering the I²C Bus (26.04.2024), Elektor, Aachen, ISBN: 9780905705989
228
Accesses
Accesses
10
Quotes
Quotes
Beschreibung / Abstract
Inhaltsverzeichnis
- Cover
- About the author
- Contents
- 1. Historical Background of I2C
- 2. I2C from a Hardware Perspective
- 3. Bus Architecture
- 3.1 Basic Terminology
- 4. The Basic I2C Protocol
- 4.1 Flowchart
- 5. Bus Events
- 5.1 Additional Terminology
- 5.2 Idle Bus
- 5.3 Start and Stop Events
- 5.4 Putting Information on the Bus
- 5.5 Addressing a Slave
- 5.6 Acknowledge
- 5.7 NACK or not ACK
- 5.8 Key Elements to Remember
- 5.9 Bus Stalling
- 5.10 Getting Acknowledge from the Master's Perspective
- 5.11 Giving Acknowledge from the Master's Perspective
- 5.12 Giving Not ACK from the Master's Perspective
- 6. Exchanging Information
- 6.1 Writing One Byte to a Slave
- 6.2 Writing more than One Byte to a Slave
- 6.3 Reading One Byte from a Slave
- 6.4 Reading Multiple Bytes from a Slave
- 6.5 Determining the Slave Access Mode
- 6.6 The Combined Data Format
- 7. Multi Master Communication
- 7.1 An Example
- 7.2 Additional Testing
- 8. Bus Synchronisation
- 8.1 An Example
- 9. Special Addresses and Exceptions
- 9.1 General Call Address
- 9.2 Start Byte
- 9.3 CBUS Address
- 9.4 High Speed Master Code
- 9.5 10-BIT Call Address
- 9.6 Device ID
- 10. Speed Modes
- 10.1 Standard Mode
- 10.2 Fast Mode
- 10.3 Fast Mode +
- 10.4 High Speed Mode
- 11. Additional I2C Uses
- 11.1 SMBUS
- 11.2 PMBUS
- 11.3 IPMI
- 11.4 ATCA
- 12. Electrical Specifications of the I2C Bus
- 12.1 Enhanced I2C (Fast Mode)
- 12.2 Extended Addressing
- 13. Designing the Bus System
- 13.1 Adressing
- 13.2 Bus Expansion
- 14. F.A.Q.: Hardware
- 14.1 What is the maximum allowed length of the bus?
- 14.2 I want to transport I2C over a long distance or off board
- 14.3 I want to extend it "By the Book". Is there something like a buffer for I2C?
- 14.4 Can I isolate an I2C Bus? (using optocoupler or some other means)
- 14.5 What if I run out of addresses? Is there an I2C router?
- 14.6 Level Shifting the I2C Bus
- 14.7 Is there something like a standalone I2C controller?
- 14.8 Why does the clock need to be bidirectional
- 15. F.A.Q.: Protocol
- 15.1 How do I generate a repeated start condition after the last byte
- 15.2 What if I was in receive mode, how do I create the repeat start?
- 15.3 Is it okey to abort an ongoing transmission any time?
- 15.4 Do I need to give the ACK in read mode on the last byte?
- 16. Q&A Section: Troubleshooting
- 16.1 Can I monitor an I2C Bus in some way?
- 16.2 USBEE
- 16.3 Is there a way to test/debug I2C busses?
- 16.4 I want to experiment with I2C, are there demo kits available?
- 17. An I2C Driver in Pseudocode
- 18. Debugging Tools
- 18.1 I2C Trigger Generator
- 18.2 Checking who is Controlling the Bus
- 19. I2C Interfacing System for the IBM-PC
- 19.1 Parallel Printer Port Interface
- 19.2 Access Bus
- 19.3 I2C In your Computer
- 20. Commonly Used I2C Devices
- 20.1 I/0 Expanders
- 20.2 LED and LCD Display Controllers
- 20.3 A/D and D/A Converters
- 20.4 Audio and Video Circuitry
- 20.5 EEPROM Memories
- 20.6 Real Time Clocks
- 20.7 I2C Isolators
- 20.8 Bus Multiplexers and Expanders
- 21. Labsticks I2C Introduction
- 21.1 Board 1
- 21.2 Board 2
- 22. Labstick 1.1: I2C Probe
- 22.1 Probe Hardware
- 22.2 Command Set
- 22.3 Base Commands
- 22.4 Data Transport
- 22.5 Simple Stream Examples
- 22.6 Support Functions
- 22.7 Low Level Functions
- 22.8 Assembly Drawing
- 22.9 Bill of Materials
- 23. Labstick 1-2: Universal Power Supply
- 23.1 Assembly Drawing
- 23.2 Bill of Materials
- 23.3 Selecting the Output Voltage
- 24. Labstick 1-3: 24XXX EEPROM
- 24.1 Devices
- 24.2 Usage
- 24.3 Pitfalls with E2Proms
- 24.4 Assembly Drawing
- 24.5 Bill of Materials
- 25. Labstick 1-4: PWM LED Controller
- 25.1 Address
- 25.2 Usage
- 25.3 Assembly Drawing
- 25.4 Bill of Materials
- 26. Labstick 1-5: LCD / Keyboard User Interface
- 26.1 Initialization
- 26.2 Keyboard Access
- 26.3 Circuit Board
- 26.4 Assembly
- 27. Labstick 1-6: LM75 (A) Temperature Sensor
- 27.1 Device Address
- 27.2 Usage
- 27.3 Assembly Drawing
- 27.4 Bill of Materials
- 28. Labstick 1-7: PCF8563 Realtime Clock
- 28.1 Device Address
- 28.2 Usage
- 28.3 Alarm Operation
- 28.4 Assembly Drawing
- 28.5 Bill of Materials
- 29. Labstick 1-8: 8-BIT Protected Output
- 29.1. Assembly
- 29.2 Bill of Materials
- 30. Labstick 1-9: 8-BIT Protected Inpuit
- 30.1 Schematic
- 30.2 Circuit Board
- 30.3 Bill of Materials
- 30.4 Some Application Information
- 31. Labstick 1-19 MCP4725 D/A Converters
- 31.1 Device Address
- 31.2 Usage
- 31.3 Read Operations
- 31.4 Assembly Drawing
- 31.5 Bill of Materials
- 32. Labstick 1-11: ADC081 / ADC101 / ADC121 A/D Converters
- 32.1 Device Address
- 32.2 Usage
- 32.3 Write Operations
- 32.4 Read Operations
- 32.5 Assembly Drawing
- 32.6 Bill of Materials
- 33. Labstick 1-12 PCF8591 Combined A/D and D/A Converter
- 33.1 PCA9691
- 33.2 Assembly Drawing
- 33.3 Bill of Materials
- 34. Labstick 1-13: Potentiometer
- 34.1 Functional Differences
- 34.2 Device Address
- 34.3 Usage
- 34.4 The 'D' Version
- 34.5 Assembly Drawing
- 34.6 Bill of Materials
- 35. Labstick 1-14: PCA9544 I2C Multiplexer
- 35.1 Device Address
- 35.2 Usage
- 35.3 Assembly Drawing
- 35.4 Bill of Materials
- 36. Labstick 1-15: PCF8574(A) /PCA9XXX Universal I/O Expander
- 36.1 Schematic
- 36.2 Device Address
- 36.3 Usage
- 36.4 Assembly Drawing
- 36.5 Bill of Materials
- 37. Labstick 1-16: SAA1064 7 Segment Display
- 37.1 Usage
- 37.2 Assembly Drawing
- 37.3 Bill of Materials
- 38. Appendix 1
- 38.1 Part References
- 38.2 Passive Parts
- 38.3 Semiconductors
- 39. Appendix 2
- 39.1 Additional Reading
- 40. Index