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.

[参考译文] INA219:分流电压、连续模式

Guru**** 2528390 points
Other Parts Discussed in Thread: INA219

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

https://e2e.ti.com/support/amplifiers-group/amplifiers/f/amplifiers-forum/849285/ina219-shunt-voltage-continuous-mode

器件型号:INA219

我的理解是、当在默认模式"分流和总线、连续"下运行时、INA219将读取所需的总线电压样本数(1、2、4、... 128、基于 BADC)、然后在分流电压上切换并读取所需的样本数(1、2、4、... 128基于南共体)。  是这样吗?

在读取分流电压时、可以安全地假设总线未读取任何样本?  ...还有相反的情况?

我有一个周期性低功耗信号、在该信号中、我可以获取许多分流电压样本并在许多周期内获得平均值。  然后获取相同总线电压信号的相同样本数并得到平均值。  然后使用2个平均值来计算平均功耗。   

如果我将 INA219设置为仅连续读取分流电压并将其设置为128个样本、它是否仅读取分流电压样本(因此、如果在68ms 内读取、则不会丢失任何样本)?

如果我只读取分流电压、如何知道转换何时完成(因为这是总线电压寄存器的一部分)?

基本上、我需要知道读取序列、以便在分流电压连续模式下正确读取分流电压。

非常感谢。

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

    您好、Tom、

    欢迎访问 TI E2E 论坛! 感谢您提出问题。

    当 INA219读取分流电压时、内部 ADC 仅测量分流电压、并在其转换时间/平均值(由南共体设定)结束时完成。 然后将最终平均值发送到分流电压寄存器、主机可在其中通过通信总线读取该值。

    只有在 ADC 完成分流电压测量后、它才会移动到测量总线电压。

    INA219 ADC 是 Δ-Σ、因此即使平均值设置为<=1、仍会记录许多采样。 因此、如果 SADC = 1000b (转换时间= 532us)、ADC 将以500kHz (+-30%、请参阅第8.4节)的频率获取许多子样本、直到532us 转换时间完成。 一旦发生这种情况、分流电压寄存器中的单个分流电压测量值就会更新。 如果平均数的数量被设定为 N、那么这个过程会自动重复 N 次、并且最终的 VSHUNT 寄存器值是 N 个采样的平均值。

    该过程与总线电压完全相同。 当 INA219处于分流和总线连续模式时、在测量和所有平均值完成前、它永远不会从分流电压切换到总线电压(反之亦然)。

    如果 INA219处于分流电压连续模式(MODE = 101b)、则不应转换任何总线电压测量值。 完成一次测量后、它将开始转换另一次分流电压测量。

    --

    可能有几种不同的方法来计算功率。 正如您所说的、您可以获取分流电压的许多平均值、然后重复使用总线电压、然后在整个时间内进行平均功耗组合。 您可以通过在累加分流电压值的同时将工作模式更改为仅分流(MODE = 101b)、然后在获得总线电压值的同时将模式更改为仅总线(MODE = 110b)来改进这一点。 注意:此方法需要将测量值存储在主机存储器中、以便对其进行后处理并确定功率。

    另一种方法是对器件进行编程以计算功率。 这将移动器件内部的数学运算。 您可以在分流和总线连续模式(MODE = 111b)下运行器件、并对校准寄存器进行编程、以便计算功率。 这将为您提供更快的功率测量、从而更快地检测过功率事件、以及可能不会出现在之前方法中的事件

    请注意、您可以使用 CNVR 位(寄存器02h 的位1)来确定何时将新值上传到测量寄存器。 如果 CNVR = 1、则新数据已上载到寄存器中。 您可以通过将新模式写入操作模式位或从功率/总线电压寄存器中读取来清除该位。 请注意、数据表中解释 CNVR 位的部分(第8.6.3.2节)没有提到它可以通过读取总线电压寄存器来清除、但应该这样做。 我们将着手更新此内容。

    此致、

    Peter Iliya

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

    谢谢 Peter。  您的描述非常有帮助。

    在连续分流电压模式下、我仍然不清楚如何知道转换是完成的。  由于 CNVR 位在总线电压寄存器中、但在分流电压模式下、我不一定要读取总线电压、因此 CNVR 在分流电压模式下是否仍然得到正确设置? …并通过读取总线电压寄存器来检查分流电压转换的状态来清除?

    我提出的原因是,在开始转换后,CNVR 位设置所需的时间内,我发现了奇怪的行为。

    我以以下模式运行:

    1. 将 INA219设置为并联连续模式、将南共体设置为128个采样(配置寄存器= 0x01FD)
    2. 轮询总线电压寄存器中的 CNVR 位、直到该位置位
    3. 读取并联电压寄存器->存储到主机
    4. 将 INA219模式更改为总线连续模式、将 BADC 设置为128个采样(配置寄存器= 0x79E)
    5. 轮询总线电压寄存器中的 CNVR 位、直到该位置位
    6. 从总线电压寄存器中捕获 BD12:BD0 ->存储到主机

    我无限重复1-6、计算每个周期后主机上的功率。

    奇怪的行为是:

      a:在步骤1-2之间、当读取分流电压时、我看到 CNVR 等待(轮询)时间为21–65ms、此时转换时间应为~68.10ms。

      b. 在步骤4-5之间、当读取总线电压时、我看到 CNVR 等待(轮询)时间为71–132ms、此时转换时间应为~68.10ms。

    “A”似乎发生得太快了,我不相信分流电压寄存器中的值是真的有效且准备就绪的。   很多时候、尽管经过的时间远远小于68.1ms、但在我第一次检查时已经设置了 CNVR 位。

    “B”似乎有时需要太长的时间,但这一点不太重要,因为我可以看到 CNVR 位在多次检查为0后从0变为1。  

    非常感谢您对如何正确处理此序列进行了一些澄清。

    谢谢、

    Tom  

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

    您好-

    作为后续行动、我运行了一个实验、其中我为每个运行设置了时间戳、此外、我没有为每个运行模式读取1次分流电压或总线电压、而是读取5次。  我发现、在轮询 CNVR 位时、更改运行模式后的前1-2次读取可靠地没有超过预期的~68.1ms。  大多数读取时间少于68.1ms、但为~65ms、因此这可能只是测量误差。

    这些数据有点复杂、因为实际上、总线上有4个 INA219器件在监控电路板上的4个电压电源。  因此、我的过程是:

    1. 将 INA219 #1、#2、#3和#4设置为并联连续模式(128采样模式) (配置:0x01fd)
    2. 在#1 (3.3V 电源监视器)上读取并联电压(首先轮询 CNVR 位) 5次
    3. 在#2 (0.8V 电源监视器)上读取并联电压(首先轮询 CNVR 位) 5次
    4. 读取3 (1.8V 电源监控器) 上的并联电压(首先轮询 CNVR 位) 5次
    5. 在4 (0.65V 电源监控器)上读取并联电压(首先轮询 CNVR 位) 5次
    6. 将 INA219 #1、#2、#3和#4设置为总线连续模式(128采样模式)(配置:0x079e)
    7. 在#1 (3.3V 电源监视器)上读取总线电压(首先轮询 CNVR 位) 5次
    8. 读取2 (0.8V 电源监控器) 上的总线电压(首先轮询 CNVR 位) 5次
    9. 读取3 (1.8V 电源监控器) 上的总线电压(首先轮询 CNVR 位) 5次
    10. 在4 (0.65V 电源监控器)上读取总线电压(首先轮询 CNVR 位) 5次
    11. 无限期重复步骤1-10。

    上述内容将被捕获并存储在主机中。

    我附加了一个日志文件、其中显示了序列和时间日志。

    请告诉我您如何解读此数据。

    谢谢、

    Tom  

    e2e.ti.com/.../SupplyMonitorLog.pdf

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

    您好-

    我应该澄清一点、在日志中、当它指出:

    "轮询寄存器0x02的位0x02 "

    它使用寄存器0x02中的值与0x02进行与操作、以便只检查 CNVR 位(寄存器中的位1)。

    谢谢、

    Tom  

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

    嗨、Tom、

    感谢您提供所有详细信息。 这肯定有助于理解这个问题。

    我今天或明天会回复您。

    此致、

    Peter Iliya

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

    嗨、Tom、

    您能否澄清一下您在日志中看到 CNVR 位变为高电平的确切位置? "描述"列中是否有文本?  

    连续读取之间的<68.1ms 意味着什么? 您是否认为连续两次读取的 CNVR 位= 1?

    最棒的

    -Peter

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

    尊敬的 Peter:

    每个"读取..."中列出的时钟时间 线是指读取分流电压或总线电压的实际时间。  

    基本上、我们已经轮询了 CNVR 位、发现 CNVR 位= 1、然后读取分流或总线寄存器并记录了时间。  作为一个实验、我对每个 INA219重复这个过程5次(等待 CNVR 位= 1、读取并联电压、记录时间、等待 CNVR 位= 1、读取并联电压记录时间、... X5)。  

    连续读取之间的间隔小于68.1ms、这意味着对于相同的器件和工作模式、我们:

    1. 读取 CNVR 位并看到它= 1。
    2. 读取分流电压
    3. 读取 CNVR 位并看到它= 1
    4. 读取分流电压

    由于我们每次转换运行128个样本、因此根据数据表、我们预计转换之间的时间应为~68.1ms。  但是、在我以红色显示<68.1ms 的情况下、这意味着第一次转换(#1/2)和后续转换( #3/4)之间的时间远小于预期的68.1ms。

    在某些情况下、这是设置模式后的第一次读取、我预计设置操作模式位(应清除 CNVR 位)和第一次转换完成的时间也应~68.1ms。  因此、当 Op Mod 设置和 CNVR 位被设置之间的时间小于68.1ms 时、我也会突出显示这些读取。  这在问题上不太常见。

    基本上、CNVR 位似乎不是设置模式后前2次读取中完成转换的可靠标志、因为在与之前的读取相对的时间内、CNVR 位通常设置得太早。

    谢谢、

    Tom

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

    嗨、Tom、

    感谢您的澄清。

    我感到奇怪的是、当 INA219读取总线电压时、检测第一个高 CNVR 需要更长时间。

    总之、我认为我理解这里发生的情况。 正确的是、在连续模式下运行时、前两个低电平到高 CNVR 转换不是转换时间的可靠指示。 您可能会发现 CNVR 处于高电平、但这可能来自之前的数据采集。 一旦通过读取总线电压寄存器将其清除、当前数据转换周期仍在进行中、因此下一个 CNVR 高电平将在<转换时间发生。 因此、当通过读取总线电压寄存器来清除 CNVR 时、检测到的前两个低电平到高电平 CNVR 转换可能不会在设定的转换时间发生。这将解释除设置配置运行模式后的首次 CNVR 检测之外的所有错误。

    用户会认为设置配置寄存器与读取中的总线电压不同、更改配置寄存器会复位数据捕获、但实际上我不确定这一点、数据表也没有提到这一点。 实际上、数据表显示、CNVR 实际上只是为了帮助实现器件的触发模式(见第10页)。 向配置寄存器写入任何连续模式时、器件可能会在切换模式之前完成当前数据转换、因此在写入配置寄存器后、与第一个 CNVR 转换相关的实际数据可能不可靠。 这将解释您的其余错误。

    尽管如此、您仍可以保留当前代码、并且仍然使用收集的所有数据、但设置配置寄存器后与首次 CNVR 转换关联的数据除外、因为这可能仍是来自先前配置设置的数据。

    您还可以考虑使用触发模式来获得单次触发测量。

    如果您仍有疑问、请告诉我。

    此致、

    Peter

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

    谢谢 Peter。  我将所有内容移至触发模式、现在每个样本的持续时间都符合预期。  

    我非常感谢您的快速回答和详细回答。

    Tom  

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

    好消息!

    如果您有其他问题、请返回论坛。

    最棒的

    -Peter