新闻中心

EEPW首页 > 电源与新能源 > 设计应用 > 基于GUI软件配置UCD3138 数字电源PMBUS 命令

基于GUI软件配置UCD3138 数字电源PMBUS 命令

作者:时间:2013-08-04来源:网络收藏

可与UCD3138 配套使用的Fusion Digital Power Designer 软件拥有Graphical User Interface () 界面,用户可在其上编辑数据并通过对应的PMBUS 命令与UCD3138 的软件交互。在 界面中,用户可以灵活的增加 软件支持的PMBUS 命令,亦可以删除,因此大幅提高了GUI 的灵活性。本文通过两个实例,详细分析了如何增加和删除GUI 软件可以支持的PMBUS 命令。

1 GUI 软件及其配置功能

GUI 软件运行于用户计算机,可以借助PMBUS 总线与UCD3138 数字电源通信,完成配置、设计和监控等功能。用户可以灵活的在界面中添加PMBUS 命令支持的信息,亦可以在其中删除。

1.1 数字电源GUI 软件

图1 所示的是与UCD3138 数字电源芯片配套使用,可用来对基于UCD3138 数字电源进行配置,设计及监控的GUI 软件:Fusion Digital Power。该软件安装并运行于用户的计算机上,通过PMBUS 总线与UCD3138 的软件进行交互。

基于GUI软件配置UCD3138 数字电源PMBUS 命令

1:数字电源GUI 软件

该软件主要包含以下功能:

1)配置:通过PMBUS 命令对数字电源的参数进行配置,如输入电压的欠压保护点(对应的PMBUS 命令为VIN_ON 和VIN_OFF),输出电流的过流保护(对应的PMBUS 命令为IOUT_OC_FAULT_LIMIT)。

2)设计:主要是对数字电源的环路参数进行设计和模拟。

3)监控:可以实时监控输入电压,输入电流和温度等诸多信息。

4)状态:可以显示电源板输入和输出等状态,告知用户当前是否存在故障。

1.2 GUI 软件的配置功能

图1 所示的是GUI 的配置界面,其显示的每一条信息都对应一条PMBUS 命令,可以在用户计算机与UCD3138 之间传递。例如制造商的位置信息( MFR_LOCATION ) , 对应的便是PMBUS 命令MFR_LOCATION (0x9C),借助PMBUS 总线GUI 软件可以将UCD3138 中存贮的信息读取并显示出来。用户也可以自行重新编辑该信息,新信息会传递到UCD3138 芯片中并进行存储。

在实际应用中,不同的用户会关注不同的参数信息。为提高灵活性,GUI 软件支持用户添加和删除PMBUS 命令支持的参数信息。下面将详细介绍如何在GUI 中进行相关操作。

2 增加输出过流保护点信息

输出过流保护点对应的PMBUS 命令为IOUT_OC_FAULT_LIMIT,可以用来配置系统的输出过流保护点。本节详细介绍如何在GUI 中添加信息栏来接收用户的输入,同时修改UCD3138 的软件来对用户的输入信息进行处理并最终调整相应模拟比较器的阈值电压。

2.1 解除对PMBUS 命令的屏蔽

在UCD3138 软件中,定义了CMD_DCDC_NONPAGED 变量,保存了每一个PMBUS 命令的状态:用0和1 表征屏蔽还是未屏蔽, 如下代码所示。而“ 输出过流保护点” 对应的PMBUS 命令是IOUT_OC_FAULT_LIMIT (0x46),需要首先在UCD3138 的软件中去掉对该命令的屏蔽。

#define CMD_DCDC_NONPAGED

{0x00, 0x00,

0x00, 0x00,

0x00, 0x00,

0x00, 0x00,

0x02, 0x00,

0x00, 0x00,

0x00, 0x00,

0x00, 0x00,

0x00, 0x00,

0x00, 0xFE,

0x00, 0x00,

0x00, 0x00,

0x00, 0x00,

0x00, 0x40,

0x3D, 0x00,

0x00, 0x14

}

Fusion Digital Designer 提供了Bitmask tool,用来快速生成新的CMD_DCDC_NONPAGED 变量。具体操作如下。

1)如图2,在菜单“Tools”中点击Isolated GUI Bitmask Generator Tool;

基于GUI软件配置UCD3138 数字电源PMBUS 命令

2:运行Isolated GUI Bitmask Generator

2) 如图3,在随后打开的界面中,勾选“PMBUS_CMD_IOUT_OC_FAULT_LIMIT”,即使能命令IOUT_OC_FAULT_LIMIT。此时界面右侧的数据会有变化,该PMBUS 对应的位由0 变为了1。

基于GUI软件配置UCD3138 数字电源PMBUS 命令

3:勾选相应PMBUS 命令并复制输数据

3) 将图3 右侧红色图内的数据复制到UCD3138 的软件中,覆盖原来的CMD_DCDC_NONPAGED 变量。

2.2 GUI 中增加新的信息栏

将上述新生成的软件编译后烧录到UCD3138 中,此时通过Fusion Digital Designer 与UCD3138 建立连接后,会发现,GUI 中新增了一条信息输入栏,见图

4中的红色框。

该信息栏的名称为“IOUT_OC_FAULT_LIMIT”,代码为0x46,上述为固定信息,是由GUI 软件自身设定,用户无法修改。后面的“Value/Edit”值则用来输入用户设定的过流保护点。

基于GUI软件配置UCD3138 数字电源PMBUS 命令

4GUI 出现新增信息输入栏

2.3 UCD3138 软件中的数据处理

截止到上节,用户可以在GUI 中新增一条信息栏并输入数据,然后通过对应的PMBUS 命令,将该数据传输到UCD3138 中。但为了使UCD3138 接收该数据并调整相应的模拟比较器阈值,还需要修改UCD3138 的软件。

(1)、定义变量和结构体

如下代码,定义了新的结构体变量PMBUS_DCDC_CONFIG,包含成员iout_oc_fault_limit 和reserved。随后定义了该结构体类型的外部变量pmbus_dcdc_config 和pmbus_dcdc_config_translated,分别用于接收和保存GUI 传输到UCD3138 的数据和格式转换后的数据。

typedef struct

{

Uint16 iout_oc_fault_limit;

Uint16 reserved;

}PMBUS_DCDC_CONFIG; //must be even number of int16

EXTERN PMBUS_DCDC_CONFIG pmbus_dcdc_config[1];

EXTERN PMBUS_DCDC_CONFIG pmbus_dcdc_config_translated[1];

(2)、创建新的PMBUS 读与写函数

由于从GUI 传输过来的数据的首个字节是对应的PMBUS 命令的代码, 如0x46, 并会存放在pmbus_buffer[0]中。因此,可以在函数 pmbus_write_message()中创建新的case 语句,并返回一个新创建的函数pmbus_write_iout_oc_fault_limit(),该新函数用来处理接收到的数据。这样就实现了一旦UCD3138 接收到新的数据后,且该数据是用户重新编辑的“输出过流保护点”信息,则就会调用pmbus_write_iout_oc_fault_limit()函数进行处理。

switch (pmbus_buffer[0])

{

case 0x46:

return pmbus_write_iout_oc_fault_limit();

}

同时, 也需要在函数pmbus_read_message() 中创建新的case 语句, 并返回一个新创建的函数pmbus_read_iout_oc_fault_limit(),用来返回接收到的信息到GUI 中,以确保信息传输正确。这种读取后再返回验证的操作是PMBUS 协议的规定。

switch (pmbus_buffer[0])

{

case 0x46:

return pmbus_read_iout_oc_fault_limit();

}

(3)、数据处理函数的设计

c++相关文章:c++教程



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭