0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

支持用于電力系統(tǒng)管理的固件開發(fā)的Linduino PSM

星星科技指導員 ? 來源:ADI ? 作者:Michael Jones ? 2023-04-21 11:19 ? 次閱讀

雖然許多工程師使用加密狗和工具通過PMBus配置電源系統(tǒng)管理設備,但越來越多的設計正在添加電路板管理控制器,或?qū)⑵銹MBus連接到現(xiàn)有的微控制器或應用處理器。在LTC中,加密狗/工具選項由DC1613和LTpowerPlay組成,Linduino支持用于電力系統(tǒng)管理的固件開發(fā),又名“Linduino PSM”。

Linduino平臺是一個獨立的Arduino兼容板(DC2026),適用于不同設備的代碼庫和草圖。直到最近,人們的注意力還是在我身上。2C 和 SPI。現(xiàn)在支持PMBus器件,包括DC2294擴展板,它允許工程師將Linduino連接到PSM演示板,并連接到全相位小獵犬以監(jiān)視總線。

Linduino PSM的目標與Linduino的目標相同,即提供工作示例代碼,以便工程師可以學習,原型和借用自己的設計工作代碼。

poYBAGRCALGAPAT8AALKrR6-bsA872.png

圖1.DC2294 屏蔽 DC2026 林杜伊諾

Linduino PSM PMBus Stack

Linduino PSM提供的PMBus庫的分層方式很像網(wǎng)絡API。層允許替換和替換。例如,驅(qū)動程序?qū)涌梢葬槍こ處煹淖罱K解決方案進行返工,以便其頂部的層無需修改即可重復使用。

pYYBAGRCALKAHAUkAAAp5W28e9Q513.png

圖2.PMBus 庫堆棧

TWI 和電線層

底部是雙線接口,它是Arduino TWI和LT_Wire庫的修改副本。修改很小,但解決了塊命令的問題。

SMBus 1.3 規(guī)范定義了兩個塊命令:塊寫入和塊讀取。

poYBAGRCALOATtzAAAJdFY_3FGU359.png

圖3.塊寫入

poYBAGRCDL-AWj_IAABiDU7nUPc129.png

圖4.阻止讀取

允許字節(jié)計數(shù)的范圍為 0 到 255 字節(jié)。TWI和Wire的Arduino版本只允許32字節(jié)。為了支持 255 字節(jié)事務,必須解決三個問題:

小緩沖

內(nèi)存使用情況

應用程序接口

緩沖區(qū)最多可容納 255 個字節(jié)(原始緩沖區(qū)為 32 個),但大緩沖區(qū)將使用處理器內(nèi)存的 1/8,即使從未使用塊調(diào)用也是如此。修改后的庫將緩沖區(qū)從應用程序傳遞到 API。如果應用程序分配內(nèi)存,則只需在需要時使用內(nèi)存,并且可以在不使用時釋放內(nèi)存。修改后的 API 可以傳遞大于 255 的值以傳輸超過 255 個字節(jié),因為 count 參數(shù)已從字節(jié)更改為單詞。

LTC_I2控制層

The LTC_I2CBus 層提供 I2C 事務接口。最初的林杜伊諾圖書館附帶了另一個 I2名為 LT_I 的 C 庫2C. 但是,它針對不同的字節(jié)順序以及DACADC等進行了優(yōu)化。通過提供 I2專門用于PMBus的C層,可以維護新層,而無需更新舊草圖或擔心破壞其他非PSM草圖。

LTC_SMBus圖層

LTC_SMBus層為 SMBus 提供標準事務,這是 PMBus 的基礎。例如:

發(fā)送字節(jié)

寫/讀字節(jié)

寫/讀字

寫/讀塊

此層可用于與任何 SMBus 設備通信,或使用 PMBus 命令代碼與 PMBus 設備通信。

LTC_PMBus層

LTC_PMBus層提供基于 PMBus 命令集的高級事務。這允許工程師使用高級功能進行編程,例如:

設置頁面

讀取當前

讀取電壓

順序向上/向下

使用更高層的命令使代碼更具可讀性,工程師不必在規(guī)范中查找命令。某些命令是聚合的,例如“設置第 N 頁的電壓”或“設置電壓并保持邊距相同百分比”。

如果缺少命令,通常的做法是先使用LTC_SMBus層對其進行編碼,然后將代碼遷移到LTC_PMBus層。

LTC_PMBusMath

PMBus使用的數(shù)據(jù)格式(L11 / L16),這些格式不是IEEE 754浮點標準等行業(yè)標準,但工程師更喜歡IEEE標準,因為C / C++使用此標準。Linduino PSM 庫包括與 IEEE 浮點和 PMBus 格式之間的轉(zhuǎn)換例程。LTC_PMBus層接受并返回 IEEE 浮點數(shù),并使用LTC_PMBusMath例程管理層內(nèi)的轉(zhuǎn)換。但是,可以將數(shù)學例程與LTC_SMBus層一起使用。

注意:PMBus 1.3 定義了 IEEE 754 格式,但在業(yè)界根據(jù)此標準實現(xiàn)設備之前,數(shù)學庫中的轉(zhuǎn)換例程將是必需的。也總會有舊設備需要支持。

林杜伊諾素描

Linduino/Arduino Sketches只不過是小應用程序。對于 PSM,這些是演示設備功能的簡單文本菜單應用程序,例如:

讀取遙測數(shù)據(jù)

讀取狀態(tài)

排序上/下

探測總線

轉(zhuǎn)儲故障日志

poYBAGRCDN2ARfaFAAD0tn4kmIU236.png

圖5.命令界面

它們背后的代碼使用LT_PMBus層,因此代碼易于閱讀。下面的代碼只是在頁面上循環(huán),讀取電壓,并以十進制格式打印。讀出中的值以浮點數(shù)形式返回,即 IEEE 754 值;與數(shù)學庫的轉(zhuǎn)換發(fā)生在讀取 V 中外功能。

無效 print_all_voltages()
{

浮動電壓;
uint8_t頁;

for (page = 0;page < 2;page++)
{

pmbus->setPage(ltc3880_i2c_address, page);
電壓 = pmbus->readVout(ltc3880_i2c_address, false);
電壓 = pmbus->readVout(ltc3880_i2c_address, false);
Serial.println(電壓,DEC);
}
}

PEC 在幕后處理。在主菜單上,可以打開和關閉PEC。由于命令是 pmbus-> 編寫的,因此可以更改指針。

poYBAGRCDNiARW8AAADYnyBT5ik437.png

圖6.主菜單

案例2:
pmbus->enablePec(ltc3880_i2c_address);
pmbus->enablePec(ltc2974_i2c_address);
pmbus->enablePec(ltc2977_i2c_address);
刪除SMBus;
刪除 PMBus;
smbus = new LT_SMBusPec();
pmbus = new LT_PMBus(smbus);
破;

情況3:
pmbus->禁用Pec(ltc3880_i2c_address);
pmbus->disablePec(ltc2974_i2c_address);
pmbus->disablePec(ltc2977_i2c_address);
刪除SMBus;
刪除 PMBus;
SMBs = 新LT_SMBusNoPec();
pmbus = new LT_PMBus(smbus);
破;

嗯,差不多。設備還必須處于正確的模式?;静呗允牵?/p>

更改設備模式

刪除 smbus 和 pmbus 對象

使用正確的模式重新實例化對象

使用 smbus-> 和 pmbus-> 指針的代碼不必更改。

其他庫(非 Linduino)傳遞一個值來控制 PEC 或配置全局變量。Linduino方法使用C++類。但是,代碼保持非常簡單,因此如果禁止工程師使用C++,它可以非常快速地轉(zhuǎn)換為純 C。大多數(shù)嵌入式系統(tǒng)都支持 C 和 C++ 編譯器,但如果一個大型系統(tǒng)是純 C,工程師可能不想為C++名稱重整或使用 C++ 編譯器編譯 C 的效果而煩惱。

成型

原型設計只是將草圖復制到具有新名稱的文件并進行修改的問題。原型完成后,工程師必須決定如何將代碼遷移到最終應用程序。

如果不涉及遺留代碼,最簡單的情況是重寫LTC_I2CBus 或LTC_SMBus圖層并重用其上方的圖層。如果有很多遺留代碼,最好復制原型設計并重新編碼。最主要的是工程師可以在更簡單的環(huán)境中進行原型設計。

硬件也可以重復使用。當然,可以將Atmega328放入設計中并直接使用Linduino PSM代碼?;蛘邔WI / LTC_I進行一些調(diào)整2CBus工程師可以使用更大的Arduino平臺之一。LTC將這些移植到伽利略作為實驗,花了不到一天的時間。

對于從屬硬件,Linduino可以連接到任何PSM演示板。但是,大多數(shù)產(chǎn)品設計都有用于DC1613加密狗的連接器,因此Linduino可以使用DC2294擴展板直接連接到終端設計。這是在將資源投入到新產(chǎn)品之前對完整設計進行原型設計的好方法。可以為操作系統(tǒng)開發(fā)算法,以確定需要多少計算能力和內(nèi)存空間,并證明它將提供投資回報。

工具制造

Linduino是構(gòu)建專業(yè)最終用途工具的良好平臺。通過將Linduino,DC2294和現(xiàn)成的擴展板相結(jié)合,可以創(chuàng)建獨立的工具。例如,下面的工具是一個編程工具,用于配置手持插座中設備的非易失性存儲器。向上/向下按鈕選擇文件,選擇按鈕對設備進行編程。

pYYBAGRCALeAKTlPAAPExiTuuZ0169.png

圖7.示例工具

教育用途

Linduino PSM的最后一個常見用途是學習。如果不熟悉SMBus/PMBus標準,一個好的學習方法是連接全相位小獵犬,在DC1962上運行一些草圖,并使用全相位數(shù)據(jù)中心軟件觀察總線。請注意,還有另一種選擇,其中LTpowerPlay可以與Beagle一起使用。LTpowerPlay的優(yōu)點是寄存器語法內(nèi)置于工具中,因此GUI中的任何值都可以顯示為SMBus/PMBus事務。

總結(jié)

Linduino PSM是用于PMBus代碼開發(fā)的原型設計,工具構(gòu)建和學習環(huán)境。Linduino與DC2294結(jié)合使用,可連接到任何PSM演示板或產(chǎn)品。有一個完整的工作SMBus / PMBus庫以及數(shù)學轉(zhuǎn)換,與Arduino編碼環(huán)境兼容。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7336

    瀏覽量

    150098
  • 電源
    +關注

    關注

    184

    文章

    17203

    瀏覽量

    247768
  • 處理器
    +關注

    關注

    68

    文章

    18926

    瀏覽量

    227218
收藏 人收藏

    評論

    相關推薦

    移動車載3G無線視頻監(jiān)控有效提高電力系統(tǒng)管理效率

    `移動車載3G無線視頻監(jiān)控系統(tǒng)有效提高電力系統(tǒng)管理效率目前,電力建設單位通過架設臨時桿塔或在塔吊安裝固定移動車載3G無線視頻監(jiān)控系統(tǒng),通過該監(jiān)控系統(tǒng)
    發(fā)表于 01-05 16:35

    一周推薦:Analog Devices數(shù)字電源系統(tǒng)管理 (PSM) 器件

    、時序、裕度調(diào)整和黑盒故障日志數(shù)據(jù)進行控制和監(jiān)控。這款業(yè)界領先、具有圖形用戶界面 (GUI) 的開發(fā)軟件經(jīng)驗證可支持多達256個電壓軌。數(shù)字電源系統(tǒng)管理PSM產(chǎn)品類型電源
    發(fā)表于 08-21 10:20

    電力系統(tǒng)管理

    電力系統(tǒng)管理
    發(fā)表于 04-16 11:02 ?3次下載
    <b class='flag-5'>電力系統(tǒng)管理</b>

    AN170-磨練電力系統(tǒng)管理控制器的可調(diào)補償功能

    AN170-磨練電力系統(tǒng)管理控制器的可調(diào)補償功能
    發(fā)表于 04-18 19:40 ?0次下載
    AN170-磨練<b class='flag-5'>電力系統(tǒng)管理</b>控制器的可調(diào)補償功能

    AN168-利用電力系統(tǒng)管理控制器實現(xiàn)快速遙測

    AN168-利用電力系統(tǒng)管理控制器實現(xiàn)快速遙測
    發(fā)表于 04-18 20:54 ?0次下載
    AN168-利用<b class='flag-5'>電力系統(tǒng)管理</b>控制器實現(xiàn)快速遙測

    具有電力系統(tǒng)管理功能的PMBus DC/DC變換器

    具有電力系統(tǒng)管理功能的PMBus DC/DC變換器
    發(fā)表于 04-28 12:49 ?5次下載
    具有<b class='flag-5'>電力系統(tǒng)管理</b>功能的PMBus DC/DC變換器

    數(shù)字電力系統(tǒng)管理

    數(shù)字電力系統(tǒng)管理
    發(fā)表于 05-09 12:00 ?1次下載
    數(shù)字<b class='flag-5'>電力系統(tǒng)管理</b>

    LTC3870-1:用于數(shù)字電力系統(tǒng)管理的多相降壓從控制器數(shù)據(jù)表

    LTC3870-1:用于數(shù)字電力系統(tǒng)管理的多相降壓從控制器數(shù)據(jù)表
    發(fā)表于 05-18 13:41 ?0次下載
    LTC3870-1:<b class='flag-5'>用于</b>數(shù)字<b class='flag-5'>電力系統(tǒng)管理</b>的多相降壓從控制器數(shù)據(jù)表

    LTC3884:亞百萬歐姆DCR傳感雙輸出多相降壓控制器和數(shù)字電力系統(tǒng)管理數(shù)據(jù)表

    LTC3884:亞百萬歐姆DCR傳感雙輸出多相降壓控制器和數(shù)字電力系統(tǒng)管理數(shù)據(jù)表
    發(fā)表于 05-19 15:50 ?0次下載
    LTC3884:亞百萬歐姆DCR傳感雙輸出多相降壓控制器和數(shù)字<b class='flag-5'>電力系統(tǒng)管理</b>數(shù)據(jù)表

    LTC3889:60V雙輸出降壓控制器,帶數(shù)字電力系統(tǒng)管理數(shù)據(jù)表

    LTC3889:60V雙輸出降壓控制器,帶數(shù)字電力系統(tǒng)管理數(shù)據(jù)表
    發(fā)表于 05-24 14:50 ?7次下載
    LTC3889:60V雙輸出降壓控制器,帶數(shù)字<b class='flag-5'>電力系統(tǒng)管理</b>數(shù)據(jù)表

    LTM4664:48VIN,單片機50A微機調(diào)節(jié)器,數(shù)字電力系統(tǒng)管理用戶指南

    LTM4664:48VIN,單片機50A微機調(diào)節(jié)器,數(shù)字電力系統(tǒng)管理用戶指南
    發(fā)表于 05-26 18:23 ?9次下載
    LTM4664:48VIN,單片機50A微機調(diào)節(jié)器,數(shù)字<b class='flag-5'>電力系統(tǒng)管理</b>用戶指南

    AN-152電力系統(tǒng)管理培訓

    AN-152電力系統(tǒng)管理培訓
    發(fā)表于 05-31 12:24 ?23次下載
    AN-152<b class='flag-5'>電力系統(tǒng)管理</b>培訓

    電力系統(tǒng)管理協(xié)議規(guī)范之通用要求傳輸和電氣接口

    電力系統(tǒng)管理協(xié)議規(guī)范之通用要求傳輸和電氣接口
    發(fā)表于 08-03 16:29 ?3次下載

    電力系統(tǒng)管理協(xié)議規(guī)范之命令語言

    電力系統(tǒng)管理協(xié)議規(guī)范之命令語言
    發(fā)表于 08-03 16:31 ?5次下載

    用于電源系統(tǒng)管理Linduino

    電子發(fā)燒友網(wǎng)站提供《用于電源系統(tǒng)管理Linduino.pdf》資料免費下載
    發(fā)表于 11-24 11:49 ?0次下載
    <b class='flag-5'>用于</b>電源<b class='flag-5'>系統(tǒng)管理</b>的<b class='flag-5'>Linduino</b>