PMBus(Power Management Bus)是一種電源管理總線一種控制電源轉(zhuǎn)換器的開(kāi)放的標(biāo)準(zhǔn)協(xié)議。它脫胎于基于I2C和SMBUS(System Management Bus),但是定義了很多和電源管理相關(guān)的命令。可以說(shuō)是之前的I2C是物理層(具體Slave會(huì)有指令集,但只是怎么該slave,沒(méi)有統(tǒng)一的指令集),而現(xiàn)在的PMbus卻有了協(xié)議層,如果想用PMbus就必須遵守該規(guī)范,這就有了統(tǒng)一的協(xié)議,加速了它的推廣和應(yīng)用。現(xiàn)在很多可編程的PowerIC都引用了這個(gè)PMbus協(xié)議。
?PMBus運(yùn)行時(shí)控制和狀態(tài)
–通過(guò)調(diào)整VREF實(shí)現(xiàn)運(yùn)行時(shí)電壓定位
–使能和禁用每個(gè)開(kāi)關(guān)
–故障和狀態(tài)監(jiān)視
?用戶(hù)可配置的PMBus/I2C選項(xiàng),保存在EEPROM中
–電源接通和關(guān)斷排序
–可基于固定時(shí)間延遲或PGOOD實(shí)現(xiàn)電源排序
–通過(guò)VREF配置實(shí)現(xiàn)初始電壓定位
–針對(duì)每個(gè)開(kāi)關(guān)調(diào)節(jié)PWM頻率
–針對(duì)每個(gè)開(kāi)關(guān)單獨(dú)進(jìn)行PWM相位對(duì)齊以盡可能減小紋波和電容器尺寸
–可調(diào)節(jié)每個(gè)穩(wěn)壓器的電流限制以?xún)?yōu)化電感器的尺寸和成本
–軟啟動(dòng)時(shí)間
一、硬件設(shè)計(jì)
1.1電感選擇
根據(jù)電感選擇公式
注:is the current ripple in the inductor通常取最大電流的0.1~0.3。Vin為12V±10%
我們需要的電壓大概范圍是2~6V,電流0.5~2A,為2.2MHZ。代入公式計(jì)算得到1.26uH~27.27uH。
選擇通常用的值,,電流2A,為2.2MHZ,帶入可得2.8uH。
1.2輸出電容選擇
紋波范圍一般會(huì)在10mA~500mA,如果選擇100mA得以得到輸出容大約0.003uF~6.15uF。
選擇完電感和輸出電容,就可以根據(jù)不同的模式連接電路了這里可以自由參考datasheet設(shè)計(jì)。
二、代碼設(shè)計(jì)
2、1數(shù)據(jù)格式
圖1 Send Byte Protocol With PEC
圖2Write Byte Protocol With PEC
When data is transmitted, the lowest order byte is sent first and the highest order byte is sent last.
Within any byte, the most significant bit (MSB) is sent first and the least significant bit (LSB) is sent last.
7位的Slaveaddress是根據(jù)I2CADDR上的電阻確定,不同的阻值地址不同。Wr指讀寫(xiě)標(biāo)志位,1指讀;0指寫(xiě)。8位的Commandcode這里指器件的寄存器地址。Databyte是向寄存器寫(xiě)入的數(shù)值。TPSXX支持的PEC(Packet Error Checking)代碼,該代碼將在每次讀寫(xiě)操作結(jié)束時(shí)進(jìn)行驗(yàn)證。PEC計(jì)算的內(nèi)容包括Salver address(包括Wr), Command code和Data bytes for。
2.2 PEC計(jì)算
由于TPSXX的PEC是默認(rèn)使能的,平且該寄存器是只讀寄存器。
圖3 CAPABILITY COMMAND Data Byte Contents
在發(fā)送端和接收端都需要進(jìn)行PEC的計(jì)算。PMbus的PEC計(jì)算是采用8-bit循環(huán)冗余校驗(yàn)碼(cyclic redundancy check)CRC-8。
介紹一下CRC-8:
CRC即循環(huán)冗余校驗(yàn)碼(Cyclic Redundancy Check):是數(shù)據(jù)通信領(lǐng)域中最常用的一種查錯(cuò)校驗(yàn)碼,其特征是信息字段和校驗(yàn)字段的長(zhǎng)度可以任意選定。循環(huán)冗余檢查(CRC)是一種數(shù)據(jù)傳輸檢錯(cuò)功能,對(duì)數(shù)據(jù)進(jìn)行多項(xiàng)式計(jì)算,并將得到的結(jié)果附在幀的后面,接收設(shè)備也執(zhí)行類(lèi)似的算法,以保證數(shù)據(jù)傳輸?shù)恼_性和完整性。
圖3參數(shù)模型
NAME:參數(shù)模型名稱(chēng)。
WIDTH:寬度,即CRC比特?cái)?shù)。
POLY:生成項(xiàng)的簡(jiǎn)寫(xiě),以16進(jìn)制表示。例如:CRC-32即是0x04C11DB7,忽略了最高位的"1",即完整的生成項(xiàng)是0x104C11DB7。
INIT:這是算法開(kāi)始時(shí)寄存器(crc)的初始化預(yù)置值,十六進(jìn)制表示。
REFIN:待測(cè)數(shù)據(jù)的每個(gè)字節(jié)是否按位反轉(zhuǎn),True或False。
REFOUT:在計(jì)算后之后,異或輸出之前,整個(gè)數(shù)據(jù)是否按位反轉(zhuǎn),True或False。
XOROUT:計(jì)算結(jié)果與此參數(shù)異或后得到最終的CRC值。
從上表可以看出CRC-8的生成項(xiàng)C(x) =x8 +x2 + x +1;INIT和XOROUT都是00;REFIN和REFOUT都是false。
具體的計(jì)算過(guò)程:
將多項(xiàng)式轉(zhuǎn)化為二進(jìn)制序列,由C(x) = x8+ x2 +x+1可知二進(jìn)制一共有9位,第8位、第2位、第1位和第0位分別為1,則序列為100000111。
舉個(gè)例子要計(jì)算的數(shù)據(jù)為24-bit數(shù)據(jù)da00ff(16進(jìn)制),多項(xiàng)式的最高次為8,則在數(shù)據(jù)的后面加上8位0,數(shù)據(jù)變?yōu)閐a00ff00(16進(jìn)制),然后使用模2除法(異或運(yùn)算)除以除數(shù)100000111,最終得到的除不盡的余數(shù),變?yōu)槲覀円蟮腃RC-8結(jié)果。
圖4模2除法計(jì)算
為了得到并行輸出的結(jié)果,需要把data分解一下。該電源的有效數(shù)據(jù)是24bits,我們就以24-dit數(shù)據(jù)為例。Data為D(x),生成項(xiàng)為C(x),Di為D(x)的第i位(0≤i≤23,整數(shù)),Dn為D(x)的第n位,且為“1”(0≤n≤23,整數(shù)),“^”為異或,“÷”為模二除法。
CRC(x)=D(x)÷C(x)……………………………………………………①
D(x)= D23^D22^D21^D20^……^D0 ………………………………②
②代入①
CRC(x)=(D23÷C(x))^(D22÷C(x))^……^(D0÷C(x))
如果D(x)為24’hFFFFFF時(shí),D23、D22、……D0都是定值,故他們與生成項(xiàng)C(x)的模二除法的結(jié)果是固定的,如表1。如果D(x)中有哪位是”0”,則它對(duì)應(yīng)的模二除法結(jié)果就為00。就是說(shuō),如果Di為“1”時(shí)就按下表中Dn的CRC-8計(jì)算結(jié)果,如果是“0”那么此位的計(jì)算結(jié)果就是“00”,可以推出,Di與與Dn的CRC-8計(jì)算結(jié)果是“&”的關(guān)系,如果Dn的CRC-8計(jì)算結(jié)果相應(yīng)位為零,此項(xiàng)就可以省區(qū),又異或是按位計(jì)算則可并行得到需要的結(jié)果。
以CRC-8的第7位的計(jì)算為例。
從Dn的CRC-8的計(jì)算結(jié)果中,最高位為“1”的有D22、D20、d[18]、d[17]、 d[15]、 d[13]、 d[11]、d[7]、 d[6]、 d[5]。然后對(duì)這些位做異或,就可以得到crc[7]。
crc[7] = d[22] ^ d[20] ^ d[18] ^ d[17] ^ d[15] ^ d[13] ^ d[11] ^ d[7] ^ d[6] ^ d[5]
按上述方法可以得到:
crc[0] = d[23] ^ d[21] ^ d[19] ^ d[18] ^ d[16] ^ d[14] ^ d[12] ^ d[8] ^ d[7] ^ d[6] ^ d[0];
crc[1] = d[23] ^ d[22] ^ d[21] ^ d[20] ^ d[18] ^ d[17] ^ d[16] ^ d[15] ^ d[14] ^ d[13] ^ d[12] ^ d[9] ^ d[6] ^ d[1] ^ d[0];
crc[2] = d[22] ^ d[17] ^ d[15] ^ d[13] ^ d[12] ^ d[10] ^ d[8] ^ d[6] ^ d[2] ^ d[1] ^ d[0];
crc[3] = d[23] ^ d[18] ^ d[16] ^ d[14] ^ d[13] ^ d[11] ^ d[9] ^ d[7] ^ d[3] ^ d[2] ^ d[1];
crc[4] = d[19] ^ d[17] ^ d[15] ^ d[14] ^ d[12] ^ d[10] ^ d[8] ^ d[4] ^ d[3] ^ d[2];
crc[5] = d[20] ^ d[18] ^ d[16] ^ d[15] ^ d[13] ^ d[11] ^ d[9] ^ d[5] ^ d[4] ^ d[3];
crc[6] = d[21] ^ d[19] ^ d[17] ^ d[16] ^ d[14] ^ d[12] ^ d[10] ^ d[6] ^ d[5] ^ d[4];
crc[7] = d[22] ^ d[20] ^ d[18] ^ d[17] ^ d[15] ^ d[13] ^ d[11] ^ d[7] ^ d[6] ^ d[5];
數(shù)據(jù)代號(hào) | 數(shù)據(jù) | Dn的CRC-8 |
D23 | 800000 | 0B |
D22 | 400000 | 86 |
D21 | 200000 | 43 |
D20 | 100000 | A2 |
D19 | 080000 | 51 |
D18 | 040000 | AB |
D17 | 020000 | D6 |
D16 | 010000 | 6B |
D15 | 008000 | B6 |
D14 | 004000 | 5B |
D13 | 002000 | AE |
D12 | 001000 | 57 |
D11 | 000800 | A8 |
D10 | 000400 | 54 |
D9 | 000200 | 2A |
D8 | 000100 | 15 |
D7 | 000080 | 89 |
D6 | 000040 | C7 |
D5 | 000020 | E0 |
D4 | 000010 | 70 |
D3 | 000008 | 38 |
D2 | 000004 | 1C |
D1 | 000002 | 0E |
D0 | 000001 | 07 |
表1分式CRC-8計(jì)算結(jié)果
三、仿真結(jié)果
圖5CRC-8程序仿真
圖6PMBUS仿真
圖5中d[23:0]為需要傳輸?shù)挠行唬ㄐ枰?jì)算PEC部分),newCRC_D24[7:0]為計(jì)算得到的PEC結(jié)果。
圖6中i2c_scl_out1和i2c_sda1是PMBUS的兩根傳輸線,link_data1是ack應(yīng)答信號(hào)標(biāo)志位。
總結(jié)一下,此次我們用PMbus協(xié)議對(duì)Power IC進(jìn)行控制,主要是最PEC部分進(jìn)行了說(shuō)明,從最終的結(jié)果看,輸出電壓都在我的預(yù)想范圍內(nèi),可以說(shuō)取得了不錯(cuò)的效果。在此感謝紫光同創(chuàng)和黑金科技提供的PGL22G硬件平臺(tái)。
責(zé)任編輯:xj
原文標(biāo)題:紫光同創(chuàng)PGL22G開(kāi)發(fā)平臺(tái)試用連載(1)——PMbus調(diào)試經(jīng)驗(yàn)
文章出處:【微信公眾號(hào):FPGA開(kāi)發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
PMBus
+關(guān)注
關(guān)注
3文章
129瀏覽量
30873 -
開(kāi)發(fā)平臺(tái)
+關(guān)注
關(guān)注
0文章
96瀏覽量
14630 -
紫光
+關(guān)注
關(guān)注
2文章
419瀏覽量
34407
原文標(biāo)題:紫光同創(chuàng)PGL22G開(kāi)發(fā)平臺(tái)試用連載(1)——PMbus調(diào)試經(jīng)驗(yàn)
文章出處:【微信號(hào):FPGA-EETrend,微信公眾號(hào):FPGA開(kāi)發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
通過(guò)XRES引腳POWER_DRILL2GO保持ic復(fù)位是否會(huì)降低ic的最終輸出?
LM25066 帶 PMBus 的 2.9V 至 17V 熱插拔控制器數(shù)據(jù)手冊(cè)

LM5064系列 帶 PMBus 的 -10V 至 -80V 熱插拔控制器數(shù)據(jù)手冊(cè)

TPS40422 帶 PMBus 的雙輸出或多相同步降壓控制器數(shù)據(jù)手冊(cè)

TPS40428 雙輸出、2 相、可堆疊 PMBus 同步降壓無(wú)驅(qū)動(dòng)器控制器數(shù)據(jù)手冊(cè)

Power Integrations推出TinySwitch-5 IC

UCD90320定序器和系統(tǒng)健康控制器PMBus命令參考

供應(yīng)SW2303P高集成度的快充協(xié)議控制器IC
供應(yīng)SW2335 高集成度的快充協(xié)議控制器IC
用FPGA對(duì)DAC81416EVM輸出的電壓進(jìn)行控制,請(qǐng)問(wèn)需要從哪里進(jìn)行?
利用Benchmarq的快速充電控制IC進(jìn)行高端電流檢測(cè)

評(píng)論