Other Parts Discussed in Thread: LP55231
您好!
我在下面的线程中询问了在将0xFF 写入复位寄存器时的 I2C 通信。
事实上、初始化过程可通过以下过程正常执行。
1) 1) EN 设置为低电平。
2) 2)将0xFF 写入复位寄存器。 *Continue while not returned
3) EN 设置为高电平。
4) 4) CHIP_EN 高电平。
在2中)、不返回 ACK。 这是否正常运行?
此致、
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Other Parts Discussed in Thread: LP55231
您好!
我在下面的线程中询问了在将0xFF 写入复位寄存器时的 I2C 通信。
事实上、初始化过程可通过以下过程正常执行。
1) 1) EN 设置为低电平。
2) 2)将0xFF 写入复位寄存器。 *Continue while not returned
3) EN 设置为高电平。
4) 4) CHIP_EN 高电平。
在2中)、不返回 ACK。 这是否正常运行?
此致、
感谢您的答复。
我将检查内容。
但是、我提到了 Linux 源码树中包含的驱动程序、但似乎未返回 ACK。
请告诉我您对此有何看法。
此致、
感谢您的答复。
我检查了波形并确认返回了 ACK。 谢谢你。
至于最后一个问题、在查看 TI 创建的 Linux 驱动程序时、我会在 lp55xx_reset_device 函数中发现以下注释。
"/*此处不执行错误检查、因为复位后器件没有 ACK */"
github.com/.../leds-lp55xx-common.c
使用引导加载程序或 Linux、是否存在无法在复位时拾取 ACK 的情况?
请告诉我您对以上评论的看法。
此致、
感谢您的答复。
根据您的答案、最后一个脉冲不是 ACK 而是 STOP 条件、但在查看数据表和 I2C 规格后、
在 ACK 后、有一个 STOP 条件、并且 STOP 条件只能由主器件生成。
因此、在没有 ACK 的情况下生成一个停止条件的可能性不大。
我认为以下。
LP55231似乎在接收到复位并生成 ACK 后立即将 SDA 恢复为"H"。
我认为这样做的原因是 LP55231在生成 ACK 后立即执行复位。
在您看来、RESET 不符合 I2C 标准格式、但请告诉我您的看法。
此致、