目标:以 EVL4248-QV-00A(MP4248GQV-0000)为功率核心,MCU 通过 I2C 设定电压/限流, 按键下令后经输出开关接通负载,做成"配置好再输出"的可调电源。 本文档汇总方案所需的全部已核实技术要点,数据来源:本目录EVL4248-QV-00A.pdf(评估板手册 Rev.1.0)与 MP4248GQV.pdf(芯片数据手册 Rev.1.0)。
1. 系统架构
┌──────────────────────────────────┐ VIN (3.6~36V) ──┬──────►│ EVL4248-QV-00A (MP4248) │──► VOUT 内部节点 │ │ 上电自动输出 5V(拦不住) │ │ └───▲────▲───────────▲────────────┘ │ I2C │ │EN │ IMON │ ┌───┴────┴───────────┴──────────┐ │ │ MCU │ │ │ GPIO──►输出开关EN │ │ │ ADC ◄──VOUT分压 / IMON │ │ │ GPIO◄──按键 / ALT中断 │ │ └──────▲────────────────────────┘ │ │ 3.3V │ ┌──────┴──────┐ └──────►│ MP2451 Buck │(36V→3.3V,给MCU独立供电) └─────────────┘ VOUT 内部节点 ──[输出开关 TPS2663]──[理想二极管 LM74700]──[TVS]──► 输出端子
核心认知(已核实):
评估板 OTP 配置码 0000:OPERATION 默认 On、VREF 默认 0.5V、EN 经 100kΩ 上拉 VIN →上电即自动输出约 5.05V,无法用 I2C 阻止。
OTP 只能由 MPS 出厂烧录(用户不可烧),I2C 写的寄存器断电即恢复 OTP 默认值。
因此"配置好再输出"必须靠输出级开关实现,芯片本体行为绕不开。
2. 电源树:MCU 供电
| 输入 | 3.3V ~ 36V(接 VIN,与主功率同源) |
| 输出 | 3.3V / 0.6A(固定电压版本或可调) |
| 频率 | 2MHz,关断电流 3µA |
MCU 必须从 VIN 取电,严禁从 VOUT 取电(VOUT 调低会导致 MCU 断电死锁)。
不需要继电器切换供电;VIN 始终在 MP2451 输入范围内。
输入电容耐压 ≥50V。
MCU 电流需求大(带 WiFi/屏)可换 MP4560(55V/2A)或 MP4420(36V/2A)。
高压 LDO 不推荐:(36−3.3)V × 20mA ≈ 0.65W 无法散热。
MCU 与评估板必须共地(I2C 通信前提)。
3. I2C 控制接口
3.1 硬件连接(CN2,10-pin 排针)
| SCL | 1 / 2 |
| SDA | 5 / 6 |
| GND | 3/4/7/8/9/10 任一 |
从机地址 0x67(7 位);8 位写/读地址 = 0xCE / 0xCF
板上已有 2.2kΩ 上拉至 VCC,MCU 侧无需加上拉
逻辑电平:VIH ≥ 1.35V,3.3V MCU 直接兼容;fSCL 最高 1MHz
I2C 生效条件:VIN 与 EN 均高于阈值(EN 拉低时 I2C 不工作!)
3.2 关键寄存器(PMBus)
| 0x01 | OPERATION | 1 | 0x80=开(OTP默认)/ 0x00=关;EN 优先级更高 |
| 0x03 | CLEAR_FAULTS | Send Byte | 清故障标志,释放 ALT |
| 0x21 | VOUT_COMMAND | 2 | 设定输出电压,Linear16,低字节先发 |
| 0x79 | STATUS_WORD | 2 | 故障汇总(只读) |
| 0x7D | STATUS_TEMPERATURE | 1 | 温度状态(只读) |
| 0xD1 | MFR_CURRENT_LIMIT | 1 | CC 限流点(默认 5.4A) |
| 0xD0~0xD4 | MFR_CTRL1~4 | 1 | 频率/模式/摆率/线补等 |
| 0xD8 | MFR_STATUS_MASK | 1 | ALT 事件掩码 |
3.3 VOUT_COMMAND(0x21)计算
VOUT = V × 2^(-10) × FB_RATIO / 10 V = ceil( VOUT × 1024 × 10 / FB_RATIO ) ← 非整数向上取整(手册要求)
评估板实际 FB_RATIO = (90.9k+10k)/10k = 10.09(不是手册速查表假设的 10,偏差 0.9%)
出厂默认 0x1400 → VREF 0.5V → 实测约 5.05V 属正常
FB_RATIO=10:分辨率 10mV,有效范围 1V~21.47V;超范围行为异常,禁止设置
需要 28V 输出(EPR):改反馈网络为 FB_RATIO=15(R1=140k/R2=10k),范围扩至 32.205V,且需 VIN>19V
内部 DAC:0.1V~2.147V,1mV 步进(11 位)
常用值(按 FB_RATIO=10.09 修正):
| 5V | 0x13D3 | 0x1400 |
| 9V | 0x23AE | 0x2400 |
| 12V | 0x2F93 | 0x3000 |
| 15V | 0x3B77 | 0x3C00 |
| 20V | 0x4F4A | 0x5000 |
3.4 调压摆率
VOUT 渐变非瞬时:VREF 上升默认 0.16mV/µs、下降 0.04mV/µs(0xD3 寄存器可配)
实际 VOUT 摆率 = VREF 摆率 × FB_RATIO
例:默认摆率下 5V→20V 需约 (20−5)/(0.16×10.09) ≈ 9.3ms
3.5 参考驱动代码
#define MP4248_ADDR 0x67 /* 7位地址 */
#define CMD_OPERATION 0x01
#define CMD_VOUT 0x21
#define CMD_ILIMIT 0xD1
#define FB_RATIO 10.09f /* 评估板实测分压比 */
uint16_t vout_to_reg(float vout) {
return (uint16_t)ceilf(vout * 1024.0f * 10.0f / FB_RATIO);
}
/* PMBus Write Word: [0x21, 低字节, 高字节] */
void mp4248_set_vout(float v) {
uint16_t r = vout_to_reg(v);
uint8_t buf[3] = { CMD_VOUT, r & 0xFF, r >> 8 };
i2c_write(MP4248_ADDR, buf, 3);
}
void mp4248_output_on(void) { uint8_t b[2]={CMD_OPERATION,0x80}; i2c_write(MP4248_ADDR,b,2); }
void mp4248_output_off(void) { uint8_t b[2]={CMD_OPERATION,0x00}; i2c_write(MP4248_ADDR,b,2); }4. EN 引脚控制
| 开启阈值(上升) | 1.22V ±5% |
| 迟滞 | 200mV(关断阈值约 1.0V) |
| 引脚耐压 | 40V |
| 板上上拉 | R8=100kΩ → VIN |
3.3V/5V GPIO 推挽直连 EN 排针即可,不会烧 MCU:100kΩ 上拉把最坏灌电流限制在 0.36mA(VIN=36V 时)。
用途:硬关断/保护。注意 EN 低时 I2C 同时失效。
EN 与 OPERATION 配合:EN 做硬件级使能,OPERATION 做日常软开关。
5. 输出电流监控(IMON)
I2C 无法数字回读电流值(无 READ_IOUT 命令);限流/过流只有事件标志(STATUS_WORD / ALT)
精确电流走 IMON 模拟引脚 → MCU ADC(板上已带 R13=10kΩ/C6=100pF 滤波)
换算(RSENS=5mΩ、增益 68V/V):IOUT ≈ V_IMON ÷ 0.34,5A → 约 1.7V,精度 ±3%
限制:自动 PFM 模式下轻载时 IMON 仅在 CCM 有效;需轻载准确监测就设强制 PWM(出厂默认恰为强制 PWM)
真正的限流由芯片 CC 功能完成(0xD1 下发限值),MCU 无需外搭限流电路
6. 输出级电路("下令才输出"的执行层)
6.1 输出开关:TPS2663 eFuse(必选)
选型更正:TPS2660 限流最大仅 2.23A,带不动 5A 输出;必须用 TPS2663(0.6~6A 可调限流,Rds(on)=31mΩ,4.5~60V)。
GPIO 控制方法(已核实 TPS2660x 数据手册):
| UVLO | MCU GPIO 直连做使能:阈值 1.19V 上升 / 1.1V 下降,引脚耐压 60V,漏电流 ±100nA。GPIO 高 → 导通;低 → 关断输出 |
| SHDN | 不要用 3.3V GPIO 直驱(退出关断阈值最大 3.4V,3.3V 不保证可靠);不用时接 5V 保持常开 |
| FLT | 故障输出(开漏),接 MCU 输入;注意主动 UVLO 关断也会拉低 FLT,软件需区分 |
| ILIM / dVdT / OVP | 电阻设定限流点、输出爬升斜率、过压保护阈值 |
若需 7A 满血输出(超出 eFuse 6A 上限):改用分立方案——60V P-MOS(或 N-MOS+高边驱动),GPIO 经小信号三极管做电平转换,MOS 选 Rds(on)<10mΩ(7A 损耗 <0.5W)。
6.2 防倒灌:LM74700 理想二极管(电池类负载必选)
防止关机后电池从输出端倒灌(MP4248 的关断放电功能会持续消耗电池)
LM74700(TI,65V)+ 60V N-MOS,压降仅几十 mV,优于串联肖特基
负载只是电阻性/电子设备时可省
6.3 输出端保护(必选)
TVS 跨接输出端(按最高输出电压选型,如 36V 输出选 SMBJ36A 量级)
输出端子额定 ≥7A(香蕉座/接线柱),端子加 ESD 防护
6.4 VOUT 分压采样(必选)
100kΩ/10kΩ(1% 精度)分压至 MCU ADC,36V → 3.27V
用途:合闸前实测确认电压达标;运行中过压/欠压监控
7. 整机工作流程(状态机)
[待机] 上电 → MP2451 供 MCU → MCU 初始化 → 输出开关保持断开(GPIO 拉低 UVLO) → 芯片此时已输出 5V,但负载侧无电 [配置] 编码器/按键设定电压、限流 → I2C 写 0x21(电压)、0xD1(限流)→ 读回校验 [输出] 按"输出"键 → 写 OPERATION=0x80 → ADC 实测 VOUT 达目标 ±2% 且稳定 → GPIO 拉高 UVLO,TPS2663 合闸 → 负载得电 [运行] ADC 轮询 V/I(分压 + IMON)+ ALT 中断兜底 → 异常(过流/过温/电压偏离)→ 立即拉低 UVLO 断开 + OPERATION=0x00 [停止] 再按"输出"键 → 拉低 UVLO → 回到 [配置]
8. 物料清单(新增部分)
| MCU 供电 | MP2451(SOT-23-6) | VIN→3.3V,替代方案见 §2 |
| 输出开关 | TPS2663(HTSSOP/VQFN) | 6A 内;7A 改分立 MOS |
| 防倒灌 | LM74700 + 60V N-MOS | 电池负载时 |
| 输出保护 | TVS(按电压选) | 输出端跨接 |
| 采样电阻 | 100kΩ/10kΩ 1% ×1 组 | VOUT→ADC |
| 交互 | 按键、编码器、OLED | 按需 |
| I2C 连接 | 10-pin 排线 → CN2 | SCL=1/2, SDA=5/6, GND |
9. 参考文档
| TPS2660x 数据手册 | https://www.ti.com/lit/ds/symlink/tps2660.pdf |
| TPS2663 产品页 | https://www.ti.com/product/TPS2663 |
| MP2451 数据手册 | MPS 官网搜索 MP2451 |
我要赚赏金
