0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用PMbus协议对Power IC进行控制

YCqV_FPGA_EETre 来源:FPGA开发圈 作者:FPGA开发圈 2020-12-02 16:15 次阅读

PMBus(Power Management Bus)是一种电源管理总线一种控制电源转换器的开放的标准协议。它脱胎于基于I2C和SMBUS(System Management Bus),但是定义了很多和电源管理相关的命令。可以说是之前的I2C是物理层(具体Slave会有指令集,但只是怎么该slave,没有统一的指令集),而现在的PMbus却有了协议层,如果想用PMbus就必须遵守该规范,这就有了统一的协议,加速了它的推广和应用。现在很多可编程的PowerIC都引用了这个PMbus协议。

•PMBus运行时控制和状态

–通过调整VREF实现运行时电压定位

–使能和禁用每个开关

–故障和状态监视

•用户可配置的PMBus/I2C选项,保存在EEPROM

–电源接通和关断排序

–可基于固定时间延迟或PGOOD实现电源排序

–通过VREF配置实现初始电压定位

–针对每个开关调节PWM频率

–针对每个开关单独进行PWM相位对齐以尽可能减小纹波和电容器尺寸

–可调节每个稳压器的电流限制以优化电感器的尺寸和成本

–软启动时间

一、硬件设计

1.1电感选择

根据电感选择公式

注:is the current ripple in the inductor通常取最大电流的0.1~0.3。Vin为12V±10%

我们需要的电压大概范围是2~6V,电流0.5~2A,为2.2MHZ。代入公式计算得到1.26uH~27.27uH。

选择通常用的值,,电流2A,为2.2MHZ,带入可得2.8uH。

1.2输出电容选择

纹波范围一般会在10mA~500mA,如果选择100mA得以得到输出容大约0.003uF~6.15uF。

选择完电感和输出电容,就可以根据不同的模式连接电路了这里可以自由参考datasheet设计。

二、代码设计

2、1数据格式

图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是根据I2CADDR上的电阻确定,不同的阻值地址不同。Wr指读写标志位,1指读;0指写。8位的Commandcode这里指器件的寄存器地址。Databyte是向寄存器写入的数值。TPSXX支持的PEC(Packet Error Checking)代码,该代码将在每次读写操作结束时进行验证。PEC计算的内容包括Salver address(包括Wr), Command code和Data bytes for。

2.2 PEC计算

由于TPSXX的PEC是默认使能的,平且该寄存器是只读寄存器。

图3 CAPABILITY COMMAND Data Byte Contents

在发送端和接收端都需要进行PEC的计算。PMbus的PEC计算是采用8-bit循环冗余校验码(cyclic redundancy check)CRC-8。

介绍一下CRC-8:

CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。

图3参数模型

NAME:参数模型名称。
WIDTH:宽度,即CRC比特数。
POLY:生成项的简写,以16进制表示。例如:CRC-32即是0x04C11DB7,忽略了最高位的"1",即完整的生成项是0x104C11DB7。
INIT:这是算法开始时寄存器(crc)的初始化预置值,十六进制表示。
REFIN:待测数据的每个字节是否按位反转,True或False。
REFOUT:在计算后之后,异或输出之前,整个数据是否按位反转,True或False。
XOROUT:计算结果与此参数异或后得到最终的CRC值。

从上表可以看出CRC-8的生成项C(x) =x8 +x2 + x +1;INIT和XOROUT都是00;REFIN和REFOUT都是false。

具体的计算过程:

将多项式转化为二进制序列,由C(x) = x8+ x2 +x+1可知二进制一共有9位,第8位、第2位、第1位和第0位分别为1,则序列为100000111。

举个例子要计算的数据为24-bit数据da00ff(16进制),多项式的最高次为8,则在数据的后面加上8位0,数据变为da00ff00(16进制),然后使用模2除法(异或运算)除以除数100000111,最终得到的除不尽的余数,变为我们要求的CRC-8结果。

图4模2除法计算

为了得到并行输出的结果,需要把data分解一下。该电源的有效数据是24bits,我们就以24-dit数据为例。Data为D(x),生成项为C(x),Di为D(x)的第i位(0≤i≤23,整数),Dn为D(x)的第n位,且为“1”(0≤n≤23,整数),“^”为异或,“÷”为模二除法。

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时,D23、D22、……D0都是定值,故他们与生成项C(x)的模二除法的结果是固定的,如表1。如果D(x)中有哪位是”0”,则它对应的模二除法结果就为00。就是说,如果Di为“1”时就按下表中Dn的CRC-8计算结果,如果是“0”那么此位的计算结果就是“00”,可以推出,Di与与Dn的CRC-8计算结果是“&”的关系,如果Dn的CRC-8计算结果相应位为零,此项就可以省区,又异或是按位计算则可并行得到需要的结果。

以CRC-8的第7位的计算为例。

从Dn的CRC-8的计算结果中,最高位为“1”的有D22、D20、d[18]、d[17]、 d[15]、 d[13]、 d[11]、d[7]、 d[6]、 d[5]。然后对这些位做异或,就可以得到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];

数据代号 数据 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计算结果

三、仿真结果

图5CRC-8程序仿真

图6PMBUS仿真

图5中d[23:0]为需要传输的有效位(需要计算PEC部分),newCRC_D24[7:0]为计算得到的PEC结果。

图6中i2c_scl_out1和i2c_sda1是PMBUS的两根传输线,link_data1是ack应答信号标志位。

总结一下,此次我们用PMbus协议对Power IC进行控制,主要是最PEC部分进行了说明,从最终的结果看,输出电压都在我的预想范围内,可以说取得了不错的效果。在此感谢紫光同创和黑金科技提供的PGL22G硬件平台。

责任编辑:xj

原文标题:紫光同创PGL22G开发平台试用连载(1)——PMbus调试经验

文章出处:【微信公众号:FPGA开发圈】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PMBus
    +关注

    关注

    3

    文章

    97

    浏览量

    29933
  • 开发平台
    +关注

    关注

    0

    文章

    87

    浏览量

    14180
  • 紫光
    +关注

    关注

    2

    文章

    407

    浏览量

    33870

原文标题:紫光同创PGL22G开发平台试用连载(1)——PMbus调试经验

文章出处:【微信号:FPGA-EETrend,微信公众号:FPGA开发圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    PMBus™接口的降压多相控制器TPS536C7B1数据表

    电子发烧友网站提供《带PMBus™接口的降压多相控制器TPS536C7B1数据表.pdf》资料免费下载
    发表于 04-23 10:28 0次下载
    带<b class='flag-5'>PMBus</b>™接口的降压多相<b class='flag-5'>控制</b>器TPS536C7B1数据表

    Power Integrations推出InnoSwitch5离线反激式开关IC

    深耕于高压集成电路高能效功率变换领域的知名公司Power Integrations(纳斯达克股票代号:POWI)今日宣布推出InnoSwitch™5-Pro系列高效率、可数字控制的反激式开关IC
    的头像 发表于 02-01 15:01 170次阅读

    电源管理总线PMBus基础知识

    电源管理总线 PMBus 是一种完全开放的标准,其语言包含命令,可与电源转换器、稳压器或电源管理系统中的其他元件进行通信。
    发表于 01-17 15:33 649次阅读
    电源管理总线<b class='flag-5'>PMBus</b>基础知识

    鲁棒隔离式I2C/PMBus数据接口

    电子发烧友网站提供《鲁棒隔离式I2C/PMBus数据接口.pdf》资料免费下载
    发表于 11-23 14:45 0次下载
    鲁棒隔离式I2C/<b class='flag-5'>PMBus</b>数据接口

    IP2163H快充协议 IC

    IP2163H 是一款集成多种、用于 USB 输出端口的快充协议 IC ,支持 的 协议包括 HVDCP QC3.0/QC2.0(Quick Charge) Class A,FCP
    发表于 11-20 10:05 0次下载

    IP2163快充协议 IC

    IP2163 是一款集成9种、用于USB输出端口的快充协议 IC,支持双路 USB 端口充电协议。支持9种快充协议,包括 HVDCP QC3.0/QC2.0(Quick Charge)
    发表于 11-20 10:02 5次下载

    IP2161快充协议 IC

    IP2161 是一款集成 7 种、用于 USB 输出端口的快充协议 IC,支持 7 种快充协议,包括 HVDCP QC3.0/QC2.0(Quick Charge)Class A,FCP
    发表于 11-20 09:59 1次下载

    怎么MODBUS协议实现开关量采集与控制采集?

    怎么MODBUS协议实现开关量采集与控制采集
    发表于 10-23 08:17

    MAX16550A-MAX16550B: Integrated Protection IC on 12V Bus with an Integrated MOSFET, Lossless Current Sensing, and PMBus Interface Data Sheet

    : Integrated Protection IC on 12V Bus with an Integrated MOSFET, Lossless Current Sensing, and PMBus
    发表于 10-17 19:04
    MAX16550A-MAX16550B: Integrated Protection <b class='flag-5'>IC</b> on 12V Bus with an Integrated MOSFET, Lossless Current Sensing, and <b class='flag-5'>PMBus</b> Interface Data Sheet

    MAX20754: Dual-Output, Configurable Multiphase Power-Supply Controller with PMBus Interface and Internal Buck Converter Data Sheet MAX20754:

    电子发烧友网为你提供ADI(ADI)MAX20754: Dual-Output, Configurable Multiphase Power-Supply Controller with PMBus
    发表于 10-16 18:59
    MAX20754: Dual-Output, Configurable Multiphase <b class='flag-5'>Power</b>-Supply Controller with <b class='flag-5'>PMBus</b> Interface and Internal Buck Converter Data Sheet MAX20754:

    R2J25953SP 数据表(H-Bridge Control High Speed Power Switching with Built-in Driver IC and Power MOS FET)

    R2J25953SP 数据表 (H-Bridge Control High Speed Power Switching with Built-in Driver IC and Power MOS FET)
    发表于 07-14 09:44 0次下载
    R2J25953SP 数据表(H-Bridge Control High Speed <b class='flag-5'>Power</b> Switching with Built-in Driver <b class='flag-5'>IC</b> and <b class='flag-5'>Power</b> MOS FET)

    求助,求M0系列单片机作为PMbus从机的例程

    如题,我在用Nano100做PMbus从机时,与BMC通信连接上了,但是数据一直传输不对,我在想是不是自己的从机程序出了问题。BMC做主机与长城服务器电源进行PMbus通信时,BMC老是发送FFh
    发表于 06-20 06:42

    I2C通信协议:了解I2C Primer、 PMBus和SMBus

    I2C Primer的基本特性和标准,并重点说明在通信实现过程中如何正确使用该协议。从I2C的基本原理出发,我们将介绍其变体子集——系统管理总线(SMBus)和电源管理总线(PMBus)——的可用性及二者的区别。这三种协议各有专
    的头像 发表于 06-15 15:29 3631次阅读
    I2C通信<b class='flag-5'>协议</b>:了解I2C Primer、 <b class='flag-5'>PMBus</b>和SMBus

    用于控制和监视MAX20743/MAX20730开关稳压器的PMBus协议

    MAX20743/MAX20730完全集成的开关稳压器包括串行总线(PMBus™),支持高级调压阀监测和控制功能。本应用笔记介绍了MAX20743/MAX20730芯片,通过PMBus制造修订命令报告F作为修订版。
    的头像 发表于 06-13 16:49 872次阅读
    用于<b class='flag-5'>控制</b>和监视MAX20743/MAX20730开关稳压器的<b class='flag-5'>PMBus</b><b class='flag-5'>协议</b>

    一文汇总常见的通讯协议

    在我们日常进行硬件电路设计以及选用各种模拟IC的时候经常会遇到这些RS485, IIC, SMBus, PMBus, SPI, RS232, CAN, LIN, UART, PHY通讯协议
    的头像 发表于 05-12 17:39 1.1w次阅读