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:锁存/窗口模式和中断

Guru**** 679710 points
Other Parts Discussed in Thread: OPT3006
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/996231/opt3006-latched-windowed-mode-and-interrupts

器件型号:OPT3006

我目前正在通过轮询使用 OPT3006光传感器。  我正在通过锁存的中断模式研究如何使用它、以便在 LUX 值离开目标区域时接收中断。

我读取文档的方式是接收中断、引脚将保持高电平、直到我读取 R1状态寄存器。  这应清除寄存器中的 int 引脚和 FL 位。

我执行该操作。

我看到的是、一旦中断发生、R0的后续 I2C 读取请求将以 NAK 响应返回。  显然、我能够事先与器件进行通信、但在该中断之后、nada。

谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Robert、

    这种行为是不可预料的。 您将什么上拉电阻器用于 i2c 和 int? 如果在出现此问题时读取配置寄存器(0x01)会发生什么情况? INT 是否清除并且 i2c 是否再次开始工作?

    最棒的

    Alex

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们将10k Ω 电阻器用于内部上拉、而4.7K 用于 I2C 上拉。 到目前为止、I2C 通信一直是完美的。  一旦我接收到中断、我清除芯片上的中断(KL03)并唤醒主程序。  我在这里读取 R1。  FL 或 FH 为高电平、具体取决于条件。

    之后、我读取 R0。  R0读操作返回带有 NAK 的 I2C。   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您在多少个器件上看到了这种情况? 您是否能够在 EVM 上复制?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们只有一个 I2C 器件、因此来自 OPT3006。  

    该文档指出、在发送 SMBus 警报或读取配置寄存器(R1)之前、中断引脚将保持活动状态。 第15页的表4。  我们使用默认(低电平)作为中断引脚状态。

    我们确实接收到中断、但问题是清除该引脚。  一旦我们获得第一个中断、我们就无法在没有下电上电周期的情况下清除该引脚。  这与手册中所说的相反。

    正如我提到过的、我们的应用尝试读取 R1并接收 I2C NAK 响应、并且中断引脚保持有效。  我还尝试发送 SMBus 警报消息、结果相同。

    就 EVM 而言、它通过 USB 连接到 PC。  提供的程序(LabViewTM) 似乎按预期工作;我们在 R1显示屏上看到相应的标志。  不过、这就是我们尝试读取 R1之后的情况、因为它似乎永远不会自行生成中断。  使用连续开关、程序显示为拉取 R1状态、显示该状态、然后读取 R0。

    同样、我们配置器件、我们获取中断、在继续获取对 I2C 数据包的 NAK 响应时、我们永远不会使事情消失。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Robert、

    NACK 很奇怪、听起来像是问题与 INT 引脚无关、而是与一些 I2C 问题有关。 如果 I2C 读取结果为 NACK、则不会发生读取、并且不会清除 INT。 这是否意味着在首次数据就绪后、I2C 与器件的通信不再工作(无法读取或写入任何寄存器)?

    最棒的

    Alex

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、由于我无法与器件成功通信、INT 引脚保持高电平、并且我不断接收中断。 为了清除器件和有问题的引脚、需要对电路板进行下电上电。  重置 BTW 不会清除这种情况。

    是否有某种方法可以通过 EVM/LabView 程序跟踪进入/来自传感器的命令?  我想知道命令跟踪、以便能够重复对话。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Robert、

    我不知道 LabVIEW 中有什么简单的方法(如果通过 USB 将命令发送到 SM-USB-DIG 上的芯片、然后发送 i2c 命令、则 LabVIEW 是如此)、我建议使用示波器和 i2c 监控器从 I2C 线路获取命令、以此作为实现该目的的方法。

    最棒的

    Alex

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们已经修改了电路板上的电源、现在传感器的运行方式如文档所述。  感谢你的帮助。