您好!
我在下面的线程中询问了在将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.
您好!
我在下面的线程中询问了在将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 标准格式、但请告诉我您的看法。
此致、