Other Parts Discussed in Thread: HDC2010, LP5009, LP5811, LP5814, LP5562
Tool/software:
We are considering the LP5817 as driver for the RGB signal LED on an IoT sensor. This LED needs only to blink 1,2 or 3 times occasionally in one color. So nothing fancy. Still it makes sense to use a special driver for that, since controlling it from the MCU directly takes up too many IO lines. The important requirement is: no energy waste while doing nothing. The LP5817 has two low power options. "STANDBY" and "SHUTDOWN". The former consumes 22uA continuously, which is way too much for a battery powered device. We accept ~1uA max for inoperative devices. This leaves us with the "SHUTDOWN" mode. According to the datasheet there are two ways to enter this mode (page 15-16 of document SNVSCQ2 – MARCH 2025):
Figure 7-5 shows the method 1:
- Enter shutdown, send Shutdown_command by writing 0x33 to register 0xD though I2C communication.
- Exit shutdown, toggle SDA 8 times to generate 8 falling edges while keeping SCL as high. The supported maximum toggle frequency for SDA is 100kHz.
So here you manually set Shutdown in action by writing to a register which is fine, but can only wake it by sending and I²C illegal control sequence. (In fact 8 start-stops, which are illegal under the I²C specification Rev7.0, paragraph 3.1.10 Note 5). Other devices on the bus may enter an inconsistent state. And:
Figure 7-6 shows the method 2:
- Enter shutdown, pull down SCL for 100ms while keeping SDA as high.
- Exit shutdown, pull up SCL to generate one rising edge regardless of SDA state.
Pulling down SCL before SDA is not mentioned in the I²C specification, which may lead to inconsistencies as well, and some devices are known to interpret this as "stalled bus state" due to long time that SCL is down and completely reset their internals. Furthermore, if i take the text literally, the Shutdown state would only last 100ms since after that we pull up SCL again. I assume this is not what is intended. Should this be read as "Pull up SXCL after the first change on SDA"?
Now my questions are:
- Have i correctly understood that the only way to activate the shutdown mode is by one of these illegal I²C commands?
- Is there an alternative LED driver chip that has a STANDBY current <1uA or a regular sleep mechanism like TI's HDC2010?
- Was my interpretation on method 2 (in red) correct?
Thank you very much for any guidance.
Ruud