当前位置:首页 > 电源 > 数字电源
[导读]摘 要可与数字电源UCD3138 配套使用的Fusion Digital Power Designer 软件拥有Graphical User Interface (GUI) 界面,用户可在其上编辑数据并通过对应的PMBUS 命令与UCD31

摘 要

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

1 数字电源GUI 软件及其配置功能

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

1.1 数字电源GUI 软件

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

 

图 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;

 

图 2:运行Isolated GUI Bitmask Generator

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

 

图 3:勾选相应PMBUS 命令并复制输数据[!--empirenews.page--]

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

2.2 GUI 中增加新的信息栏

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

4中的红色框。

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

 

图 4:GUI 出现新增信息输入栏

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)、数据处理函数的设计

◎ 接收数据处理函数pmbus_write_iout_oc_fault_limit()

该函数用来接收来自GUI 的数据,并将该数据的格式由Linear Data Format 转换为浮点型数据,最后强制转换为整数型赋给模拟比较器。关键代码分析如下:

上文提到,来自GUI 的数据的首字节是对应的PMBUS 命令代码。随后的两个字节便是Linear Data 格式的数据。将该数据保存在pmbus_dcdc_config 结构体的iout_oc_fault_limit 成员中,如下代码所示。

Pmbus_dcdc_config[0].iout_oc_fault_limit = pmbus_buffer[1] + (pmbus_buffer[2] << 8);

下面代码是调用格式转换函数linear11_to_float(),将上面接收到的数据转换为浮点型数据。

local_variable = linear11_to_float(pmbus_dcdc_config[0].iout_oc_fault_limit);

由于转换后的浮点型数据与最终需要赋给模拟比较器阈值的数据存在一定的比例,需要一个转换系数(scaler)。缩放后存放在pmbus_dcdc_config_tanslated 结构体的iout_oc_fault_limit 成员中。

pmbus_dcdc_config_translated[0].iout_oc_fault_limit = (int)(local_variable*2.54);

最终该值赋给模拟比较器的阈值,用来做快速保护。

FaultMuxRegs.ACOMPCTRL0.bit.ACOMP_B_THRESH=pmbus_dcdc_config_translated[0].iout_oc_fault_limit;

◎ 返回数据处理函数pmbus_read_iout_oc_fault_limit

该函数用来返回UCD3138 软件接收的数据到GUI 中,以使GUI 将写入和读取的数据做比较(比较判断等操作在GUI 软件中完成) , 保证数据正确。该函数调用pmbus_read_two_byte_handler() 将保存在Pmbus_dcdc_config[0].iout_oc_fault_limit 的数据返回到GUI。关键代码如下:

pmbus_read_two_byte_handler(pmbus_dcdc_config[0].iout_oc_fault_limit);[!--empirenews.page--]

而在pmbus_read_two_byte_handler()函数中的关键代码为:

pmbus_buffer[1] = value >> 8;

pmbus_buffer[0] = value & 0xff;

pmbus_buffer 字节中的数据会最终上传到GUI 软件中。

(4)、数据转换函数的设计

◎ Linear Data Format 数据格式

上文提到,来自GUI 的数据遵循PMBUS 协议,其格式为Linear Data Format。如图5,其低11 位为“尾数”,以补码形式保存;高5 位为“指数”,亦是以补码形式保存。该数据与实际数据的关系为:X=Y× 2N 。

 

图 5:PMBUS 协议中的Linear Data Format

◎ ARM 编译器中的浮点型数据

如图6,为ARM 编译器中对单精度浮点型数据的存储格式。其最高位为符号位,接下的8 位为指数,后面的23 位为尾数。在编译器中定义的浮点数据,将以该格式存储在硬件存储空间。

 

图 6:ARM 编译器中的浮点型数据格式

◎ 定义结构体和联合体

如下, 定义了结构体FLOAT_ELEMENTS , 用以保存上文提到的浮点型数据。还定义了联合体FLOAT_OPEN,成员包括浮点型数据“all”和结构体类型数据“bit”,用以保存转换完毕的浮点型数据。

struct FLOAT_ELEMENTS {

Uint32 SIGN:1;

Uint32 EXPONENT:8;

Uint32 MANTISSA:23;

};

union FLOAT_OPEN {

float all;

struct FLOAT_ELEMENTS bit;

Uint32 word;

};

◎ 转换函数linear11_to_float()

该函数完成将来自GUI 的Linear Data Format 格式的数据转换为浮点型数据,并作为返回值返回。包含的关键代码如下。

定义变量,包括整型“mantissa”和“exponent”及结构体变量“final”。

int16 mantissa, exponent;

union FLOAT_OPEN final;

下面代码完成对输入参数的分析,并扩展到16 位。如果输入参数的尾数是负值,前5 位补1;如果是正值,前5 位补0。

if(linear11 & 0x0400)// if mantissa is negative

{ mantissa = linear11 | 0xfc00; //put it in there at minimum mantissa }

else

{ mantissa = linear11 & 0x07FF; }

下面代码首先是将mantissa 左移16 位(16+16=32),以使其数据长度符合单精度浮点型数据的长度,然后exponent 减去16,保证了原始数据的大小没有变化。

final.all = ((int32)mantissa) << 16; //set it up for minimum exponent.

exponent = (linear11 >> 11) - 16; //get exponent to match shifted value

下面代码首先判断单精度浮点型的指数是否为负。如果是负,则改写其为零,原因是对应的“输出过流保护点”不会出现负值;如果是正,则将指数信息放置在单精度浮点型数据的指数位置。

if((final.bit.EXPONENT + exponent) < 0)//if it's so low it will wrap

{ final.bit.EXPONENT = 0; }

else

{ final.bit.EXPONENT = final.bit.EXPONENT + exponent; }

上述操作完毕后,final.all 中就保存了转换后的浮点型数据,因此可以作为返回值返回。

return final.all;

2.4 操作流程图

上述所有操作的流程图见图7。

 

图 7:UCD3138 接收信息流程图

3 删除GUI 信息栏

 

图 8:删除GUI 中的信息栏

此时重新编译软件并下载到UCD3138 后,GUI 中将不再会出现该信息栏,见图4。但UCD3138 软件中依然保留有对该PMBUS 命令的接收、转换和处理等函数,亦需要删除,在此不再赘述。

4 小结

通过上文两个实例的分析可知,用户在GUI 软件中可以灵活的添加或删除PMBUS 命令对应的信息栏,提高了GUI 的灵活性。该操作主要包括PMBUS 命令的使能或屏蔽及UCD3138 软件添加或删除相应处理函数等两大部分。[!--empirenews.page--]

5 参考文献

1. UCD3138 datasheet, Texas Instruments Inc., 2011

2. PMBus_Specification_Part_I_Rev_1, 2007

3. PMBus_Specification_Part_II_Rev_1, 2010

4. ARM Optimizing C/C++ Compiler, v4.9, User's Guide, Texas Instruments, 2011

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

上海2024年4月22日 /美通社/ -- 恶性的攻击和意外事件总是防不胜防,提前部署灾备方案可以在遭遇意外时尽可能减少企业损失。那么面对无处不在的勒索病毒和潜在风险,为什么依然有很多企业还会遭遇数据丢失?

关键字: 勒索病毒 软件 电脑 群晖数据

SAP(思爱普)近日发出的裁员计划,不仅涉及全球范围内约8000个职位,更是在中国区造成了近1500名正式员工和合同工不续的情况。

关键字: 软件 互联网

上海2024年4月17日 /美通社/ -- 每年4月17日是世界血友病日。今年,世界血友病日以"认识出血性疾病,积极预防和治疗"为主题,呼吁关注所有出血性疾病,提升科学认知,提高规范化诊疗水平,让每一位出血性疾病患者享有...

关键字: VII 动力学 软件 BSP

德国埃朗根2024年4月16日 /美通社/ -- Elektrobit 今日宣布推出 EB zoneo GatewayCore——首款支持、配置和集成现代微控制器新一代硬件加速器的软件产品,可应用于先进的汽车电子/电气架...

关键字: 汽车 软件 硬件加速 通信网络

Windows Embedded Compact 7(简称WinCE)是一种专为嵌入式系统设计的操作系统,具有体积小、效率高、可定制性强的特点。在WinCE中设置自动运行软件,通常是为了满足设备在启动后自动执行特定任务的...

关键字: 嵌入式系统 软件 操作系统

【2024年3月7日,德国慕尼黑讯】在竞争激烈的全球半导体市场,制造商一直在努力缩短产品上市时间。同时,他们对流畅、高分辨率图形显示器的需求也在日益增长。为了满足这些市场需求,英飞凌科技股份公司(FSE代码:IFX /...

关键字: MCU GUI 图形显示器

业内消息,日前欧洲软件巨头SAP宣布了一项重组计划推动人工智能增长,该计划将涉及大约8000名员工的岗位调整,这些员工将被纳入自愿休假计划和内部再培训措施,即鼓励员工自愿离职或进行内部转岗。

关键字: AI 重组 软件 裁员 SAP

2023年11月27日,中国-意法半导体推出了TSC1641精密数字电流、电压和功率监测器芯片,该监测器具有高精度输入通道,支持MIPI I3C高级总线接口。

关键字: 数字电源 电源逆变器 直流电源

随着科技的不断发展,电源技术也在不断地进步。从早期的线性电源到现在的开关电源,再到近年来逐渐兴起的数字电源技术,电源技术的发展为各种电子设备提供了更加稳定、高效、节能的供电保障。本文将对数字电源技术进行详细的介绍,并探讨...

关键字: 数字电源 电源

2023年11月1日,中国 —— 服务多重电子应用领域、全球排名前列的半导体公司意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)将于11月2日在台北文创举办首届ST Taiwan...

关键字: 碳化硅 数字电源 物联网
关闭
关闭