Chapter 2: I²C Protocol
Chapter 3: A Software Implementation of the I²C Bus
Chapter 4: Analyzing and Debugging I²C Transmissions
Chapter 5: I²C Variants
Chapter 6: I²C on Common Single-Board Computers
Chapter 7: I²C on Vendor Buses
Chapter 8: Arduino I²C Programming
Chapter 9: Raspberry Pi (and Linux) I²C Programming
Chapter 10: I²C Programming in Real-Time Operating Systems
Chapter 11: Bare-Metal I²C Controller Programming
Chapter 12: The TCA9548A I²C Bus Expander
Chapter 13: The MCP23017 and MCP23008 GPIO Expanders
Chapter 14: The ADS1015/ADS1115 Analog-to-Digital Converters
Chapter 15: The MCP4725 Digital-to-Analog Converter
Chapter 16: Bare-Metal Peripheral Programming
Appendix A: Glossary
Appendix B: The Adafruit I²C Address Compilation