Chapter 6. Driving I2C Peripherals on the Raspberry Pi
In the previous chapter, we tested the single-bit digital I/O ports built into the Raspberry Pi SOC. Now it's time to shift gears to another built-in interface for hardware interfaces.
In this chapter, we will talk about an interface bus that uses a simple message communication protocol that communicates from a master device to a slave device. You will see this referred to as I2C (pronounced I-squared-C) and sometimes as (System Management Bus) SMBus in most Pi technical documentation. Each has different capabilities, but they are essentially identical in protocol. For our needs, we will treat the names as interchangeable, but to be more accurate—we will use I2C.
After completing this chapter, you will be able to:
- Understand the characteristics of the I2C protocol and its peripheral addressing scheme
- Read and write to interfaces on the I2C bus
- Create a program to control a multichannel PWM controller