The PCA9551 is used to
control devices through pulse
width modulation (PWM) control
via the I2C link. With this integrated
circuit and the appropriate
interface hardware, other devices
can be controlled by the NXT using
a PWM signal. These include
control signals to sensors or other
ICs, R/C servos, DC motor control,
lights, shape memory alloy (SMA),
and so on.

The I2C address for this device
is 0xC4. The “C” is pre-established
and the “ 4” is set by tying pins A0,
A1 to VSS, and A2 to VCC.

This IC has two PWM control
channels: PSC0 and PSC1. PSCO
controls outputs LED 0-3 and PSC1

controls outputs LED 4-7. The
period, duty cycle, and the output
enables are controlled through
internal registers in the IC. The
control bytes to communicate to
the registers are shown next. For
the RobotC software, the
I2C configuration is
nine bytes.