I'm using an ADP8866 for a project. This part supports independent current control of up to nine LEDs (I'm using eight), with support for fancy blinking effects using programmable fade in, faed out, on, and off timers. Programming is done via I2C; overall, it's a nice part.
However, I've found that keeping the LEDs synchronized while making changes is very hard. For example, if I follow a sequence like this:
- Configure two or more LEDs to 'blink'
- Wait a while, then turn one of the LEDs off
- Wait some more, then turn the LED back on (to blink again)
Then I find that the LEDs are synchronized after (1) but not after (3). Note that when I program the device, I put it into standby mode, disable all LEDs, configure the device, then re-enable the LEDs that I want to be on.
I've tried a few different approaches to programming:
- Just re-program and expect automatic synchronization when the LEDs are enabled.
- Enter standby mode, reconfigure, then place into active mode.
- Wait for the ISCOFF_INT to fire, then make changes.
None of these methods is robust---the LEDs become de-synchronized when the pattern is re-programmed. Has anyone else using this part discovered the secret to synchronization?