<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 電源與新能源 > 設計應用 > 基于GUI軟件配置UCD3138數字電源PMBUS命令

基于GUI軟件配置UCD3138數字電源PMBUS命令

作者: 時(shí)間:2013-06-25 來(lái)源:網(wǎng)絡(luò ) 收藏

3) 將圖3 右側紅色圖內的數據復制到 的軟件中,覆蓋原來(lái)的CMD_DCDC_NONPAGED 變量。

2.2 GUI 中增加新的信息欄

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

4中的紅色框。

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

勾選相應PMBUS 命令并復制輸數據

圖 4:GUI 出現新增信息輸入欄

2.3 UCD3138 軟件中的數據處理

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

(1)、定義變量和結構體

如下代碼,定義了新的結構體變量PMBUS_DCDC_CONFIG,包含成員iout_oc_fault_limit 和reserved。隨后定義了該結構體類(lèi)型的外部變量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)、創(chuàng )建新的PMBUS 讀與寫(xiě)函數

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

switch (pmbus_buffer[0])

{

case 0x46:

return pmbus_write_iout_oc_fault_limit();

}

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

switch (pmbus_buffer[0])

{

case 0x46:

return pmbus_read_iout_oc_fault_limit();

}

(3)、數據處理函數的設計

◎ 接收數據處理函數pmbus_write_iout_oc_fault_limit()

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

上文提到,來(lái)自GUI 的數據的首字節是對應的PMBUS 命令代碼。隨后的兩個(gè)字節便是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(),將上面接收到的數據轉換為浮點(diǎn)型數據。

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

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

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

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

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

◎ 返回數據處理函數pmbus_read_iout_oc_fault_limit

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

pmbus_read_two_byte_handler(pmbus_dcdc_config[0].iout_oc_fault_limit);



關(guān)鍵詞: 數字電源 UCD3138

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>