您好!
从 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



