MPS 电源芯片调试文档

MPS 电源芯片调试文档

目前需要整版调试,其中一点需要实时监测 MPS 电源芯片的Vddn Vddp 电流 & Power consumption(功耗).
通信机制:SMBUS 原理

MPS电源芯片手册: https://download.csdn.net/download/weixin_45384176/21847403

快速整理

既然是基于SM-bus通信原理,那I2c的基础知识就不介绍了, 他的特性请参考手册仔细阅读,我们用软件的角度去查看访问MPS获取我们想要的信息。

  • 1 )硬件确定MPS 地址, 即通过硬件连接方式确定I2c设备地址. MPS_ADDR
  • 2 )Mps Support PMBUS Commands/Registers (Page0/1). : 有两套命令操作,通过Page0 or Page1 切换.
  • 3 )Page0 控制Rail1 , Page1 控制Rail2. Rail在我看来就是通道的意思,硬件连接分别控制Vddn & Vddp 的操作.

在用寄存器

  1. VOUT_COMMAND (Reg0x21) : 设置对应Rail的参考voltage VID . (我们用来调压)
  2. READ_VOUT (Reg0x8B) : 读取Rail的 VOSEN-VORTN voltage. (我们可以获取我们写进Reg21的一定换算的数据).
  3. READ_IOUT (Reg0x8c) : 读取目前Rail的输出电流, 该值是一个实时变化的数据, 我们在加大CPU负载时,电流会加大.
  4. READ_PIN (Reg0x97) : 读取Rail的输入功耗.
  5. 重要的Page Reg0: 控制切换Page的操作,即 控制Rail1/Rail2.

Code

  72   I2cInitSetFreq (I2cRegBaseAddr, I2C_CTL_CLK, I2C_BUS_RATE, ALGORITHM_3A); //Lock Freq              
  73                                                                                                      
  74   Val16 = 0x0; //Page select 0                                                                                                                                        
  77   I2cCtlWrite (I2cRegBaseAddr, MPS_ADDR, 0/*Page Reg*/, 0x1, &Val16);                                                                                           
  79                                                                                                                                                                                        
  81   //Vddn IOUT  /*读取Rail1的 输出电流*/                                                                                      
  82   I2cCtlRead (I2cRegBaseAddr, MPS_ADDR, 0x8c/*READ_IOUT*/, 0x2, &Val16);                                          
  83   DbgPrint (DEBUG_INFO, "CpuVddpVoltageCtrl. QDY Vddn IOUT %lx \n",Val16);                           
  84                                                                                                      
  85   Val16 = 0x0;                                                                                                         
  87   I2cCtlWriteNostop (I2cRegBaseAddr, MPS_ADDR, 0x0, 0x1, &Val16);                                                                         
  89   DbgPrint (DEBUG_INFO, "CpuVoltageCtrl..3\n");                                                  
  90   } 

以上为读取Rail1的输出电流,同理切换Page为1可操作Rail2.

协议简单理解为:发MPS地址MPS_ADDR -> 发Command/Register -> 读取数据或写入数据, 其中上下文操作需要有一个整体Index逻辑来作选择。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来杯清咖_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值