1 用PMbus协议对Power IC进行控制-德赢Vwin官网 网
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开发圈】欢迎添加关注!文章转载请注明出处。

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

    关注

    3

    文章

    102

    浏览量

    30235
  • 开发平台
    +关注

    关注

    0

    文章

    94

    浏览量

    14275
  • 紫光
    +关注

    关注

    2

    文章

    412

    浏览量

    34016

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

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

收藏 人收藏

    评论

    相关推荐

    UCD90320定序器和系统健康控制PMBus命令参考

    德赢Vwin官网 网站提供《UCD90320定序器和系统健康控制PMBus命令参考.pdf》资料免费下载
    发表于 11-29 15:53 0次下载
    UCD90320定序器和系统健康<b class='flag-5'>控制</b>器<b class='flag-5'>PMBus</b>命令参考

    供应SW2303P高集成度的快充协议控制IC

    概述 SW2303P 是一款高度集成的快充协议控制器,支持 BC1.2、PD3.2 SPR、QC、SCP、FCP、 AFC、UFCS、PE 等快充协议,支持私有协议定制。SW2303P
    发表于 11-20 09:34

    供应SW2335 高集成度的快充协议控制IC

    概述 SW2335 是一款高集成度的快充协议控制器。SW2335 内嵌 ARM Cortex-M0 内核,最高工 作频率 40MHz,支持 I2C、UART、GPIO 等通用外设接口。SW2335
    发表于 11-15 09:56

    FPGA对DAC81416EVM输出的电压进行控制,请问需要从哪里进行

    我需要用FPGA对DAC81416EVM输出的电压进行控制,请问我需要从哪里进行。需要通过自带的USB连接线控制,还是直接对引脚通过SPI协议
    发表于 11-14 08:16

    利用Benchmarq的快速充电控制IC进行高端电流检测

    德赢Vwin官网 网站提供《利用Benchmarq的快速充电控制IC进行高端电流检测.pdf》资料免费下载
    发表于 10-24 10:02 0次下载
    利用Benchmarq的快速充电<b class='flag-5'>控制</b><b class='flag-5'>IC</b><b class='flag-5'>进行</b>高端电流检测

    STM32是否支持CCP协议,能否INCA/CANaple通过CAN总线的CCP协议进行标定?

    想开发一款控制器,基于带CAN总线接口的F407系列。 现在考虑参数标定/正定的问题。 不知能否通过生成A2L文件,然后用INCA/ CANaple 通过CAN总线的CCP协议进行标定? 以前没有用过STM32芯片,
    发表于 05-31 08:14

    支持PPS调压的PD协议快充控制器S6605系列数据手册

    PD协议快充控制器概述PS6605系列是一款专为USB Type-C接口设计的PD协议快充控制器,由Parksonx公司生产。这款控制器旨
    发表于 05-30 14:18 0次下载

    Power Integrations收购Odyssey Semiconductor资产

    深耕于高压集成电路高能效功率变换领域的知名公司Power Integrations近日宣布达成协议,收购垂直氮化镓(GaN)晶体管技术开发商Odyssey Semiconductor
    的头像 发表于 05-10 11:53 536次阅读
    <b class='flag-5'>Power</b> Integrations收购Odyssey Semiconductor资产

    PMBus电源模块TPSM846C23数据表

    TPSM846C23 是一款 35A 固定频率降压电源模块,兼容 PMBus 并支持 PMBus 命令,可实现对电源稳压器主要功能的配置、控制和监控。
    发表于 04-24 15:10 0次下载
    <b class='flag-5'>PMBus</b>电源模块TPSM846C23数据表

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

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

    3V 至 20V PMBus 同步降压控制器TPS40400数据表

    德赢Vwin官网 网站提供《3V 至 20V PMBus 同步降压控制器TPS40400数据表.pdf》资料免费下载
    发表于 04-22 10:22 0次下载
    3V 至 20V <b class='flag-5'>PMBus</b> 同步降压<b class='flag-5'>控制</b>器TPS40400数据表

    PMBus的4相D-CAP+TM降压控制器TPS53640A数据表

    德赢Vwin官网 网站提供《带PMBus的4相D-CAP+TM降压控制器TPS53640A数据表.pdf》资料免费下载
    发表于 04-22 09:41 4次下载
    带<b class='flag-5'>PMBus</b>的4相D-CAP+TM降压<b class='flag-5'>控制</b>器TPS53640A数据表

    具有PMBus™接口的双输出或双相同步降压控制器TPS40422数据表

    德赢Vwin官网 网站提供《具有PMBus™接口的双输出或双相同步降压控制器TPS40422数据表.pdf》资料免费下载
    发表于 04-10 09:47 0次下载
    具有<b class='flag-5'>PMBus</b>™接口的双输出或双相同步降压<b class='flag-5'>控制</b>器TPS40422数据表

    具有AVSBus™和PMBus™接口的双通道D-CAP+™降压多相控制器TPS53676数据表

    德赢Vwin官网 网站提供《具有AVSBus™和PMBus™接口的双通道D-CAP+™降压多相控制器TPS53676数据表.pdf》资料免费下载
    发表于 03-21 16:27 0次下载
    具有AVSBus™和<b class='flag-5'>PMBus</b>™接口的双通道D-CAP+™降压多相<b class='flag-5'>控制</b>器TPS53676数据表

    电源管理总线PMBus基础知识

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