Philips Semiconductors
Product data
PCA9550
2-bit I
2
C LED driver with programmable blink rates
2003 May 02
4
DEVICE ADDRESSING
Following a START condition the bus master must output the
address of the slave it is accessing. The address of the PCA9550 is
shown in Figure 3. To conserve power, no internal pull-up resistor is
incorporated on the hardware selectable address pin and it must be
pulled HIGH or LOW.
1
1
0
0
0
0
A0
SLAVE ADDRESS
SW00928
FIXED
HARDWARE
SELECTABLE
R/W
Figure 3. Slave address
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.
CONTROL REGISTER
Following the successful acknowledgement of the slave address,
the bus master will send a byte to the PCA9550 which will be stored
in the Control Register.
0
0
AI
B2
B1 B0
0
SW01034
0
AUTO-INCREMENT FLAG
REGISTER ADDRESS
RESET STATE: 00h
Figure 4. Control register
CONTROL REGISTER DEFINITION
B2
B1
B0
REGISTER
NAME
TYPE
REGISTER
FUNCTION
0
0
0
INPUT
READ
INPUT REGISTER
0
0
1
PSC0
READ/
WRITE
FREQUENCY
PRESCALER 0
0
1
0
PWM0
READ/
WRITE
PWM REGISTER 0
0
1
1
PSC1
READ/
WRITE
FREQUENCY
PRESCALER 1
1
0
0
PWM1
READ/
WRITE
PWM REGISTER 1
1
0
1
LS0
READ/
WRITE
LED SELECTOR
REGISTER DESCRIPTION
The lowest 3 bits are used as a pointer to determine which register
will be accessed.
If the auto-increment 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 auto-increment flag is set (AI = 1) and a read sequence is
initiated, the sequence must start by reading a register different from
the input register (B2 B1 B0
0 0 0).
Only the 3 least significant bits are affected by the AI flag.
Unused bits must be programmed with zeroes.
INPUT — INPUT REGISTER
bit
7
6
default
0
0
The INPUT register reflects the state of the device pins. Writes to
this register will be acknowledged but will have no effect.
PSC0 — FREQUENCY PRESCALER 0
bit
7
6
5
default
1
1
1
PSC0 is used to program the period of the PWM output.
5
0
4
0
3
0
2
0
1
X
0
X
4
1
3
1
2
1
1
1
0
1
The period of BLINK0
(PSC0
1)
38
PWM0 — PWM REGISTER 0
bit
7
default
1
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.
6
0
5
0
4
0
3
0
2
0
1
0
0
0
The duty cycle of BLINK0 is: 256
–
PWM0
256
PSC1 — FREQUENCY PRESCALER 1
bit
7
6
default
1
1
PSC1 is used to program the period of PWM output.
5
1
4
1
3
1
2
1
1
1
0
1
The period of BLINK1
(PSC1
1)
38
PWM1 — PWM REGISTER 1
bit
7
default
1
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.
6
0
5
0
4
0
3
0
2
0
1
0
0
0
The duty cycle of BLINK1 is: 256
–
PWM1
256
LS0 — LED SELECTOR
LED 1
3
0
LED 0
1
0
bit
7
1
6
1
5
1
4
1
2
1
0
1
default
The LSx LED select registers determine the source of the LED data.
00 = Output is set LOW (LED on)
01 = Output is set Hi-Z (LED off - default)
10 = Output blinks at PWM0 rate
11 = Output blinks at PWM1 rate