當(dāng)前位置:首頁(yè) > 電源 > 數(shù)字電源
[導(dǎo)讀]摘 要可與數(shù)字電源UCD3138 配套使用的Fusion Digital Power Designer 軟件擁有Graphical User Interface (GUI) 界面,用戶可在其上編輯數(shù)據(jù)并通過(guò)對(duì)應(yīng)的PMBUS 命令與UCD31

摘 要

可與數(shù)字電源UCD3138 配套使用的Fusion Digital Power Designer 軟件擁有Graphical User Interface (GUI) 界面,用戶可在其上編輯數(shù)據(jù)并通過(guò)對(duì)應(yīng)的PMBUS 命令與UCD3138 的軟件交互。在GUI 界面中,用戶可以靈活的增加GUI 軟件支持的PMBUS 命令,亦可以刪除,因此大幅提高了GUI 的靈活性。本文通過(guò)兩個(gè)實(shí)例,詳細(xì)分析了如何增加和刪除GUI 軟件可以支持的PMBUS 命令。

1 數(shù)字電源GUI 軟件及其配置功能

數(shù)字電源GUI 軟件運(yùn)行于用戶計(jì)算機(jī),可以借助PMBUS 總線與UCD3138 數(shù)字電源通信,完成配置、設(shè)計(jì)和監(jiān)控等功能。用戶可以靈活的在界面中添加PMBUS 命令支持的信息,亦可以在其中刪除。

1.1 數(shù)字電源GUI 軟件

圖1 所示的是與UCD3138 數(shù)字電源芯片配套使用,可用來(lái)對(duì)基于UCD3138 數(shù)字電源進(jìn)行配置,設(shè)計(jì)及監(jiān)控的GUI 軟件:Fusion Digital Power。該軟件安裝并運(yùn)行于用戶的計(jì)算機(jī)上,通過(guò)PMBUS 總線與UCD3138 的軟件進(jìn)行交互。

 

圖 1:數(shù)字電源GUI 軟件

該軟件主要包含以下功能:

1)配置:通過(guò)PMBUS 命令對(duì)數(shù)字電源的參數(shù)進(jìn)行配置,如輸入電壓的欠壓保護(hù)點(diǎn)(對(duì)應(yīng)的PMBUS 命令為VIN_ON 和VIN_OFF),輸出電流的過(guò)流保護(hù)(對(duì)應(yīng)的PMBUS 命令為IOUT_OC_FAULT_LIMIT)。

2)設(shè)計(jì):主要是對(duì)數(shù)字電源的環(huán)路參數(shù)進(jìn)行設(shè)計(jì)和模擬。

3)監(jiān)控:可以實(shí)時(shí)監(jiān)控輸入電壓,輸入電流和溫度等諸多信息。

4)狀態(tài):可以顯示電源板輸入和輸出等狀態(tài),告知用戶當(dāng)前是否存在故障。

1.2 GUI 軟件的配置功能

圖1 所示的是GUI 的配置界面,其顯示的每一條信息都對(duì)應(yīng)一條PMBUS 命令,可以在用戶計(jì)算機(jī)與UCD3138 之間傳遞。例如制造商的位置信息( MFR_LOCATION ) , 對(duì)應(yīng)的便是PMBUS 命令MFR_LOCATION (0x9C),借助PMBUS 總線GUI 軟件可以將UCD3138 中存貯的信息讀取并顯示出來(lái)。用戶也可以自行重新編輯該信息,新信息會(huì)傳遞到UCD3138 芯片中并進(jìn)行存儲(chǔ)。

在實(shí)際應(yīng)用中,不同的用戶會(huì)關(guān)注不同的參數(shù)信息。為提高靈活性,GUI 軟件支持用戶添加和刪除PMBUS 命令支持的參數(shù)信息。下面將詳細(xì)介紹如何在GUI 中進(jìn)行相關(guān)操作。

2 增加輸出過(guò)流保護(hù)點(diǎn)信息

輸出過(guò)流保護(hù)點(diǎn)對(duì)應(yīng)的PMBUS 命令為IOUT_OC_FAULT_LIMIT,可以用來(lái)配置系統(tǒng)的輸出過(guò)流保護(hù)點(diǎn)。本節(jié)詳細(xì)介紹如何在GUI 中添加信息欄來(lái)接收用戶的輸入,同時(shí)修改UCD3138 的軟件來(lái)對(duì)用戶的輸入信息進(jìn)行處理并最終調(diào)整相應(yīng)模擬比較器的閾值電壓。

2.1 解除對(duì)PMBUS 命令的屏蔽

在UCD3138 軟件中,定義了CMD_DCDC_NONPAGED 變量,保存了每一個(gè)PMBUS 命令的狀態(tài):用0和1 表征屏蔽還是未屏蔽, 如下代碼所示。而“ 輸出過(guò)流保護(hù)點(diǎn)” 對(duì)應(yīng)的PMBUS 命令是IOUT_OC_FAULT_LIMIT (0x46),需要首先在UCD3138 的軟件中去掉對(duì)該命令的屏蔽。

#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,用來(lái)快速生成新的CMD_DCDC_NONPAGED 變量。具體操作如下。

1)如圖2,在菜單“Tools”中點(diǎn)擊Isolated GUI Bitmask Generator Tool;

 

圖 2:運(yùn)行Isolated GUI Bitmask Generator

2) 如圖3,在隨后打開(kāi)的界面中,勾選“PMBUS_CMD_IOUT_OC_FAULT_LIMIT”,即使能命令I(lǐng)OUT_OC_FAULT_LIMIT。此時(shí)界面右側(cè)的數(shù)據(jù)會(huì)有變化,該P(yáng)MBUS 對(duì)應(yīng)的位由0 變?yōu)榱?。

 

圖 3:勾選相應(yīng)PMBUS 命令并復(fù)制輸數(shù)據(jù)[!--empirenews.page--]

3) 將圖3 右側(cè)紅色圖內(nèi)的數(shù)據(jù)復(fù)制到UCD3138 的軟件中,覆蓋原來(lái)的CMD_DCDC_NONPAGED 變量。

2.2 GUI 中增加新的信息欄

將上述新生成的軟件編譯后燒錄到UCD3138 中,此時(shí)通過(guò)Fusion Digital Designer 與UCD3138 建立連接后,會(huì)發(fā)現(xiàn),GUI 中新增了一條信息輸入欄,見(jiàn)圖

4中的紅色框。

該信息欄的名稱(chēng)為“IOUT_OC_FAULT_LIMIT”,代碼為0x46,上述為固定信息,是由GUI 軟件自身設(shè)定,用戶無(wú)法修改。后面的“Value/Edit”值則用來(lái)輸入用戶設(shè)定的過(guò)流保護(hù)點(diǎn)。

 

圖 4:GUI 出現(xiàn)新增信息輸入欄

2.3 UCD3138 軟件中的數(shù)據(jù)處理

截止到上節(jié),用戶可以在GUI 中新增一條信息欄并輸入數(shù)據(jù),然后通過(guò)對(duì)應(yīng)的PMBUS 命令,將該數(shù)據(jù)傳輸?shù)経CD3138 中。但為了使UCD3138 接收該數(shù)據(jù)并調(diào)整相應(yīng)的模擬比較器閾值,還需要修改UCD3138 的軟件。

(1)、定義變量和結(jié)構(gòu)體

如下代碼,定義了新的結(jié)構(gòu)體變量PMBUS_DCDC_CONFIG,包含成員iout_oc_fault_limit 和reserved。隨后定義了該結(jié)構(gòu)體類(lèi)型的外部變量pmbus_dcdc_config 和pmbus_dcdc_config_translated,分別用于接收和保存GUI 傳輸?shù)経CD3138 的數(shù)據(jù)和格式轉(zhuǎn)換后的數(shù)據(jù)。

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)、創(chuàng)建新的PMBUS 讀與寫(xiě)函數(shù)

由于從GUI 傳輸過(guò)來(lái)的數(shù)據(jù)的首個(gè)字節(jié)是對(duì)應(yīng)的PMBUS 命令的代碼, 如0x46, 并會(huì)存放在pmbus_buffer[0]中。因此,可以在函數(shù) pmbus_write_message()中創(chuàng)建新的case 語(yǔ)句,并返回一個(gè)新創(chuàng)建的函數(shù)pmbus_write_iout_oc_fault_limit(),該新函數(shù)用來(lái)處理接收到的數(shù)據(jù)。這樣就實(shí)現(xiàn)了一旦 UCD3138 接收到新的數(shù)據(jù)后,且該數(shù)據(jù)是用戶重新編輯的“輸出過(guò)流保護(hù)點(diǎn)”信息,則就會(huì)調(diào)用pmbus_write_iout_oc_fault_limit()函數(shù)進(jìn)行處理。

switch (pmbus_buffer[0])

{

case 0x46:

return pmbus_write_iout_oc_fault_limit();

}

同時(shí), 也需要在函數(shù)pmbus_read_message() 中創(chuàng)建新的case 語(yǔ)句, 并返回一個(gè)新創(chuàng)建的函數(shù)pmbus_read_iout_oc_fault_limit(),用來(lái)返回接收到的信息到GUI 中,以確保信息傳輸正確。這種讀取后再返回驗(yàn)證的操作是PMBUS 協(xié)議的規(guī)定。

switch (pmbus_buffer[0])

{

case 0x46:

return pmbus_read_iout_oc_fault_limit();

}

(3)、數(shù)據(jù)處理函數(shù)的設(shè)計(jì)

◎ 接收數(shù)據(jù)處理函數(shù)pmbus_write_iout_oc_fault_limit()

該函數(shù)用來(lái)接收來(lái)自GUI 的數(shù)據(jù),并將該數(shù)據(jù)的格式由Linear Data Format 轉(zhuǎn)換為浮點(diǎn)型數(shù)據(jù),最后強(qiáng)制轉(zhuǎn)換為整數(shù)型賦給模擬比較器。關(guān)鍵代碼分析如下:

上文提到,來(lái)自GUI 的數(shù)據(jù)的首字節(jié)是對(duì)應(yīng)的PMBUS 命令代碼。隨后的兩個(gè)字節(jié)便是Linear Data 格式的數(shù)據(jù)。將該數(shù)據(jù)保存在pmbus_dcdc_config 結(jié)構(gòu)體的iout_oc_fault_limit 成員中,如下代碼所示。

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

下面代碼是調(diào)用格式轉(zhuǎn)換函數(shù)linear11_to_float(),將上面接收到的數(shù)據(jù)轉(zhuǎn)換為浮點(diǎn)型數(shù)據(jù)。

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

由于轉(zhuǎn)換后的浮點(diǎn)型數(shù)據(jù)與最終需要賦給模擬比較器閾值的數(shù)據(jù)存在一定的比例,需要一個(gè)轉(zhuǎn)換系數(shù)(scaler)??s放后存放在pmbus_dcdc_config_tanslated 結(jié)構(gòu)體的iout_oc_fault_limit 成員中。

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

最終該值賦給模擬比較器的閾值,用來(lái)做快速保護(hù)。

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

◎ 返回?cái)?shù)據(jù)處理函數(shù)pmbus_read_iout_oc_fault_limit

該函數(shù)用來(lái)返回UCD3138 軟件接收的數(shù)據(jù)到GUI 中,以使GUI 將寫(xiě)入和讀取的數(shù)據(jù)做比較(比較判斷等操作在GUI 軟件中完成) , 保證數(shù)據(jù)正確。該函數(shù)調(diào)用pmbus_read_two_byte_handler() 將保存在Pmbus_dcdc_config[0].iout_oc_fault_limit 的數(shù)據(jù)返回到GUI。關(guān)鍵代碼如下:

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

而在pmbus_read_two_byte_handler()函數(shù)中的關(guān)鍵代碼為:

pmbus_buffer[1] = value >> 8;

pmbus_buffer[0] = value & 0xff;

pmbus_buffer 字節(jié)中的數(shù)據(jù)會(huì)最終上傳到GUI 軟件中。

(4)、數(shù)據(jù)轉(zhuǎn)換函數(shù)的設(shè)計(jì)

◎ Linear Data Format 數(shù)據(jù)格式

上文提到,來(lái)自GUI 的數(shù)據(jù)遵循PMBUS 協(xié)議,其格式為L(zhǎng)inear Data Format。如圖5,其低11 位為“尾數(shù)”,以補(bǔ)碼形式保存;高5 位為“指數(shù)”,亦是以補(bǔ)碼形式保存。該數(shù)據(jù)與實(shí)際數(shù)據(jù)的關(guān)系為:X=Y× 2N 。

 

圖 5:PMBUS 協(xié)議中的Linear Data Format

◎ ARM 編譯器中的浮點(diǎn)型數(shù)據(jù)

如圖6,為ARM 編譯器中對(duì)單精度浮點(diǎn)型數(shù)據(jù)的存儲(chǔ)格式。其最高位為符號(hào)位,接下的8 位為指數(shù),后面的23 位為尾數(shù)。在編譯器中定義的浮點(diǎn)數(shù)據(jù),將以該格式存儲(chǔ)在硬件存儲(chǔ)空間。

 

圖 6:ARM 編譯器中的浮點(diǎn)型數(shù)據(jù)格式

◎ 定義結(jié)構(gòu)體和聯(lián)合體

如下, 定義了結(jié)構(gòu)體FLOAT_ELEMENTS , 用以保存上文提到的浮點(diǎn)型數(shù)據(jù)。還定義了聯(lián)合體FLOAT_OPEN,成員包括浮點(diǎn)型數(shù)據(jù)“all”和結(jié)構(gòu)體類(lèi)型數(shù)據(jù)“bit”,用以保存轉(zhuǎn)換完畢的浮點(diǎn)型數(shù)據(jù)。

struct FLOAT_ELEMENTS {

Uint32 SIGN:1;

Uint32 EXPONENT:8;

Uint32 MANTISSA:23;

};

union FLOAT_OPEN {

float all;

struct FLOAT_ELEMENTS bit;

Uint32 word;

};

◎ 轉(zhuǎn)換函數(shù)linear11_to_float()

該函數(shù)完成將來(lái)自GUI 的Linear Data Format 格式的數(shù)據(jù)轉(zhuǎn)換為浮點(diǎn)型數(shù)據(jù),并作為返回值返回。包含的關(guān)鍵代碼如下。

定義變量,包括整型“mantissa”和“exponent”及結(jié)構(gòu)體變量“final”。

int16 mantissa, exponent;

union FLOAT_OPEN final;

下面代碼完成對(duì)輸入?yún)?shù)的分析,并擴(kuò)展到16 位。如果輸入?yún)?shù)的尾數(shù)是負(fù)值,前5 位補(bǔ)1;如果是正值,前5 位補(bǔ)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),以使其數(shù)據(jù)長(zhǎng)度符合單精度浮點(diǎn)型數(shù)據(jù)的長(zhǎng)度,然后exponent 減去16,保證了原始數(shù)據(jù)的大小沒(méi)有變化。

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

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

下面代碼首先判斷單精度浮點(diǎn)型的指數(shù)是否為負(fù)。如果是負(fù),則改寫(xiě)其為零,原因是對(duì)應(yīng)的“輸出過(guò)流保護(hù)點(diǎn)”不會(huì)出現(xiàn)負(fù)值;如果是正,則將指數(shù)信息放置在單精度浮點(diǎn)型數(shù)據(jù)的指數(shù)位置。

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 中就保存了轉(zhuǎn)換后的浮點(diǎn)型數(shù)據(jù),因此可以作為返回值返回。

return final.all;

2.4 操作流程圖

上述所有操作的流程圖見(jiàn)圖7。

 

圖 7:UCD3138 接收信息流程圖

3 刪除GUI 信息欄

 

圖 8:刪除GUI 中的信息欄

此時(shí)重新編譯軟件并下載到UCD3138 后,GUI 中將不再會(huì)出現(xiàn)該信息欄,見(jiàn)圖4。但UCD3138 軟件中依然保留有對(duì)該P(yáng)MBUS 命令的接收、轉(zhuǎn)換和處理等函數(shù),亦需要?jiǎng)h除,在此不再贅述。

4 小結(jié)

通過(guò)上文兩個(gè)實(shí)例的分析可知,用戶在GUI 軟件中可以靈活的添加或刪除PMBUS 命令對(duì)應(yīng)的信息欄,提高了GUI 的靈活性。該操作主要包括PMBUS 命令的使能或屏蔽及UCD3138 軟件添加或刪除相應(yīng)處理函數(shù)等兩大部分。[!--empirenews.page--]

5 參考文獻(xiàn)

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉