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

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

3天内不再提示

输出电压读取READ_VOUT和输出电流读取READ_IOUT的十进制快速翻译方法

电子设计 来源:Wenhao Wu 作者:Wenhao Wu 2021-04-06 11:36 次阅读

PMBusTM是很多大电流电源管理芯片会用到的通用电源管理接口,其借用了SMBusTM的时序和命令格式,进行了电源常用命令的标准化。其中输出电压读取READ_VOUT(8Bh) 和输出电流读取READ_IOUT(8Ch) 是最常用的两个命令,但是命令返回值都是二进制,且并没有注明单位,从而给命令返回值的翻译带来了难度。另外,很多电源工程师不熟悉数字逻辑,不了解PMBus的命令格式,这进一步加大了使用带PMBus设备的困难。本文借助业界比较成功的40A可并联,带PMBus的DCDC转换器TPS546D24A,阐述输出电压读取READ_VOUT和输出电流读取READ_IOUT从返回值到十进制快速翻译方法。

输出电压READ_VOUT

TPS546D24A的输出电压是通过READ_VOUT寄存器中的值转化得来。其格式为ULINEAR16。要将寄存器中的值转化为十进制,可以分三步走。

1. 读取VOUT_MODE的值,VOUT_MODE在PMBUS的定义中,是一个1字节的寄存器,地址为20h,用于定义和输出电压有关的寄存器值的格式和步进值。

o4YBAGBr1aqADJlJAAF4CqNPIbU049.png

Bit[7]定义数据是相对值还是绝对值(影响过压和欠压保护相关值的定义),Bit[6:5]定义数据格式,TPS546D24只支持Linear格式,Bit[4:0]定义步进值指数N。步进值计算方法如下,注意Bit[4:0]为补码形式,转化为十进制时需要先转化为原码。

pIYBAGBr1myAIIU6AAAInqjehpw656.png

例子:VOUT_MODE=0x97。二进制为:1 00 10111,数据格式为相对值,Linear格式,步进值指数补码为10111,首位为1,该值为负数,负数的原码是补码取反再+1,为01001,十进制为-9,则步进值为2-9,为0.001953125V,1.953mV。

2. 读取READ_VOUT的值,READ_VOUT是一个2字节的寄存器,地址为8Bh,格式为Linear16,仅用于输出电压。

pIYBAGBr1cCAJC6CAACm6oDv5ws093.png

从前一步获得步进值之后,从READ_VOUT寄存器中转化得到十进制值,输出电压的计算方法为:

pIYBAGBr1niAPcNtAAANuogDPbU864.png

例子:READ_VOUT=0x01FD。二进制为:0000 0001 1111 1101,转化为十进制为509,则输出电压为509*1.953mV=994mV。

3. 看ADC所处的位置,如下图,内部ADC取值是从内部R1,R2分压电路中取电压采样,而输出电压由VOSNS和GOSNS/SLAVE两个引脚进行采样。

pIYBAGBr1eGAZEr7AACnPX_HS1Q769.png

TPS546D24内部会将ADC的值进行处理,自动乘以(R1+R2)/R2进行换算。人工不需要任何处理。READ_VOUT的结果就是实际的输出电压。

另一种特殊的情况是,如果VOSNS和GOSNS/SLAVE引脚是处于外部的一个分压网络中,则READ_VOUT的值不能反应真实的输出电压值,需要人工换算,如TPS543B20这种输出电压采样结构。这种情况下真实的输出电压为:

o4YBAGBr1fGAQk9oAAAeJp8ZSbw740.png

其中R1和R2分别是下分压和上分压电阻,VOUT输出电压计算值,READ_VOUT测量的是经过分压之后R1两端的电压。

o4YBAGBr1gaAJgdEAABXyUxVAO0971.png

输出电流

TPS546D24的输出电流是通过READ_IOUT寄存器中的值转化而来。其格式为SLINEAR11,要将寄存器中的值转化为十进制,需要分两步走。

1. 读取CAPABILITY的值,在PMBUS的定义中,是一个1字节的寄存器,地址为19h,用于定义该设备具有的PMBUS功能。影响READ_IOUT取值的,是Bit[3],TPS546D24A仅支持LINEAR格式。

pIYBAGBr1iGASy0oAAF3r9NdVZg535.png

2. 读取READ_IOUT的值,READ_IOUT是一个2字节的寄存器,地址为8Ch。Bit[15:11]是指数N,Bit[10:0]为尾数A,均为补码表示(Two’s complement翻译为补码)。由于输出电流有可能为负值,A有可能为负数。

o4YBAGBr1jmAc6qcAADogA4xJDo296.png

计算方法为:

o4YBAGBr1kiAQic9AAANhjmXslk667.png

例子1:READ_IOUT=0xD3F1。二进制为:11010 01111110001,则N为-6,A为1009,则输出电流为:1009*2^(-6),为15.766A。

例子2:READ_IOUT=0xD7F1。二进制为:11010 11111110001,则N为-6,A为-15,则输出电流为-0.234A。

3. 当输出电流读取不准时,可以补偿,需要通过IOUT_CAL_GAIN和IOUT_CAL_OFFSET进行补偿。可单独处理一相,也可全部一起处理,处理方法和TPS53688类似。可以参考多相控制器补偿方式。

编辑:hfy

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

    关注

    27

    文章

    8624

    浏览量

    146842
  • 控制器
    +关注

    关注

    112

    文章

    16191

    浏览量

    177363
  • 寄存器
    +关注

    关注

    31

    文章

    5310

    浏览量

    119983
  • 电源管理
    +关注

    关注

    115

    文章

    6154

    浏览量

    144212
收藏 人收藏

    评论

    相关推荐

    十进制数据转十六进制字符_转ASCII码

    十进制数据转十六进制字符_转ASCII码
    发表于 09-18 10:17 0次下载

    DAC8771RGZ电流输出IOUT电压VOUT出端是连在一起的,是否可以不并在一起?

    请教下DAC8771RGZ这款芯片,看官方demo板,电流输出IOUT电压VOUT出端是连在一起的,是否可以不并在一起,分成两路,单独
    发表于 08-08 07:59

    LMH6554负载电流可以直接按照输出电压除以负载来计算吗?

    手册里有几个电流数据要请教一下 上图的Iout和Isc有啥区别,Iout=+/-150mA是在Vout=0V下定义的输出
    发表于 08-07 07:32

    使用RTOS_SDK_V1.0.4版本system_adc_read读取错误的问题求解

    使用目的: 使用RTOS_SDK_V1.0.4版本,每秒钟读取adc值,主要是用来读取热敏电阻的两端的电压值,根据电压来计算环境温度。 测试方法
    发表于 07-18 08:13

    wiced_bt_dev_read_tx_power() 运行时无法读取发射功率的原因?

    你好,我的电路板是 CYW20829,我正在使用 wiced_bt_dev_read_tx_power() 每秒打印一次 tx 功率值,但我发现它不能正常工作,打印
    发表于 07-04 06:44

    CS1237读取内部温度如何处理为温度?

    现在想读取CS1237内部温度,放到恒温箱中,恒温箱中温度=25度,读取到的值为0x75cdc(转为十进制=482524),恒温箱中温度升高到60度,读取到的值为0x81503(转为
    发表于 06-19 08:32

    电流控制电压源的电流大小怎么判断

    、控制系统和信号处理等领域。本文将详细介绍CCVS的基本原理、特性参数、电路模型以及电流大小的判断方法。 一、电流控制电压源的基本原理 电流
    的头像 发表于 06-16 11:27 2159次阅读

    十进制和4位二进制计数器数据表

    电子发烧友网站提供《十进制和4位二进制计数器数据表.pdf》资料免费下载
    发表于 05-31 09:32 0次下载
    <b class='flag-5'>十进制</b>和4位二<b class='flag-5'>进制</b>计数器数据表

    示波器如何读取电压

    示波器作为电子测量领域的重要工具,其主要功能之一是读取电路中的电压值。对于电子工程师和技术人员而言,准确地读取电压值是进行电路分析、故障诊断和优化的基础。本文旨在详细介绍示波器
    的头像 发表于 05-14 17:02 4967次阅读

    双4位十进制和二进制计数器数据表

    电子发烧友网站提供《双4位十进制和二进制计数器数据表.pdf》资料免费下载
    发表于 05-13 11:12 0次下载
    双4位<b class='flag-5'>十进制</b>和二<b class='flag-5'>进制</b>计数器数据表

    同步4位十进制和二进制计数器数据表

    电子发烧友网站提供《同步4位十进制和二进制计数器数据表.pdf》资料免费下载
    发表于 05-09 11:29 0次下载
    同步4位<b class='flag-5'>十进制</b>和二<b class='flag-5'>进制</b>计数器数据表

    Python:从串口读取数据并以16进制格式展示

    本文凌顺实验室(lingshunlab.com)简单实现Python读取串口数据,并且按16进制格式显示出来。
    的头像 发表于 03-05 14:25 1013次阅读
    Python:从串口<b class='flag-5'>读取</b>数据并以16<b class='flag-5'>进制</b>格式展示

    LTM4686通过pmbus读出的寄存器的值,怎么样转换为十进制数呢?

    LTM4686 通过pmbus读出的寄存器的值,怎么样转换为十进制数呢?是否有转换公式呢?如温度、电压电流等。
    发表于 01-05 06:47

    你知道十进制转二进制如何进行转换吗?

    你知道十进制转二进制如何进行转换吗? 当我们提到数字系统时,最常见的是十进制系统和二进制系统。十进制是基于10的系统,而二
    的头像 发表于 12-20 17:05 1438次阅读

    AD5422芯片IOUT输出不接电阻负载,MCU读不到芯片寄存器,接了负载就可以正常读取是为什么?

    AD5422芯片IOUT输出不接电阻负载,MCU读不到芯片寄存器,接了负载就可以正常读取,请问是什么原因? 电路如图:
    发表于 11-30 07:12