在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

            基于GUI軟件配置UCD3138數(shù)字電源PMBUS命令

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

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

            2.2 GUI 中增加新的信息欄

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

            4中的紅色框。

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

            勾選相應(yīng)PMBUS 命令并復(fù)制輸數(shù)據(jù)

            圖 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)體類型的外部變量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);



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

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉