PSMI – Power Supply Management Interface

Loading

什麼是 Power Supply Management Interface (PSMI)
這是新的電源管理功能,主要可以讓主機系統可以與電源溝通,並隨時提供電源供應器的電流,電壓,系統功耗,風扇轉速和溫度給主機系統知道.主機會依據實際情況來調整系統配置 如溫度的監控與風扇的控制,可以讓系統能以更好的方式來調整風扇速度並改善溫度與系統噪音問題.而電壓監控可以讓系統計算輸入功率和警告系統電壓調節的問題.

所以規範並定義了電源管理介面(PSMI),主機系統主要是透過 SMBus (類似於 I²C ,也有直接採用 I²C 來做)的方法與電源供應器溝通.

那先來看看什麼是 I²C (Inter-Integrated Circuit,讀法為 “I-squared-C”) – https://benjr.tw/11240 是一種慢速 serial bus 的協定,主要透過兩條線路的匯流排 (串列資料(SDA)及串列時脈(SCL)) 與電腦上的控制晶片(MC : Micro Controller)做溝通.

Power Supply Management Interface (PSMI) 主要提供了下面的功能.
Thermal management

  • Ambient / Control temperature sensor(s)
  • Fan speed sensor(s) / System control of power supply fan(s)
  • Power supply fan control override indicator

Power monitoring

  • AC input / Output voltages
  • AC Input / Output currents

Diagnostics

  • Shutdown events; general failure, over current, over temperature, and loss of AC input
  • Warning events; high power, high current, high temperature, slowing fan

Status

  • Fan control override mode
  • Signals; PWOK, PSON
  • Input voltage range indicator
  • Interrupt
  • Redundancy

Control

  • Fan control mode; system or power supply
  • Failure and Warning LED indication

Power Supply Capability records

  • Reporting of power supply capabilities; currents, voltages, wattages, temperatures, and fan speed
  • Header; PSMI designator, PSMI Design Guide revision level, Code revision level, PSMI device vendor
    specific data

PSMI 的值在 Linux 下我們可以直接透過 I²C 的方式來讀取.關於 I²C 的指令請先參考 https://benjr.tw/93915

Temperature 與 AC input / Output voltages ,currents 讀取的值都還是需要再做轉換, Output Voltage 的換算方式如下:
PSMI01
PSMI 用兩個位元組 (2bytes=16bits) 來紀錄 Output Voltage
0x0C00 (透過 I2C 讀出來的值 ) 先轉成 0000 1100 0000 0000 (二進制)

0000 1100 0000 0000 (Bit 15 表示 0-> 正值 1->負值,負值要做2補數運算:一個數字的二補數就是將該數字作位元反相運算,再將結果加 1)

0000 1100 0000 0000 (Bit 0-7 -> 小數點 ,Bit 8-14 整數)

0000 1100 (Bit -> 8-14 整數) 轉換成10進制 所以是 4+8=12
0000 0000 (Bit 0-7 -> 小數點) 如果有值就一樣轉成 10進制 但需要除 256 (1/256)
所以輸出電壓 Output Voltage 算出來是 12V

算起來蠻麻煩的,其實有一個比較好的方式來算,先轉成10進制,然後除 256 (1/256) 就可以算出來.這種方式很適合用在 Excel 公式的直接轉換.

0x0C00 (十六進制)= 0000 1100 0000 0000(二進制) = 3072(十進制)
3072/256=12 (一樣算出)

但不同的 sensor 算法皆不同 (詳細算法請參考 Power Supply Management Interface Design Guide2.12 說明)如:

  • Temperature sensors 除 64 (1/64C)
  • Input Voltage 除 32 (1/32V)
沒有解決問題,試試搜尋本站其他內容

2 thoughts on “PSMI – Power Supply Management Interface

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料