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.

[参考译文] UCD3138HSFBEVM-029:Fusion Digital Power Studio 中的奇怪输出电压测量

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/838057/ucd3138hsfbevm-029-strange-output-voltage-measurements-in-fusion-digital-power-studio

器件型号:UCD3138HSFBEVM-029

您好!

我正在使用 UCD3138HSFBEVM-029的库存固件(http://www.ti.com/tool/UCD3138FW-HSFB)、并尝试准确了解正在发生的情况。

当器件最初引导时、GUI 中的 Vout 为0V。然后、我打开器件、GUI 读取~128V (0xFFFF)。 如果我使用 DMM 读取实际的 PCB、电压就是我所期望的。 例如、如果我设置

#define VOUT_0 (5120) 

在 PMBus_topology.h 中、我将在物理输出上看到10V 的电压。 此外、我将看到~1V 进入节点 AD03处的 ADC (根据数据表、该数据表将比例参数表示为~0.101Vout)。

上图有几个需要注意的区域。 第一个方面是在初始启动后。 Vout 为0V。 接下来、打开 S1、启用输出。 短时间后、S1关闭、禁用输出。 我无法理解其中的几个方面。 为什么在开关翻转前后 Vout 会有所不同(0V 与12.3V)? 为什么 Vout ~128V 而不是10V? 为什么在禁用输出后输出电压摆幅如此之大?

我查看了 PMBus 的文档、并注意到有一个用于 VOUT_SCALE_LOOP 的命令。 这似乎只是一个 ADC 缩放问题、但我无法编辑此值。 PMBus 规范规定29h 将编辑此值。 使用 SMBus 工具、我尝试写入29h、它确认了命令、但不会发生任何情况。 此外、在检查 GUI 中 CMDS_DCDC_NONPAGED [MFR 21]参数下显示的命令时、29h 不会显示。 因此、我不确定应该如何调整刻度。 同样、我的固件和电路板都是库存的、除了输出电压之外、没有任何修改。

软件:Code Compose Studio 版本:6.2.0.00048和 Fusion Digital Power Studio 3.0.36

谢谢你

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

    我可以重复这个问题。  代码中的移位值似乎不正确。  我们有一个小位移、在代码中添加了 IIR 滤波器、但在某种程度上移位太高。  看一下代码、它是11、需要是3。  这使得滤波器上的时间常量很大、并且似乎会导致溢出。  这可能是信号上升和下降的原因、在电源关闭后需要很长时间才能衰减。  12伏是最小限制周期。   

    如果您在 system_defins.h 的此行中将11更改为3、则似乎可以解决以下问题:

    #define AVERAGE_VOUT_SHIFT (3)

    除了查看代码外、我没有检查副作用、也看不到任何副作用。  但没有保证。   

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

    你好,Bower 先生

    感谢您回来。

    我对您建议的代码进行了修改。 虽然这部分解决了问题、但似乎没有完全解决。 关闭输出后、它会衰减回0、没有异常。 但是、它实际上也会达到的值仍然太高。 它现在将达到~67V、而不是我编程到的8.5V。 也许我误解了这应该如何发挥作用?

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

    我似乎有大约10个错误。  实际上、我认为我的关闭时间是8。  如果我们将67除以8、我们得到8.375、这接近于。  因此、如果您转到 PMBus_topology.c 文件、并将红色填充添加到 PMBus_Read_Vout 中、您应该得到正确的结果。

     

    //================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
    // PMBus_Read_Vout ()
    //================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
    内联 UINT8 PMBus_Read_Vout (void)

    uint16 Vout_ADC12_value;
    struct qnote Vout_adc_scaler ={VOUT_adc_TO_liter_scaler、VOUT_adc_TO_liter_shift - 16};
    Vout_ADC12_value = qnote_Int16_m倍增 适合(Vout_adc_scaler、adc_averal.Vout  >> Average_Vout_shift、MAX_VALE_FIT_16_BITS);
    PMBus_read_two_byte_handler (Vout_ADC12_value);
    返回0;

    除了至少非常接近正确的答案之外、这还使您能够独立于 Vout 上的调节来调整小滤波器的时间常数。   

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

    现在、我已经实现了您在该线程中建议的两个更改。 我的问题现已解决。 GUI 现在显示的输出电压为8.352V、误差范围合理。 短时间后、它会衰减至0.0V

    谢谢你