lp5030 点led灯,没点亮,通过读取寄存器发现是无法通过CHIP_EN寄存器使能芯片,操作时序如下:
VCC up → EN pin set lo → sleep 100ms → EN pin set hi →sleep 1s → reset(0x38 write 0xff)→ sleep 100ms → 0x00 write 0x40 → sleep 1s → read 0x00。
最终读出来是0x00,而不是0x40。I2C通信正常,三个芯片0x30 0x32 0x33都试过。寄存器都比较简单,所以我这边没思路了,麻烦帮忙看下。
另外,还有奇怪的问题是,0x04 0x05 0x06 0x07等寄存器,写入后,如果在往0x00写入0x40,再读取0x04 0x05 0x06 0x07会全为0.
Johnsin Tao:
HI控制上主要是I2C地址,和I2C时序,从描述看,有可能都是些进去,不然读出来不应该都是零。你可以读一下非零的寄存器看看?
user6462089:
回复 Johnsin Tao:
有三个芯片,I2C地址分别是0x30,0x32,0x33,都能通信成功,并且用逻辑分析仪分析波形是正确的,读取写入的值是正确的,只是重新en后值归0了。
重点还是第一个问题,为什么无法使能,即0x00寄存器写入0x40后再读出来时0x00。
Johnsin Tao:
回复 user6462089:
Hi用较简单的方式控制EN看看,不需要sleep, reset之类。 可以直接Reset默认配置后,写EN.
user6462089:
回复 Johnsin Tao:
你好,有这么验证过了,依然还是无法使能。UVLO = H时会变成INITIALIZATION状态,有没可能是这个的原因的,这个UVLO = H是什么意思呢?文档说是Vcc小于VUVF,这个VUVF没找到pin脚
Johnsin Tao:
回复 user6462089:
HiVUVF基准是2V, 2V一下关闭。在操作时确保Vcc供电正常.在datasheet 第22页有个读写cycle,按照这个操作来读写。