I'm working with the PCA9531 chip described as

The PCA9531 is an 8-bit I2C-bus and SMBus I/O expander optimized for dimming LEDs in 256 discrete steps

It is a chip that provides 8 PWM outputs for driving leds. It has two PCS (for defining the oscillator frequency) and two PWM (for defining the duty cycle) registers which define the characteristics of the "blink". The documentation also stats:

The initial setup sequence programs the two blink rates/duty cycles for each individual PWM. From then on, only one command from the bus master is required to turn individual LEDs ON, OFF, BLINK RATE 1 or BLINK RATE 2. Based on the programmed frequency and duty cycle, BLINK RATE 1 and BLINK RATE 2 will cause the LEDs to appear at a different brightness or blink at periods up to 1.69 second.

My understanding so far is that I have two Led groups (based on the blink rates) and it isn't possible to have all 8 leds to have different brightness at the same time.

However, (I'm using a Linux kernel driver to work with the chip) I've seen it possible to have all leds having different brightness at the same time, so it's happening somehow.

Below is the block diagram of the chip which shows two BLINK inputs going into the summation block.

enter image description here

I would like to know can this happen logically from the perspective of the chip.


1 Answer 1


It seems it isn't possible and that my testing approach was wrong.

I was testing with maximum and minimum brightness ignoring that they actually represent the ON/OFF states and don't consume the PWM registers.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.