我目前正在通过轮询使用 OPT3006光传感器。 我正在通过锁存的中断模式研究如何使用它、以便在 LUX 值离开目标区域时接收中断。
我读取文档的方式是接收中断、引脚将保持高电平、直到我读取 R1状态寄存器。 这应清除寄存器中的 int 引脚和 FL 位。
我执行该操作。
我看到的是、一旦中断发生、R0的后续 I2C 读取请求将以 NAK 响应返回。 显然、我能够事先与器件进行通信、但在该中断之后、nada。
谢谢你
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.
我目前正在通过轮询使用 OPT3006光传感器。 我正在通过锁存的中断模式研究如何使用它、以便在 LUX 值离开目标区域时接收中断。
我读取文档的方式是接收中断、引脚将保持高电平、直到我读取 R1状态寄存器。 这应清除寄存器中的 int 引脚和 FL 位。
我执行该操作。
我看到的是、一旦中断发生、R0的后续 I2C 读取请求将以 NAK 响应返回。 显然、我能够事先与器件进行通信、但在该中断之后、nada。
谢谢你
我们只有一个 I2C 器件、因此来自 OPT3006。
该文档指出、在发送 SMBus 警报或读取配置寄存器(R1)之前、中断引脚将保持活动状态。 第15页的表4。 我们使用默认(低电平)作为中断引脚状态。
我们确实接收到中断、但问题是清除该引脚。 一旦我们获得第一个中断、我们就无法在没有下电上电周期的情况下清除该引脚。 这与手册中所说的相反。
正如我提到过的、我们的应用尝试读取 R1并接收 I2C NAK 响应、并且中断引脚保持有效。 我还尝试发送 SMBus 警报消息、结果相同。
就 EVM 而言、它通过 USB 连接到 PC。 提供的程序(LabViewTM) 似乎按预期工作;我们在 R1显示屏上看到相应的标志。 不过、这就是我们尝试读取 R1之后的情况、因为它似乎永远不会自行生成中断。 使用连续开关、程序显示为拉取 R1状态、显示该状态、然后读取 R0。
同样、我们配置器件、我们获取中断、在继续获取对 I2C 数据包的 NAK 响应时、我们永远不会使事情消失。