您的位置:首頁>正文

電源系統管理的定址

引言

包括淩力爾特電源系統管理 (PSM) 在內的所有 PMBus 應用的基礎都是, PMBus 主器件 (系統主器件) 能夠與匯流排上的所有 PMBus 從屬器件 (PSM 控制器、PSM 管理器、PMS µModule 和 PMBus 單片器件) 通信。 匯流排上的每個從屬器件都必須擁有與其他器件不衝突的、獨一無二的地址。

匯流排主器件還必須能夠在幾種並非大多數人都認為順理成章的情況下與 PSM 從屬器件通信, 包括:

☞ 位址發現

☞ 全域行動

☞ 多相軌

☞ 無效非易失性記憶體 (NVM)

☞ 匯流排 MUX

器件定址是由基址寄存器加上外部位址選擇 (ASEL) 引腳以及特殊的全域、軌、ARA 地址及其他特殊地址相結合實現的。

本文探討淩力爾特 PSM 系列的基本設計原則、有關產品系列之間不同之處的詳細資訊、以及實際例子和建議。 諸如無效 NVM 等特殊情況也會討論。

淩力爾特的優勢是, 設計不僅從第一天開始就正常運行, 甚至在情況變壞時依然正常運行。 例如, 如果正在用 LTpowerPlay 軟體寫 NVM 時掉電了, 那麼設計是可恢復的。 此外, 如果選擇採用淩力爾特 Linduino 參考代碼中提供的 “In Flight Update”, 那麼設計在現場也是可恢復的。 最後, 還能夠識別系統退化的症狀, 並解決系統退化問題。

一旦瞭解了怎樣實現淩力爾特 PSM 定址, 就能夠快速設計可靠的系統了。

基本的 PMBus 運行方式

PMBus 是一種由 SMBus 擴展而來的串列通信標準, 類似於 I2C。 兩條開漏導線 SCL 和 SDA 支援主器件和從屬器件的雙向通信匯流排。

主器件是控制通信的器件, 一般是微控制器或 FPGA。 從屬器件是受主器件控制的器件, 一般是小型積體電路, 在本文中, 這是諸如 LTC2977 等電源管理器或者諸如 LTC3880 等電源控制器。

一個系統可以有超過一個主器件, 但是實際上這種情況很少見。 通常有多個從屬器件。 甚至在只有一個從屬器件的系統中, 主器件每次也通過使用位址, 來指揮與從屬器件的通信。 這意味著, 每個從屬器件必須擁有一個獨一無二的位址, 以實現恰當的系統功能。

淩力爾特的電源系統管理器件使用一個 EEPROM 和引腳電阻器來設定每個 (從屬) 器件獨一無二的位址。 因此, 定址過程確保, 如果任何 EEPROM 中沒有有效資料, 那麼主器件就可以修補系統, 使系統達到每個 (從屬) 器件都有獨一無二位址的狀態。

以下各部分詳細解釋了這些位址配置機制, 包括怎樣選擇、設計和修補位址。

基本的 PMBus 定址

PMBus 定址由 PMBus 標準引用的 SMBus 標準定義。 SMBus 定址與 I2C 標準相同。 為清晰起見, 討論範圍限定在 SMBus 標準上。

考慮 SMBus 3.0 標準圖 29 中定義的 Read Byte 協定 (參見圖 1)。 起始位元 (S) 之後是任何交易的位址, 位址在 ACK 位 (A) 之前結束。 在 (S) 和 (A) 之間有 8 個位, 前 7 位是地址, 其餘 1 位用來指示寫 (Wr) 或讀 (Rd)。

圖 1:Read Byte 協定(SMBus 3.0 標準, 圖 29)

7 位意味著有 128 個可能的位址。 在本 “應用指南 (Application Note)” 中, 所寫地址不包括 (Wr/Rd) 位, 如下所示:

0x00 至 0x7F (7 位定址)

有時, 程式師寫位址時喜歡額外帶上保持為零的 (Wr/Rd) 位, 例如:

0x00 至 0xFE (8 位元定址)

這些數字全都是偶數。 示波器和監視工具 (例如 Total Phase Beagle 協定分析儀) 使用與本應用指南相同的格式, 因此自然使用 0x00 至 0x7F,

所以我們也這麼做。 然而, 當工程師提供一個位址但並未指明格式時, 請格外注意。 給定位址也許需要左移一位元, 因此看起來的位址比實際位址大一倍。

請注意, Read Byte 協議使用兩次位址, 但是在第二次使用的位址之前有一個重複開始 (Sr) 指示位。 重複開始指示位元是所有讀交易的組成部分。 在本文中, (S) 和 (Sr) 之後必須使用相同的位址。

地址圖

不是所有地址都可用於 PSM 從屬器件, 因為 SMBus 標準保留了某些地址。 SMBus 3.0 規範的附錄 C 有一個預分配位址表。 沒必要瞭解這些位址打算怎樣使用, 所以有一個簡化的表就夠了。

表 1 所示的 SMBus 位址圖使用了一種簡單的編碼方法。 保守的設計僅使用 “用途” (Description) 列中有白色網底的地址。 這就避開了所有保留的地址和特殊地址。

可能除了為 PMBus 3.1 區域操作添加的位址 0x28 和 0x37 以外, PSM 設計可以使用位址列中所有具白色網底的位址。

表 1:SMBus 位址圖

PMBus 全域位址

還有一些位址由 PSM 使用, 不能分配給任何器件, 甚至非 PSM 器件也不行, 以防引起系統級問題。

第一類特殊地址是全域地址, 即 0x5A 和 0x5B。 匯流排主器件用這些位址一次與多個器件通信。 就 LTC388X 系列而言, 位址 0x5A 是不被呼叫的全域地址。 就 LTC388XPSM 系列和 LTC297X 系列而言, 位址 0x5B 都是被呼叫的全域位址。 如果一個 PSM 器件的位址被設定為兩個全域位址之一, 那麼匯流排主器件向該器件發送命令時, 匯流排上的所有 PSM 器件都會響應該命令。 LTpowerPlay 也會出現意想不到的行為。

第三個全域地址是 0x7C。 如果 LTC388X PSM 系列器件的 EEPROM 中有 CRC 錯誤, 那麼這些器件就回應這個位址。 因此不要使用這個位址。

其他全域位址

非 PSM 器件也可能有全域位址。分配 PSM 地址時,這些地址必須避開。

軌位址

有些 PSM 器件有一種稱為軌位址的特殊位址。用軌位址可以同時定址多個器件或頁面。軌位址的主要功能是,使匯流排主器件能夠用一條命令與一個軌的幾個相位通信。例如,設定多相軌的 VOUT電壓。

軌位址用一種稱為 MFR_RAIL_ADDRESS (0xFA) 的寄存器設定。這個寄存器的缺省值是 0x80,這個值禁止軌定址。將軌位址設定為其他任何值都可啟動軌定址。

匯流排主器件對待軌位址就像對待匯流排上的器件一樣,即使它不是一個單獨的器件。匯流排主器件分辨不出二者的差別。因此,軌位址是系統總位址圖的組成部分,一定不能與其他地址相衝突。

通道位址

最後一種特殊位址稱為通道位址。這個位址也像軌位址一樣是用一個寄存器 MFR_CHANNEL_ADDRESS (0xD8) 設定的。通道位址給匯流排增加了一種指向特定頁面的位址。因此,使用通道位址時,就不必使用PAGE 寄存器了。

匯流排主器件對待通道位址就像對待匯流排上的另一個器件一樣,通道位址不可能與其他位址相衝突。

位址規劃

位址規劃很簡單。創建一個電子資料工作表,列入所有器件和位址,使用以下所有網址類別型:

☞ 普通地址

☞ 全域地址

☞ 軌地址

☞ 通道地址

☞ 特殊地址 (ARA)

☞ 非 PSM 地址

除了全域位址,位址不可重疊,當所有位址都使用一個共用基址時,每個位址都必須是獨一無二的。

設定位址

在怎樣分配位址以及器件的行為方式方面,儘管 LTC388X DC/DC 控制器系列和 LTC297X 管理器系列之間通常很相似,但是仍然存在細微差別。同一系列之內的不同器件之間也存在微小差別。不過,運行原理是相似的,所以在考慮具體差異之前,可以按照一般規則考慮所有器件。

就所有 PSM 器件而言,匯流排上 PSM 器件的實際位址由稱為基址 (BASE ADDRESS) 的寄存器值加上由連至器件引腳的電阻器決定之可選變址構成,這些器件引腳稱為 ASEL 引腳,即位址選擇引腳。

使用 ASEL 引腳而不是使用預先設定器件的方法有幾個原因。首先,預先設定需要花時間,有成本問題,而且人們也許不想按照一般規則預先設定所有器件。很多器件還具有用來設定輸出電壓的配置引腳,這些引腳也許就足夠了。其次,如果一個器件有 CRC NVM 差錯,那麼該器件可能會丟失位址,這時匯流排主器件就無法獨一無二地與每個器件通信以重新設定器件了。

因此,解決方案是 ASEL 引腳和一個基址。匯流排主器件可利用全域位址 0x5B 與所有器件通信。如果主器件可以與所有器件通信,那麼就可以設定基址,因為所有 PSM 器件都支持 MFR_I2C_BASE_ADDRESS 寄存器。之後,匯流排主器件可以強制所有器件讀取其位址引腳,而且所有器件都將擁有匯流排主器件已知和獨一無二的位址。一旦匯流排主器件可以與每個器件單獨通信,就可以重新設定 EEPROM 了。

這意味著以下事實,而且這些事實是本文中需要記住的最重要的事情:當匯流排上的所有器件共用一個基址時,這些器件必須各自擁有獨一無二的地址,而且這些器件的 ASEL 引腳已經被讀取和使用。

如果遵循這個原則,那麼當發生任何 NVM 訛誤時,用 LTpowerPlay、Linduino 參考代碼或定制固件就可修復系統。因此,修復系統時,永遠不需要將淩力爾特 PSM 器件脫焊。

以下內容提供產品系列的詳細資訊,以全面瞭解怎樣設定地址以及怎樣用位址圖給出的參數進行設計。

LTC388X PSM 系列

LTC388X 系列 PSM 器件的位址是由基址值和經由 ASEL 引腳獲得的值相結合來設定的。有些 LTC388X 器件有一個 ASEL 引腳,有些則有兩個 ASEL 引腳,因此需要以不同的方式對待這兩種器件。

一個 ASEL 引腳

表 2 顯示了 LTC3880 資料表列出的 ASEL 引腳。LTC3880 有一個 ASEL 引腳。從屬位址列中的 “xyz” 3 位元是基址,存儲在 MFR_I2C_BASE_ADDRESS (0xE6) 寄存器中。除非在 ASEL 引腳上沒有電阻器,否則 ASEL 引腳設定表中的 4 個 LSB。在這情況,使用基址的所有 7 個位。

表 2:LTC3880 ASEL

僅當匯流排上只有一個器件時,才設定 ASEL 引腳開路。在任何多器件應用中,都必須使用 ASEL 引腳來設定位址。如果使用單個 ASEL 引腳設定器件,匯流排上的位址數量就限定為 16 個。

匯流排 MUX 為增加位址數量提供了一種解決方案,將在本文的匯流排分段部分討論。

雙 ASEL 引腳

雙 ASEL 引腳將 16 個地址的限制擴展到 127 個。

表 3 顯示了 LTC3882 資料表列出的 ASEL 引腳。如果 ASEL1 設定為 “來自EEPROM”,那麼 ASEL0 的表現就像 LTC3880 的單個 ASEL 表現一樣。連至 ASEL1 引腳的電阻器控制器件地址的 3 個 MSB。這將獨一無二的地址數量擴展至 127 個。

在由單和雙 ASEL 引腳器件組成的系統中,每種單 ASEL 引腳器件類型可能有多達 16 個,而且可能有與可用地址一樣多的雙 ASEL 器件。

表 3:LTC3882 ASEL

LTC297X PSM 系列

LTC297X 系列的主要不同是加到基址上的 ASEL 引腳選擇值。“加到” 意味著增加,而不是取代或遮罩一些位。

表 4 顯示了 LTC2975 的地址查詢表。這些 ASEL 引腳有 3 種狀態,高、低或未連接。兩個引腳選擇 9 個不同的、顯示為 “N =” 的值。在這個表中,基址是 0x5C,當 N = 0 時,地址為 0x5C。

這個表還有一個 8 位的列。這是本應用指南使用的位址,像之前討論的那樣,左移一位 (對習慣於這種慣例的人而言)。

表 4:LTC2975 ASEL

H = 連至 VDD33,NC = 無連接 = 開路或浮置,

L = 連至 GND,X = 不必在意

*MFR_I2C_BASE_ADDRESS = 7 位 0x5C (工廠缺省值)

CRC 失配

所有淩力爾特 PSM 器件都有 EEPROM,用來存儲決定輸出電壓、監察限制和基本操作的設置值。記憶體中的任何差錯都可能導致損壞負載。淩力爾特 PSM 器件的 EEPROM 保存規格為 10 年。不過,寫 EEPROM 時遭遇意外系統情況,例如高溫或電源電壓崩潰,可能導致寫失敗,從而使 EEPROM 保存的內容出現訛誤。

CRC 的目的是驗證 EEPROM 保存的內容是否正確。有效的 CRC 確保器件安全運行,無效的 CRC 禁止器件運行,並通過 PMBus ALERTB 通知主機。

CRC 怎麼樣起作用?

當 PSM 器件第一次加電時,該器件將 EEPROM 中的內容傳送給 RAM,因為 RAM 是器件的運行記憶體。傳送的同時,器件計算 RAM 所存內容的 CRC 值,然後與 EEPROM 中存儲的 CRC 比較。如果兩個 CRC 值相同,器件就運行;如果不相同,器件就報告 CRC 故障,並保持在重定模式。

連接所有 PSM 器件的 GPIOB/FAULTB 引腳,設定器件以分享故障資訊並在故障期間禁止運行,將使整個系統之內的任何 CRC 都能夠防止對系統內的所有軌供電。一般而言,這是最佳的系統設計,除非多故障分析已經證實,故障的所有組合都是安全的。當所有軌都關斷時,分析簡單得多,而且系統變得安全得多,因為任何故障都導致所有軌完全斷電。

LTC388X CRC

如果一個 LTC388X 器件出現 CRC 失配,那麼它的位址將變成 0x7C。如果其他 LTC388X 器件也出現 CRC 失配,那麼這些器件的位址也將同時變為 0x7C。在用有效資料重寫這些器件的 NVM 且這些器件經過由 MFR_RESET (0xFD) 命令或加電週期啟動的初始化之前,這些器件的位址會一直保持為 0x7C。

LTC297X CRC

如果一個 LTC297X 器件發生 CRC 失配,那麼其值可能是兩個位址之一。簡單情況是缺省基址 0x5C,當整個 EEPROM 發生 CRC 失配時,出現這種情況。

因為 LTC297X 成塊處理 EEPROM,而且靠近底部的塊可能擁有有效的 CRC,靠近頂部的塊可能沒有有效的 CRC,所以位址也有可能是所存儲的基址。

這與 LTC388X 是不同的,因為 LTC388X 在確定位址之前,對整個 EEPROM 進行一次完整的 CRC 驗證,而 LTC297X 則是逐步確定位址。

解決 CRC 失配問題

一般而言,CRC 失配絕不會手動解決。LTpowerPlay 用其程式設計工具可非常容易地解決 CRC 失配問題,而且 In Flight Update 也會解決 CRC 失配問題。不過,瞭解這些方法怎樣解決 CRC 失配問題,對更好地理解定址是有幫助的。解決 CRC 失配問題的第一步是,逐個訪問所有出現 CRC 失配問題的器件。這意味著,發送 PMBus 命令以恢復各個位址。

向全域地址 0x5B 發佈一條 MFR_I2C_BASE_ADDRESS 命令。然後發送一系列命令,強制所有器件讀取其 ASEL 引腳。

注:可以單獨針對一個出現 CRC 失配問題的器件,如果你能確定其目前的位址,例如對 LTC388X 而言是 0x7C,或者 LTC297X 的缺省基址。不過,使用全域位址卻簡單得多,因為這種方式不損害其他器件。此外,如果匯流排未得到良好規劃,LTC297X 落在了非 PMBus 器件的位址上,那麼單獨針對一個器件的做法可能產生副作用。

第二步是向器件發送資料。理論上,器件支持的所有命令都可以使用,但是通過 MFR_EE_DATA 命令發送批量資料更高效。LTpowerPlay 和 In Flight Update 都使用這條命令。

對規劃不佳、未使用 ASEL 引腳將所有器件設定為擁有獨一無二位址的位址設計而言,第一步不起作用。如果設定 MFR_I2C_BASE_ADDRESS 導致一個以上的 PSM 器件擁有相同的位址,那麼就無法用 MFR_EE_DATA 修復單個器件,因為擁有相同位址的任何器件都會被相同的資料設定。

匯流排分段

對 PMBus 分段有兩個主要原因:

1. 定址

2. 電容/速度

但是分段以實現定址這種方法一般僅用在非常大的系統中。

當匯流排主器件以 400kHz 運行時,在非常大和具有很長匯流排佈線的系統中,可能出現電容問題。這可能導致違反定時規範,或干擾性能目標。

一般情況下,會使用多路轉換器 LTC4306。LTC4306 的主要功能是,能夠一次連接一個段或者同時連接所有段。

當修復 CRC 失配問題時,使用該器件,使匯流排主器件一次連接一個段。當由固件使用時,用該器件將所有段連接成單條匯流排。當所有段作為單條匯流排連接時,所有位址都必須是獨一無二的。

一步步地看一個典型例子,瞭解怎樣滿足修復流程需求以及怎樣作為單條匯流排起作用,這是有説明的。

匯流排分段舉例

這個作為例子的系統由以下各部分組成:

☞ 4 段 (參見圖 2)

☞ 每段有 16 個 LTC3880 器件

☞ 一個多路轉換器 LTC4306

圖 2 匯流排分段舉例

LTC4306 的位址用 3 個 ASEL 引腳設定為 0x50。該器件還有一個全域批量寫位址 (MassWrite Address) 0x5D。LTC3880 有 0x5A 和 0x5B 兩個全域地址。這種設計將 4 個基址 0x20、0x30、0x40 和 0x60 分配給 4 個段。這避開了 0x50 至 0x5F 的地址範圍,所有淩力爾特 PSM 器件的位址在這個範圍都是可程式設計的。此外,大多數淩力爾特 I2C/SMBus 器件都支持這個位址範圍。LTC4316 I2C器件非常容易使其他任何器件與這個定址範圍相容。

還有可能在 0x5X 範圍內對多相軌定址,或者在小於 0x10 或大於 0x6F 的可用地址範圍內對多相軌定址。

圖 2:匯流排分段舉例

固件運行

通過將 LTC4306 的寄存器 3 設定為 0xF0,電路板管理控制器 (BoardManagement Controller) 將輸入 PMBus 連至所有輸出 PMBus 段。在這種情況下,匯流排上有 64 個器件的位址處於以下範圍:0x20 至 0x2F、0x30 至 0x3F、0x40 至 0x4F 和 0x60 至 0x6F。全域位址 0x5A 和 0x5B 用於全域操作。如果器件正常運行,沒有 CRC 失配問題,就不會回應地址 0x7C。

系統設定

系統設定指的是,用 LTpowerPlay 或 In Flight Update 對所有匯流排分段進行初始設定。通過將寄存器 3 的值分別設定為 0x80、0x40、0x20 和 0x10,LTC4306 會一次連接一個段。

LTpowerPlay 或 In Flight Update 會設定由 LTC4306 連接的特定段。用於被連接段的 MFR_I2C_BASE_ADDRESS用全域位址 0x5B 設定。ASEL 的引腳電阻器確保被連接段上的每個器件都擁有獨一無二的位址。

用於每個段上各個器件的 ASEL 引腳電阻器是相同的,並在 0x00 至 0x0F 範圍內選擇一個位址變址數。一次連接一個段,針對每個段單獨設定 MFR_I2C_BASE_ADDRESS,就可以使所有 64 個器件都擁有獨一無二的器件地址。

注:如果使用有兩個ASEL 引腳的器件,那麼所有分段都有可能包含超過 16 個器件,因為兩個 ASEL 引腳允許用一個基址創建多達 128 個器件位址。

解決 CRC 失配問題

這種情況與系統設定情況是相同的。LTpowerPlay 和 In Flight Update 以同樣的方式對待設定流程。在兩種情況下,設定過程中都會使用 MFR_I2C_BASE_ADDRESS。

每個段都是一個一個連接和設定的。

固件運行與系統設定的互動

LTC4306 缺省設置為所有段均斷接。因此,如果電路板管理控制器 (BMC) 保持在重定模式以進行系統調試,連接了 DC1613 PMBus-to-USB 控制器且 LTpowerPlay 正在運行,那麼 DC1613 就不會連接到匯流排上的任何 PSM 器件上。

有兩種方式確保固件不干擾 LTpowerPlay。第一種是為 BMC 提供調試模式,以便 BMC 退出重定模式,並連接所有段,然後暫停。這使LTpowerPlay 能夠與完整的匯流排互動,以便系統進入運行和調試狀態。

BMC 暫停時,會阻止與 LTpowerPlay 互動。即使 LTpowerPlay 能夠進行多重控制,依賴 PAGE 命令的多個命令也會互動。因此,暫停可防止固件和 LTpowerPlay 得到錯誤的遙測資料。

第二種方式是在調試時保持 BMC 處於重定模式,並允許 LTpowerPlay 控制 MUX。一般而言,這是最安全的情況,因為當 BMC 從重定模式釋放出來之後,例如在關斷 LTpowerPlay 之後,會將多路轉換器設定到適當的狀態,而不管目前處於何種狀態。

當 BMC 和 LTpowerPlay 交替控制匯流排時,主器件不應該假設多路轉換器的狀態。無論何時,只要採取重要行動,例如任一主器件退出暫停狀態繼續運行時,首先應該將多路轉換器設定到適當的狀態。

總結

電源系統管理的位址規劃並不複雜,但是必須注意設定以及系統從 CRC 失配中恢復的特殊情況。所有淩力爾特 PSM 器件都是相容的。

所有淩力爾特的 PSM 器件都通過基址和 ASEL 引腳設定的變址相結合來產生獨一無二的位址。如果在設定時掉電,所有PSM 器件都可能遭遇 CRC 失配問題。通過設定基址、重新設定 EEPROM、以及復位器件,可以全面恢復系統。LTpowerPlay 和 In Flight Update 自動處理合適的位址計畫的恢復。

通過位址規劃,可分配基址和 ASEL 引腳,因此絕對不會出現兩個器件永久使用相同位址的情形。使用擁有兩個ASEL 引腳的器件或者用一個諸如 LTC4306 那樣的 I2C 多路轉 換器對匯流排分段,可以設計較大型的系統。

必須在進行 PCB 設計之前進行位址規劃,因為 ASEL 引腳和匯流排分段依靠電阻器和引腳來設定。

關於電子創新網

電子創新網及時發佈有關創新設計的最新全球半導體產業資訊、半導體供應商最新動態、展會研討會資訊、技術趨勢資訊以及人物訪談等相關新聞,關注公眾號獲取更多資訊。

掃描二維碼,關注更多精彩

【推介】

以“新互聯、新智造、新未來”為主題的2017第三屆中國(廣東)國際“互聯網+”博覽會定於今年10月12-15日在廣東(潭洲)國際會展中心舉行,將設立智慧製造、互聯網+前沿技術、智慧城市、互聯網+金融、電子商務、創新創業和智慧家居生活七大主題展區,並全力引進虛擬實境和無人機板塊,加大國際企業參與度。本屆博覽會有眾多知名企業參展,是學習瞭解新技術的最好機會。我們電子創新網與主辦方合作組團去看展,歡迎報名!

“CeBIT中國工程師參觀團”分為三個主題,每個團25人,初步主題定為 :

1、大資料

2、人工智慧和雲 3、通信

加入後專享福利

1、報名即有驚喜禮物

2、組團看展,有展商專人介紹新技術和展品

3、加入參觀團,認識更多同道、新朋友

4、提供午餐

席位有限早到早得,歡迎報名!點擊閱讀原文連結直接報名

因此不要使用這個位址。

其他全域位址

非 PSM 器件也可能有全域位址。分配 PSM 地址時,這些地址必須避開。

軌位址

有些 PSM 器件有一種稱為軌位址的特殊位址。用軌位址可以同時定址多個器件或頁面。軌位址的主要功能是,使匯流排主器件能夠用一條命令與一個軌的幾個相位通信。例如,設定多相軌的 VOUT電壓。

軌位址用一種稱為 MFR_RAIL_ADDRESS (0xFA) 的寄存器設定。這個寄存器的缺省值是 0x80,這個值禁止軌定址。將軌位址設定為其他任何值都可啟動軌定址。

匯流排主器件對待軌位址就像對待匯流排上的器件一樣,即使它不是一個單獨的器件。匯流排主器件分辨不出二者的差別。因此,軌位址是系統總位址圖的組成部分,一定不能與其他地址相衝突。

通道位址

最後一種特殊位址稱為通道位址。這個位址也像軌位址一樣是用一個寄存器 MFR_CHANNEL_ADDRESS (0xD8) 設定的。通道位址給匯流排增加了一種指向特定頁面的位址。因此,使用通道位址時,就不必使用PAGE 寄存器了。

匯流排主器件對待通道位址就像對待匯流排上的另一個器件一樣,通道位址不可能與其他位址相衝突。

位址規劃

位址規劃很簡單。創建一個電子資料工作表,列入所有器件和位址,使用以下所有網址類別型:

☞ 普通地址

☞ 全域地址

☞ 軌地址

☞ 通道地址

☞ 特殊地址 (ARA)

☞ 非 PSM 地址

除了全域位址,位址不可重疊,當所有位址都使用一個共用基址時,每個位址都必須是獨一無二的。

設定位址

在怎樣分配位址以及器件的行為方式方面,儘管 LTC388X DC/DC 控制器系列和 LTC297X 管理器系列之間通常很相似,但是仍然存在細微差別。同一系列之內的不同器件之間也存在微小差別。不過,運行原理是相似的,所以在考慮具體差異之前,可以按照一般規則考慮所有器件。

就所有 PSM 器件而言,匯流排上 PSM 器件的實際位址由稱為基址 (BASE ADDRESS) 的寄存器值加上由連至器件引腳的電阻器決定之可選變址構成,這些器件引腳稱為 ASEL 引腳,即位址選擇引腳。

使用 ASEL 引腳而不是使用預先設定器件的方法有幾個原因。首先,預先設定需要花時間,有成本問題,而且人們也許不想按照一般規則預先設定所有器件。很多器件還具有用來設定輸出電壓的配置引腳,這些引腳也許就足夠了。其次,如果一個器件有 CRC NVM 差錯,那麼該器件可能會丟失位址,這時匯流排主器件就無法獨一無二地與每個器件通信以重新設定器件了。

因此,解決方案是 ASEL 引腳和一個基址。匯流排主器件可利用全域位址 0x5B 與所有器件通信。如果主器件可以與所有器件通信,那麼就可以設定基址,因為所有 PSM 器件都支持 MFR_I2C_BASE_ADDRESS 寄存器。之後,匯流排主器件可以強制所有器件讀取其位址引腳,而且所有器件都將擁有匯流排主器件已知和獨一無二的位址。一旦匯流排主器件可以與每個器件單獨通信,就可以重新設定 EEPROM 了。

這意味著以下事實,而且這些事實是本文中需要記住的最重要的事情:當匯流排上的所有器件共用一個基址時,這些器件必須各自擁有獨一無二的地址,而且這些器件的 ASEL 引腳已經被讀取和使用。

如果遵循這個原則,那麼當發生任何 NVM 訛誤時,用 LTpowerPlay、Linduino 參考代碼或定制固件就可修復系統。因此,修復系統時,永遠不需要將淩力爾特 PSM 器件脫焊。

以下內容提供產品系列的詳細資訊,以全面瞭解怎樣設定地址以及怎樣用位址圖給出的參數進行設計。

LTC388X PSM 系列

LTC388X 系列 PSM 器件的位址是由基址值和經由 ASEL 引腳獲得的值相結合來設定的。有些 LTC388X 器件有一個 ASEL 引腳,有些則有兩個 ASEL 引腳,因此需要以不同的方式對待這兩種器件。

一個 ASEL 引腳

表 2 顯示了 LTC3880 資料表列出的 ASEL 引腳。LTC3880 有一個 ASEL 引腳。從屬位址列中的 “xyz” 3 位元是基址,存儲在 MFR_I2C_BASE_ADDRESS (0xE6) 寄存器中。除非在 ASEL 引腳上沒有電阻器,否則 ASEL 引腳設定表中的 4 個 LSB。在這情況,使用基址的所有 7 個位。

表 2:LTC3880 ASEL

僅當匯流排上只有一個器件時,才設定 ASEL 引腳開路。在任何多器件應用中,都必須使用 ASEL 引腳來設定位址。如果使用單個 ASEL 引腳設定器件,匯流排上的位址數量就限定為 16 個。

匯流排 MUX 為增加位址數量提供了一種解決方案,將在本文的匯流排分段部分討論。

雙 ASEL 引腳

雙 ASEL 引腳將 16 個地址的限制擴展到 127 個。

表 3 顯示了 LTC3882 資料表列出的 ASEL 引腳。如果 ASEL1 設定為 “來自EEPROM”,那麼 ASEL0 的表現就像 LTC3880 的單個 ASEL 表現一樣。連至 ASEL1 引腳的電阻器控制器件地址的 3 個 MSB。這將獨一無二的地址數量擴展至 127 個。

在由單和雙 ASEL 引腳器件組成的系統中,每種單 ASEL 引腳器件類型可能有多達 16 個,而且可能有與可用地址一樣多的雙 ASEL 器件。

表 3:LTC3882 ASEL

LTC297X PSM 系列

LTC297X 系列的主要不同是加到基址上的 ASEL 引腳選擇值。“加到” 意味著增加,而不是取代或遮罩一些位。

表 4 顯示了 LTC2975 的地址查詢表。這些 ASEL 引腳有 3 種狀態,高、低或未連接。兩個引腳選擇 9 個不同的、顯示為 “N =” 的值。在這個表中,基址是 0x5C,當 N = 0 時,地址為 0x5C。

這個表還有一個 8 位的列。這是本應用指南使用的位址,像之前討論的那樣,左移一位 (對習慣於這種慣例的人而言)。

表 4:LTC2975 ASEL

H = 連至 VDD33,NC = 無連接 = 開路或浮置,

L = 連至 GND,X = 不必在意

*MFR_I2C_BASE_ADDRESS = 7 位 0x5C (工廠缺省值)

CRC 失配

所有淩力爾特 PSM 器件都有 EEPROM,用來存儲決定輸出電壓、監察限制和基本操作的設置值。記憶體中的任何差錯都可能導致損壞負載。淩力爾特 PSM 器件的 EEPROM 保存規格為 10 年。不過,寫 EEPROM 時遭遇意外系統情況,例如高溫或電源電壓崩潰,可能導致寫失敗,從而使 EEPROM 保存的內容出現訛誤。

CRC 的目的是驗證 EEPROM 保存的內容是否正確。有效的 CRC 確保器件安全運行,無效的 CRC 禁止器件運行,並通過 PMBus ALERTB 通知主機。

CRC 怎麼樣起作用?

當 PSM 器件第一次加電時,該器件將 EEPROM 中的內容傳送給 RAM,因為 RAM 是器件的運行記憶體。傳送的同時,器件計算 RAM 所存內容的 CRC 值,然後與 EEPROM 中存儲的 CRC 比較。如果兩個 CRC 值相同,器件就運行;如果不相同,器件就報告 CRC 故障,並保持在重定模式。

連接所有 PSM 器件的 GPIOB/FAULTB 引腳,設定器件以分享故障資訊並在故障期間禁止運行,將使整個系統之內的任何 CRC 都能夠防止對系統內的所有軌供電。一般而言,這是最佳的系統設計,除非多故障分析已經證實,故障的所有組合都是安全的。當所有軌都關斷時,分析簡單得多,而且系統變得安全得多,因為任何故障都導致所有軌完全斷電。

LTC388X CRC

如果一個 LTC388X 器件出現 CRC 失配,那麼它的位址將變成 0x7C。如果其他 LTC388X 器件也出現 CRC 失配,那麼這些器件的位址也將同時變為 0x7C。在用有效資料重寫這些器件的 NVM 且這些器件經過由 MFR_RESET (0xFD) 命令或加電週期啟動的初始化之前,這些器件的位址會一直保持為 0x7C。

LTC297X CRC

如果一個 LTC297X 器件發生 CRC 失配,那麼其值可能是兩個位址之一。簡單情況是缺省基址 0x5C,當整個 EEPROM 發生 CRC 失配時,出現這種情況。

因為 LTC297X 成塊處理 EEPROM,而且靠近底部的塊可能擁有有效的 CRC,靠近頂部的塊可能沒有有效的 CRC,所以位址也有可能是所存儲的基址。

這與 LTC388X 是不同的,因為 LTC388X 在確定位址之前,對整個 EEPROM 進行一次完整的 CRC 驗證,而 LTC297X 則是逐步確定位址。

解決 CRC 失配問題

一般而言,CRC 失配絕不會手動解決。LTpowerPlay 用其程式設計工具可非常容易地解決 CRC 失配問題,而且 In Flight Update 也會解決 CRC 失配問題。不過,瞭解這些方法怎樣解決 CRC 失配問題,對更好地理解定址是有幫助的。解決 CRC 失配問題的第一步是,逐個訪問所有出現 CRC 失配問題的器件。這意味著,發送 PMBus 命令以恢復各個位址。

向全域地址 0x5B 發佈一條 MFR_I2C_BASE_ADDRESS 命令。然後發送一系列命令,強制所有器件讀取其 ASEL 引腳。

注:可以單獨針對一個出現 CRC 失配問題的器件,如果你能確定其目前的位址,例如對 LTC388X 而言是 0x7C,或者 LTC297X 的缺省基址。不過,使用全域位址卻簡單得多,因為這種方式不損害其他器件。此外,如果匯流排未得到良好規劃,LTC297X 落在了非 PMBus 器件的位址上,那麼單獨針對一個器件的做法可能產生副作用。

第二步是向器件發送資料。理論上,器件支持的所有命令都可以使用,但是通過 MFR_EE_DATA 命令發送批量資料更高效。LTpowerPlay 和 In Flight Update 都使用這條命令。

對規劃不佳、未使用 ASEL 引腳將所有器件設定為擁有獨一無二位址的位址設計而言,第一步不起作用。如果設定 MFR_I2C_BASE_ADDRESS 導致一個以上的 PSM 器件擁有相同的位址,那麼就無法用 MFR_EE_DATA 修復單個器件,因為擁有相同位址的任何器件都會被相同的資料設定。

匯流排分段

對 PMBus 分段有兩個主要原因:

1. 定址

2. 電容/速度

但是分段以實現定址這種方法一般僅用在非常大的系統中。

當匯流排主器件以 400kHz 運行時,在非常大和具有很長匯流排佈線的系統中,可能出現電容問題。這可能導致違反定時規範,或干擾性能目標。

一般情況下,會使用多路轉換器 LTC4306。LTC4306 的主要功能是,能夠一次連接一個段或者同時連接所有段。

當修復 CRC 失配問題時,使用該器件,使匯流排主器件一次連接一個段。當由固件使用時,用該器件將所有段連接成單條匯流排。當所有段作為單條匯流排連接時,所有位址都必須是獨一無二的。

一步步地看一個典型例子,瞭解怎樣滿足修復流程需求以及怎樣作為單條匯流排起作用,這是有説明的。

匯流排分段舉例

這個作為例子的系統由以下各部分組成:

☞ 4 段 (參見圖 2)

☞ 每段有 16 個 LTC3880 器件

☞ 一個多路轉換器 LTC4306

圖 2 匯流排分段舉例

LTC4306 的位址用 3 個 ASEL 引腳設定為 0x50。該器件還有一個全域批量寫位址 (MassWrite Address) 0x5D。LTC3880 有 0x5A 和 0x5B 兩個全域地址。這種設計將 4 個基址 0x20、0x30、0x40 和 0x60 分配給 4 個段。這避開了 0x50 至 0x5F 的地址範圍,所有淩力爾特 PSM 器件的位址在這個範圍都是可程式設計的。此外,大多數淩力爾特 I2C/SMBus 器件都支持這個位址範圍。LTC4316 I2C器件非常容易使其他任何器件與這個定址範圍相容。

還有可能在 0x5X 範圍內對多相軌定址,或者在小於 0x10 或大於 0x6F 的可用地址範圍內對多相軌定址。

圖 2:匯流排分段舉例

固件運行

通過將 LTC4306 的寄存器 3 設定為 0xF0,電路板管理控制器 (BoardManagement Controller) 將輸入 PMBus 連至所有輸出 PMBus 段。在這種情況下,匯流排上有 64 個器件的位址處於以下範圍:0x20 至 0x2F、0x30 至 0x3F、0x40 至 0x4F 和 0x60 至 0x6F。全域位址 0x5A 和 0x5B 用於全域操作。如果器件正常運行,沒有 CRC 失配問題,就不會回應地址 0x7C。

系統設定

系統設定指的是,用 LTpowerPlay 或 In Flight Update 對所有匯流排分段進行初始設定。通過將寄存器 3 的值分別設定為 0x80、0x40、0x20 和 0x10,LTC4306 會一次連接一個段。

LTpowerPlay 或 In Flight Update 會設定由 LTC4306 連接的特定段。用於被連接段的 MFR_I2C_BASE_ADDRESS用全域位址 0x5B 設定。ASEL 的引腳電阻器確保被連接段上的每個器件都擁有獨一無二的位址。

用於每個段上各個器件的 ASEL 引腳電阻器是相同的,並在 0x00 至 0x0F 範圍內選擇一個位址變址數。一次連接一個段,針對每個段單獨設定 MFR_I2C_BASE_ADDRESS,就可以使所有 64 個器件都擁有獨一無二的器件地址。

注:如果使用有兩個ASEL 引腳的器件,那麼所有分段都有可能包含超過 16 個器件,因為兩個 ASEL 引腳允許用一個基址創建多達 128 個器件位址。

解決 CRC 失配問題

這種情況與系統設定情況是相同的。LTpowerPlay 和 In Flight Update 以同樣的方式對待設定流程。在兩種情況下,設定過程中都會使用 MFR_I2C_BASE_ADDRESS。

每個段都是一個一個連接和設定的。

固件運行與系統設定的互動

LTC4306 缺省設置為所有段均斷接。因此,如果電路板管理控制器 (BMC) 保持在重定模式以進行系統調試,連接了 DC1613 PMBus-to-USB 控制器且 LTpowerPlay 正在運行,那麼 DC1613 就不會連接到匯流排上的任何 PSM 器件上。

有兩種方式確保固件不干擾 LTpowerPlay。第一種是為 BMC 提供調試模式,以便 BMC 退出重定模式,並連接所有段,然後暫停。這使LTpowerPlay 能夠與完整的匯流排互動,以便系統進入運行和調試狀態。

BMC 暫停時,會阻止與 LTpowerPlay 互動。即使 LTpowerPlay 能夠進行多重控制,依賴 PAGE 命令的多個命令也會互動。因此,暫停可防止固件和 LTpowerPlay 得到錯誤的遙測資料。

第二種方式是在調試時保持 BMC 處於重定模式,並允許 LTpowerPlay 控制 MUX。一般而言,這是最安全的情況,因為當 BMC 從重定模式釋放出來之後,例如在關斷 LTpowerPlay 之後,會將多路轉換器設定到適當的狀態,而不管目前處於何種狀態。

當 BMC 和 LTpowerPlay 交替控制匯流排時,主器件不應該假設多路轉換器的狀態。無論何時,只要採取重要行動,例如任一主器件退出暫停狀態繼續運行時,首先應該將多路轉換器設定到適當的狀態。

總結

電源系統管理的位址規劃並不複雜,但是必須注意設定以及系統從 CRC 失配中恢復的特殊情況。所有淩力爾特 PSM 器件都是相容的。

所有淩力爾特的 PSM 器件都通過基址和 ASEL 引腳設定的變址相結合來產生獨一無二的位址。如果在設定時掉電,所有PSM 器件都可能遭遇 CRC 失配問題。通過設定基址、重新設定 EEPROM、以及復位器件,可以全面恢復系統。LTpowerPlay 和 In Flight Update 自動處理合適的位址計畫的恢復。

通過位址規劃,可分配基址和 ASEL 引腳,因此絕對不會出現兩個器件永久使用相同位址的情形。使用擁有兩個ASEL 引腳的器件或者用一個諸如 LTC4306 那樣的 I2C 多路轉 換器對匯流排分段,可以設計較大型的系統。

必須在進行 PCB 設計之前進行位址規劃,因為 ASEL 引腳和匯流排分段依靠電阻器和引腳來設定。

關於電子創新網

電子創新網及時發佈有關創新設計的最新全球半導體產業資訊、半導體供應商最新動態、展會研討會資訊、技術趨勢資訊以及人物訪談等相關新聞,關注公眾號獲取更多資訊。

掃描二維碼,關注更多精彩

【推介】

以“新互聯、新智造、新未來”為主題的2017第三屆中國(廣東)國際“互聯網+”博覽會定於今年10月12-15日在廣東(潭洲)國際會展中心舉行,將設立智慧製造、互聯網+前沿技術、智慧城市、互聯網+金融、電子商務、創新創業和智慧家居生活七大主題展區,並全力引進虛擬實境和無人機板塊,加大國際企業參與度。本屆博覽會有眾多知名企業參展,是學習瞭解新技術的最好機會。我們電子創新網與主辦方合作組團去看展,歡迎報名!

“CeBIT中國工程師參觀團”分為三個主題,每個團25人,初步主題定為 :

1、大資料

2、人工智慧和雲 3、通信

加入後專享福利

1、報名即有驚喜禮物

2、組團看展,有展商專人介紹新技術和展品

3、加入參觀團,認識更多同道、新朋友

4、提供午餐

席位有限早到早得,歡迎報名!點擊閱讀原文連結直接報名

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示