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.

[参考译文] LDC1312:数据寄存器的重复读取

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1223333/ldc1312-repeated-read-of-data-register

器件型号:LDC1312
主题中讨论的其他器件: MSP430FR5994

传感人、您好!

我将 LDC1312电感数字转换器(I2C 接口为400kHz)与 MSP430FR5994结合使用。 出于带宽设计考虑、电路板的总线上各有四个转换器。 其中两个转换器将在单一通道上以4kHz 的频率进行采样。 对于两个通道中的每个通道、另外两个通道将以2kHz 的频率进行采样。

LDC1312数据表 I2C 寄存器读取时序图显示、首先通过写入 LDC1312来指定寄存器、然后再读取寄存器。 有人知道、要读取的寄存器的写入是否必须为每次读取而写入、还是只必须为后续读取而写入一次而无需寄存器写入?

此外、我的理解是、清除 INTB 信号的唯一方法是读取状态寄存器。 读取数据寄存器不会清除 INTB。 这不方便、4kHz 频率的读取也不可能。 数据表声明该器件能够实现13.3kHz 的最大读取速率。 如果用户希望将 INTB 用作 MSP430的中断、则此操作是不可能的、因为读取状态和数据寄存器所需的时间过长。 因此、只需在不使用 INTB 信号的情况下连续读取 LDC1312。 由于主器件和从器件之间存在异步时钟、这可能导致连续读取相同数据。 有人同意吗? 不太理想、但对于我的应用来说可以。

提前感谢、Dave

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

    Dave、您好!  

    遗憾的是、您无法在不发送寄存器地址的情况下读取 LDC1312的后续寄存器。  

    对于清除 INTB、有几种不同的方法发生这种情况、但清除 INTB 引脚的唯一寄存器读取是状态寄存器:  

    如果采样率为4kHz、两者之间的总抖动数为250us、而在400kHz I2C 下读取单个通道数据只需大约130us。 您的中断处理必须能够在100us 内作出响应、以便能够读取数据并在数据被覆盖之前提供一个缓冲区。 由于同一 MCU 上有多个器件、除非您可以 同时从不同的 I2C 总线读取数据、否则这一目标将变得更加难以实现。  

    此致、  

    贾斯汀·贝格尔

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

    感谢 Justin 的回复。

    很抱歉回复延迟。 我以前回答过、但做得不正确。 所以……

    简单来说、我们知道在不发送要读取的寄存器的情况下、读取不同于先前读取的(或后续)寄存器。 我的问题是、能否多次读取同一个寄存器而不指定要读取的寄存器? 能够做到这一点将节省总线事务处理时间。
    再次谢谢、Dave
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Dave、您好!  

    否 如果不再次指定寄存器地址、则无法读取同一寄存器。  

    此致、  

    贾斯汀·贝格尔

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

    再次感谢您、我迟到了。 一直在旅行。

    得到了您的响应、并将相应地进行编程。