工具/软件:
我们目前有一个器件使用 带有电荷泵的 LP55231SQX LED 驱动器、当我们初始化芯片并开始向 PWM 寄存器写入数据时、寄存器值保持不变、LED 电流会亮起。 以下是写入序列(按顺序)、并有意添加任何延迟;
- 将 1 写入使能寄存器 (0x00) 的“芯片使能“位
- 延迟 500uS
- 我们将 0x08 写入 MISC 寄存器 (0x36)
- 将 0xFF 写入输出控制 LSB 寄存器 (0x05)
- 将 0x01 写入输出控制 MSB 寄存器 (0x04)
- 将 0xFA 写入 D1 电流控制寄存器 (0x26)
- 将 0xFA 写入 D2 电流控制寄存器 (0x27)
- 将 0x32 写入 D3-9 电流控制寄存器 (0x28- 0x2E)
- 将 0xFF 写入 D1 PWM 寄存器 (0x16)
- 将 0xFF 写入 D2 PWM 寄存器 (0x17)
在步骤 9 和 10 之后、没有来自这些通道的输出、从这些寄存器读取会读取值 0x00。 i2c 写入成功并且不返回任何错误、写入其他寄存器后从这些寄存器读取它们都显示正确的值、从 STATUS 寄存器 (0x3A) 读取可得到值 0x48(预计不会出现问题)
如果程序继续循环并以 100us 的延迟重复执行步骤 9 和 10、最终寄存器写入将正常工作、有时会在开始工作前等待~1ms、有时甚至是 2.5ms。
从数据表中、我看不到未接受 PWM 写入的任何原因、或所需的任何其他时序延迟。 是否缺少某些问题或其他问题可能导致启动 PWM 寄存器出现问题?