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.

[参考译文] LM5066I:在每16ms 读取一次时、获取相同的电压和电流值多次、采样率过低?

Guru**** 2507255 points
Other Parts Discussed in Thread: LM5066I, LM5066IEVM-626

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/879439/lm5066i-getting-the-same-value-for-voltage-and-current-multiple-times-when-reading-every-16-ms-sample-rate-too-low

器件型号:LM5066I

您好!

从 LM5066i 读取电压和电流的更新值仍有问题、如以下文章 e2e.ti.com/.../866118中所述

理想情况下、一个 LM5066i 用于同时读取 VIN 和 IIN 的值。 然后、应每15.6ms 测量一次该 VIN 和 IIN 数据对、得出每秒~64个样本。 到目前为止、这种情况仍然正常。

  • 通过 I2C 读取 LM5066i 的 VIN 和 IIN 值总共需要~360us、这很好。
  • 此外、读数以非常精确的64Hz 的速率触发。 这由 STM32F072和计时器管理。
  • LM5066i 的分辨率似乎也非常好。 我在一个电气负载上施加了不同的负载电流、并且可以看到电流为465 mA、468 mA、490 mA、515 mA、537 mA、 563mA、582mA、607mA、632mA、658mA 等 这意味着、应该可以看到相对较小的电流变化。 此信息可能在以后很重要...

现在、我的问题是对 LM5066i 测量的值的响应非常差、例如在变化的电流上。 我将通过点击电阻器端子上的实验室电缆、手动将47欧姆电阻器与 LM5066i 的输出连接一段非常短的时间、以此进行仿真。

我用示波器记录了这个负载的短暂应用。

  • 在这里、您可以看到通道2上的输出电流为蓝色、使用电流钳位(Agilent N2782B、带宽限制为20MHz)进行测量。 在29.5V 输出电压下、这将导致628mA 的电流。 正如您在示波器的图像上看到的、这是正确的。
  • 通道1连接到微控制器上的引脚。 当通过 I2C 读取 LM5066i 的 IIN 值时、该引脚被置位、当读取完成时、该引脚被复位。 如您所见、单次测量花费~180us (正脉宽)、每15.6ms (15.44ms +~201us)启动一次、每秒可采集64个样本。

我预计 LM5066i 的值将是相同值的5 (或6)倍、因为通过 I2C 在5或6次读取期间会出现电流脉冲。 该电流脉冲的长度应~80ms。 这是完美的,但不幸的是,我得到了一些非常不同的东西...

现在、让我们看一下从 LM5066i 读取的实际值。 出于调试目的、我目前不会将 LM5066i 的 ADC 值转换为 SI 单位、而是输出原始 ADC 值。 如下图所示。

  • 我将得到两个具有绝对不合理值的步骤(34和47)。 ~650mA 的电流应导致 ADC 值~199。 当我长时间(~1s)连接电阻器时、显示正确
  • 此外、产生的时间周期比实际时间长得多。 红线不是实际的线、但所有测量值都显示为点。 当查看表单中的值时、这将更好地可见。 在这里、您可以看到实际读取的值数量

时间戳、单位为 ms

原始值 IIN

0 10.
16. 10.
32 10.
47. 10.
63. 10.
79 10.
94 34
110 34
125. 34
141. 34
157. 34
172. 34
188. 34
204. 34
219. 34
235 34
250 34
266 34
282. 34
297. 34
313. 34
329. 34
344. 34
360度 47.
375 47.
391. 47.
407. 47.
422 47.
438. 47.
454.1. 47.
469 47.
485 47.
500 47.
516. 47.
532. 47.
547 47.
563. 47.
579 47.
594 47.
610) 10.
625. 10.
641. 10.

我目前正在寻找可能导致 LM5066i 读取或提供错误值但无法找到任何值的任何内容。 平均值计算被关闭、所以读取 AVG_IIN 寄存器(0xDE)应该可以、对吧?

我不会说我的程序代码是完美的、但到目前为止、我找不到任何可能导致此问题的可怕错误。 此外、这无法解释完全错误的原始值。 时间戳的值是 STM32的不相关计数器、不能意外递增。 时间戳的时间也适合微控制器的实际运行时间。

如果一开始看不到任何问题、我也可以尝试使用评估板检查这一点。 但至少在硬件方面、一切都应该正常、正如数据表/应用手册等所示

提前感谢您、致以诚挚的问候、
Christian

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

    尊敬的 Christian:

    我将仔细检查它、明天回来。

    BR、Rakesh

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

    您好、Rakesh、

    我今天进行了另一项使用裸机设置的测试、以确保我运行的其他固件例程没有影响。 日志故事简短描述:我认为我的固件肯定有问题、我必须仔细检查。 但是、在使用 EN 引脚切换负载时、仍然会读取奇怪的值、并在切换期间读取电流值。

    测试设置为 NUCLEO-F072RB 和 LM5066IEVM-626评估板。 固件仅包含每~15.6ms 调用一次的计时器中断。 然后、该中断设置一个变量、该变量再次在主循环中触发 I2C 请求。 在这里、我读取寄存 器 READ_AVG_IIN (0xDE)、READ_IIN (0x89)和 MFR_READ_IIN (0xD1)、而最后两个寄存器显示的值相同。

    设置为0b0000到0b0100之间的任何值的平均值计算样本、因为在我的情况下、这似乎没有任何影响、但我仅在测试1中测试了这一点。 我还发现、值0b0000并不意味着禁用平均、而是使用2个样本进行平均。 0b0000引用1的指数、这意味着2^1 = 2。 我之前误解了这一点。

    在与 LM5066i 进行 I2C 通信前后、我再次打开一个关断引脚、并使用示波器测量电流。 我将测量进入 LM5066i 评估板的电流、而不仅仅是负载电流。 如果它对您有所帮助、我可以与您共享该固件。

    • 在测试1期间、我让负载电阻器始终连接到 LM5066i 输出、并且仅使用 EN 开关来开启和关闭负载。 正如预期的那样、您可以在开始时看到高电流、这是由 LM5066i 评估板上的输出电容器充电引起的。
    • 在测试2期间、我始终使能 EN 开关。 我通过将负载电阻器直接插入评估板上的实验室插头来连接和断开负载电阻器。
    • 未同时测量测试1和2、因此脉冲不完全相同

    结果如下:

     

    测试1 (不正常)

    打开 LM5066i 上的 EN 引脚
    输出端始终连接负载电阻器

    测试2 (正常)

    LM5066i 上的 EN 引脚始终开启
    (DIS)连接 LM5066i 输出上的负载电阻器

    以毫秒为单位的时间 IIN 平均值(0xDE) IIN 原始值(0xD1) IIN 平均值(0xDE) IIN 原始值(0xD1)
    0 8. 9. 10. 10.
    15. 8. 9.  9.  9.
    31. 8. 9.  9.  9.
    47. 8. 69  20.  20.
    62. 38. 22.  22.  18
    78 27. 21.  21.  21.
    93 21. 21.  23  23
    109. 22. 20.  21.  21.
    125. 22. 21.  20.  20.
    140 21. 23  22.  22.
    156. 22. 23  20.  22.
    172. 22. 18  24  24
    187. 22. 24  21.  22.
    203. 19. 12.  9.  9.
    218. 11. 11.  9.  9.
    2334 11. 10.  10.  10.
    250 9. 9.  9.  9.
    265 9. 9.  9.  9.
    281. 9. 9.  9.  9.

    测试2中的测量值对我来说是可以的。 我只需要弄清楚为什么我的实际固件中的这种读数显示了如此不同的值。 I2C 例程完全相同。

    测试1中的测量值仍然包含一些不太合理的值、这些值可能会通过平均值计算得到解释。 对我来说、这一点并不重要。

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

    尊敬的 Christian:

     您是否意味着测试2的结果符合您的例外情况。? 如果还有任何问题、请告诉我。

    BR、Rakesh

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

    您好、Rakesh、

    是的、根据测试2、一切都可以满足我的需求。

    不过、测试1读取的值还是很奇怪的、但这不会影响我的用例、所以对我来说是可以的。