8-bit I2C-bus LED driver with programmable blink rates
Rev. 08 — 31 July 2008Product data sheet
1.General description
The PCA9551 LED blinker blinks LEDs in I2C-bus and SMBus applications where it is
necessary to limit bus traffic or free up the I2C-bus master's (MCU, MPU, DSP, chip set,
etc.) timer. The uniqueness of this device is the internal oscillator with two programmable
blink rates. To blink LEDs using normal I/O expanders like the PCF8574 or PCA9554, the
bus master must send repeated commands to turn the LED on and off. This greatly
increases the amount of traffic on the I2C-bus and uses up one of the master's timers.
The PCA9551 LED blinker instead requires only the initial set-up command to program
BLINK RATE 1 and BLINK RATE 2 (i.e., the frequency and duty cycle) for each individual
output. From then on, only one command from the bus master is required to turn each
individual open-drain output on, off, or to cycle at BLINK RATE 1 or BLINK RATE 2.
Maximum output sink current is 25 mA per bit and 100 mA per package.
Any bits not used for controlling the LEDs can be used for General Purpose parallel
Input/Output (GPIO) expansion.
2.Features
The active LOW hardware reset pin (RESET) and Power-On Reset (POR) initializes the
registers to their default state, all zeroes, causing the bits to be set HIGH (LED off).
Three hardwareaddress pins on the PCA9551 allow eight devicesto operateon the same
bus.
The newer Fast-mode Plus PCA9634 8-bit LED controller offers an individual PWM
dimming control for each channel for better color mixing capabilities with a global PWM for
dimming or blinking all channels at the same time. There are 126 possible address
combinations and the maximum output sink current is 25 mA per bit and 200 mA per
package.
n 8 LED drivers (on, off, flashing at a programmable rate)
n 2 selectable, fully programmable blink rates (frequency and duty cycle) between
0.148 Hz and 38 Hz (6.74 seconds and 0.026 seconds)
n Input/outputs not used as LED drivers can be used as regular GPIOs
n Internal oscillator requires no external components
n I2C-bus interface logic compatible with SMBus
n Internal power-on reset
n Noise filter on SCL/SDA inputs
n Active LOW reset input
n 8 open-drain outputs directly drive LEDs to 25 mA
n Edge rate control on outputs
NXP Semiconductors
PCA9551
8-bit I2C-bus LED driver with programmable blink rates
n No glitch on power-up
n Supports hot insertion
n Low standby current
n Operating power supply voltage range of 2.3 V to 5.5 V
n 0 Hz to 400 kHz clock frequency
n ESD protection exceeds 2000 V HBM per JESD22-A114, 150 V MM per
JESD22-A115 and 1000 V CDM per JESD22-C101
n Latch-up testing is done to JEDEC Standard JESD78 which exceeds 100 mA
n Packages offered: SO16, TSSOP16, HVQFN16
3.Ordering information
Table 1.Ordering information
T
=−40°C to +85°C.
amb
Type numberTopside
mark
PCA9551DPCA9551DSO16plastic small outline package; 16 leads; body width 3.9 mmSOT109-1
PCA9551PWPCA9551TSSOP16plastic thin shrink small outline package; 16 leads;
PCA9551BS9551HVQFN16plastic thermal enhanced very thin quad flat package;
8-bit I2C-bus LED driver with programmable blink rates
Table 2.Pin description
SymbolPinDescription
SO16, TSSOP16HVQFN16
LED71210LED driver 7
RESET1311reset input (active LOW)
SCL1412serial clock line
SDA1513serial data line
V
DD
[1] HVQFN16 package die supply ground is connected to both VSS pin and exposed center pad. VSS pin must
1614supply voltage
be connected to supply ground for proper device operation. For enhanced thermal, electrical, and board
level performance, the exposed pad needs to be soldered to the board using a corresponding thermal pad
on the board and for proper heat conduction through the board, thermal vias need to be incorporated in the
PCB in the thermal pad region.
6.Functional description
Refer to Figure 1 “Block diagram of PCA9551”.
6.1Device address
Following a START condition, the bus master must output the address of the slave it is
accessing. The address of the PCA9551 is shown in Figure 5. To conserve power, no
internal pull-up resistors are incorporated on the hardware selectable address pins and
they must be pulled HIGH or LOW.
…continued
slave address
1100A2 A1 A0 R/W
fixed
Fig 5.PCA9551 slave address
hardware
selectable
002aac505
The last bit of the address byte defines the operation to be performed. When set to logic 1
a read is selected, while a logic 0 selects a write operation.
6.2Control register
Followingthe successful acknowledgement of the slave address, the bus master will send
a byte to the PCA9551, which will be stored in the Control register.
000AI0B2 B1 B0
Auto-Increment flag
Reset state: 00h
Fig 6.Control register
register address
002aac506
The lowest 3 bits are used as a pointer to determine which register will be accessed.
If the Auto-Increment (AI) flag is set, the three low order bits of the Control register are
automatically incremented after a read or write. This allows the user to program the
registers sequentially. The contents of these bits will rollover to ‘000’ after the last register
is accessed.
When the Auto-Increment flag is set (AI = 1) and a read sequence is initiated, the
sequence must start by reading a register different from ‘0' (B2 B1 B0 ≠ 000).
Only the 3 least significant bits are affected by the AI flag. Unused bits must be
programmed with zeroes.
Remark: The default value ‘X’ is determined by the externally applied logic level (normally
logic 1) when used for directly driving LED with pull-up to VDD.
6.3.2PSC0 - Frequency Prescaler 0
PSC0 is used to program the period of the PWM output.
The period of BLINK0 = (PSC0 + 1) / 38.
Remark: Prescaler calculation is different between the PCA9551 and other PCA955x
LED blinkers.A divider ratio of 38 instead of 44 is used. This different divider ratio causes
the blinking frequency to be 13 % (1 − 38 / 44) lower when the same 8-bit word is used.
The programmed value of FrequencyPrescaler 0 must be adjusted to compensate for this
difference in applications where the PCA9551 is used in conjunction with other PCA955x
LED blinkers and the observed blinking frequencies need to be the same.
The PWM0 register determines the duty cycle of BLINK0. The outputs are LOW (LED off)
when the count is less than the value in PWM0 and HIGH when it is greater. If PWM0 is
programmed with 00h, then the PWM0 output is always LOW.
8-bit I2C-bus LED driver with programmable blink rates
PWM0
[5]
PWM0
[4]
PWM0
[3]
PWM0
[2]
PWM0
[1]
PWM0
[0]
6.3.4PSC1 - Frequency Prescaler 1
PSC1 is used to program the period of the PWM output.
The period of BLINK1 = (PSC1 + 1) / 38.
Remark: Prescaler calculation is different between the PCA9551 and other PCA955x
LED blinkers.A divider ratio of 38 instead of 44 is used. This different divider ratio causes
the blinking frequency to be 13 % (1 − 38 / 44) lower when the same 8-bit word is used.
The programmed value of FrequencyPrescaler 1 must be adjusted to compensate for this
difference in applications where the PCA9551 is used in conjunction with other PCA955x
LED blinkers and the observed blinking frequencies need to be the same.
Table 7.PSC1 - Frequency Prescaler 1 register description
The PWM1 register determines the duty cycle of BLINK1. The outputs are LOW (LED off)
when the count is less than the value in PWM1 and HIGH when it is greater. If PWM1 is
programmed with 00h, then the PWM1 output is always LOW (LED off).
LED pins not used to control LEDs can be used as general purpose I/Os (GPIOs).
For use as input, set LEDn to high-impedance (01) and then read the pin state via the
Input register.
For use as output, connect external pull-up resistor to the pin and size it according to the
DC recommended operating characteristics. LEDn output pin is HIGH when the output is
programmed as high-impedance, and LOW when the output is programmed LOW through
the ‘LED selector’ register. The output can be pulse-width controlled when PWM0 or
PWM1 are used.
6.5Power-on reset
When power is applied to VDD, an internal Power-On Reset (POR) holds the PCA9551 in
a reset condition until VDDhas reached V
. At that point, the reset condition is released
POR
and the PCA9551 registers are initialized to their default states, all the outputs in the
OFF state. Thereafter, VDD must be lowered below 0.2 V to reset the device.
6.6External RESET
A reset can be accomplished by holding the RESET pin LOW for a minimum of t
PCA9551 registers and I2C-bus state machine will be held in their default states until the
RESET input is once again HIGH.
w(rst)
. The
This input requires a pull-up resistor to VDD if no active connection is used.
The I2C-bus is for 2-way, 2-line communication between different ICs or modules. The two
lines are a serial data line (SDA) and a serial clock line (SCL). Both lines must be
connected to a positive supply via a pull-up resistor when connected to the output stages
of a device. Data transfer may be initiated only when the bus is not busy.
7.1Bit transfer
One data bit is transferredduring each clock pulse. The data on the SDA line must remain
stable during the HIGH period of the clock pulse as changes in the data line at this time
will be interpreted as control signals (see Figure 7).
SDA
SCL
PCA9551
8-bit I2C-bus LED driver with programmable blink rates
Fig 7.Bit transfer
7.1.1START and STOP conditions
Both data and clock lines remain HIGH when the bus is not busy. A HIGH-to-LOW
transition of the data line while the clock is HIGH is defined as the START condition (S). A
LOW-to-HIGH transition of the data line while the clock is HIGH is defined as the STOP
condition (P) (see Figure 8).
SDA
SCL
S
START condition
Fig 8.Definition of START and STOP conditions
7.2System configuration
data line
stable;
data valid
change
of data
allowed
mba607
SDA
SCL
P
STOP condition
mba608
A device generating a message is a ‘transmitter’; a device receiving is the ‘receiver’. The
device that controls the message is the ‘master’ and the devices which are controlled by
the master are the ‘slaves’ (see Figure 9).