Wenhao Wu
根据PMBUS 1.3.1版本协议,第二节8.2部分,本文将简述如何通过VOUT_COMMAND进行动态输出电压调节的方法,该方法适用于linear格式的所有PMBUS设备(TPS546C23, TPS546D24和多相控制器)。调压有几个步骤,以TPS546C23为例。TPS546C23的调压实质上是调节其内部的参考电压(EA_REF)。
1. 确定输出电压调压需求:对于一个750mV典型输出,设定其调压需求为15%,即:
2. 由外围硬件电阻分压比值,确定内部参考电压EA_REF的范围:
假设为8.5kΩ,为1.5kΩ,则比值为0.85。由上式可以确定EA_REF范围为:
3. 由EA_REF算式,确定VOUT_COMMAND范围,EA_REF的算式如下,出厂默认设置时,VOUT_SCALE_LOOP为1,VREF_TRIM,STEP_VREF_MARGIN_HIGH×OPERATION[5]和STEP_VREF_MARGIN_LOW×OPERATION[4]为0。一般而言,STEP_VREF_MARGIN_HIGH和STEP_VREF_MARGIN_LOW这两个寄存器是用来在量产时进行拉偏测试用,预先设定好STEP_VREF_MARGIN_HIGH拉偏上限,STEP_VREF_MARGIN_LOW拉偏下限,在产线上仅需要置位OPERATION寄存器[5]和[4]即可进行拉偏测试,非常简便。
由算式可知,VOUT_COMMAND的范围为:
4. 确定VOUT_COMMAND的最小步进值LSB。LSB可由VOUT_MODE(20h)确定。VOUT_MODE在PMBUS的定义中,是一个1 byte的寄存器,地址为20h,用于定义和输出电压有关的寄存器值的格式和步进值。
Bit[7]定义数据是相对值还是绝对值(影响过压和欠压保护相关值的定义),Bit[6:5]定义数据格式,Bit[4:0]定义步进值指数N。步进值计算方法如下,注意Bit[4:0]为补码形式,转化为十进制时需要先转化为原码。步进值计算方法为:
例子:以TPS546C23为例,VOUT_MODE=0x17。二进制为:0 00 10111,数据格式为绝对值,Linear格式,步进值指数补码为10111,首位为1,该值为负数,负数的原码是补码取反再+1,为01001,十进制为-9,则步进值为2-9,为0.001953125V,1.953mV。
注:TPS546C23的VOUT_MODE不可更改,为0x17。
5. 由3~4步的结果确定VOUT_COMMAND寄存器中的值。VOUT_COMMAND寄存器只能存二进制值,所以需要通过3~4步将得到的调压范围进行转化成计算机语言。算式为:
即:计算结果需要取整。
十进制二进制转化,打开计算器,进入到“programmer”码农页面。其中HEX代表16进制(HEXadecimal),DEC代表十进制(DECimal),OCT代表八进制(OCTonary),BIN代表二进制(BINary)。
在DEC分别输入277和375,得到其二进制分别为0001 0001 0101和0001 0111 0111,十六进制为0115h和0177h。
则VOUT_COMMAND的范围为0115h~0177h。
6. 写寄存器,用WRITE WORD格式写入VOUT_COMMAND(21h),即可完成调压操作。
备注:
VOUT_SCALE_LOOP是用来将VOUT_COMMAND的值和实际输出电压进行匹配的,如果外围FB处已经有分压电阻,VOUT_SCALE_LOOP可以为1,不需要做改动。
外围FB引脚有分压电阻时,VOUT_COMMAND的值将和输出电压不相等,而是成一个固定比例系数,该系数由VOUT_SCALE_LOOP×确定,当VOUT_SCALE_LOOP刚好等于时,VOUT_COMMAND转化为10进制等于实际输出电压;
VOUT_TRIM也可用于调压,但是幅值很小,为-64×1.953mV~63×1.953mV(-125mV~123mV);
VOUT_COMMAND的调压范围以数据手册表格1为准。