Philips Semiconductors
Preliminary data
PCA9530
2-bit I
2
C LED dimmer
2002 Dec 12
4
DEVICE ADDRESSING
Following a START condition the bus master must output the
address of the slave it is accessing. The address of the PCA9530 is
shown in Figure 3. To conserve power, no internal pullup 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 PCA9530 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
0
0
0
PSC0 is used to program the period of the PWM output.
5
0
4
0
3
0
2
0
1
X
0
X
4
0
3
0
2
0
1
0
0
0
The period of BLINK0
(PSC0
1)
152
PWM0 — PWM REGISTER 0
bit
7
default
1
The PWM0 register determines the duty cycle of BLINK0. The
outputs are LOW (LED on) when the count is less than the value in
PWM0 and HIGH (LED off) when it is greater. If PWM0 is
programmed with 00h, then the PWM0 output is always HIGH
(LED off) .
6
0
5
0
4
0
3
0
2
0
1
0
0
0
The duty cycle of BLINK0 is: P256
PSC1 — FREQUENCY PRESCALER 1
bit
7
6
default
0
0
PSC1 is used to program the period of PWM output.
5
0
4
0
3
0
2
0
1
0
0
0
The period of BLINK1
(PSC1
1)
152
PWM1 — PWM REGISTER 1
bit
7
default
1
The PWM1 register determines the duty cycle of BLINK1. The
outputs are LOW (LED on) when the count is less than the value in
PWM1 and HIGH (LED off) when it is greater. If PWM1 is
programmed with 00h, then the PWM1 output is always HIGH
(LED off).
6
0
5
0
4
0
3
0
2
0
1
0
0
0
The duty cycle of BLINK1 is: P256
LS0 — LED SELECTOR
LED 1
3
0
LED 0
1
0
bit
7
1
6
1
5
1
4
1
2
0
0
0
default
The LSx LED select registers determine the source of the LED data.
00 = Output is set low Hi-Z (LED off - default)
01 = Output is set low (LED on)
10 = Output blinks at PWM0 rate
11 = Output blinks at PWM1 rate