我正尝试通过 I2C 配置/控制 MP8859,但是 MP8859 并不能按预想输出,而是输出了 12V!
下面的日志时操作 MP8859 的记录:
# output current limit threshold: 20
Set to 3000mV
>>> 02 14 80 70 0
MP8859 Registers:
- 00(VOUT_L): 04
- 01(VOUT_H): 25
- 02(VOUT_GO): 00
- 03(IOUT_LIM): 14
- 04(CTL1): 80
- 05(CTL2): 70
- 06(RES): 00
- 07(RES): 0e
- 08(RES): 0e
- 09(Status): 00
- 0a(Interrupt): 08
- 0b(Mask): 00
- 0c(ID1): 0b
我把输出电压设置为 3000mV 输出电流设置为 20*0.05=1A。>>> 那一行,是写入电压之后向 VOUT_GO 寄存器写入 3 再读取的值,02 表示 GO_BIT 已经被芯片清零。并且在打印这一样文字后,我又向 VOUT_GO 寄存器写入 1,希望再次触发 GO_BIT 。后续读取全部寄存器时 VOUT_GO 的值为 0 ,表明 GO_BIT 确实是被触发过。但是输出仍然保持 12V 不变!
与此同时在 Status 寄存器表明 “output power is not good”,Interrupt 寄存器看到 UVP_FALLING 被置位。
请教 MPS 的专家和网友,我的操作是否有误?这样的问题该如何排除?
多谢~
您好,在对VOUT寄存器进行读写之后可以先读回看有没有写入成功,另外在进行写入前的输出电压和VOUT寄存器分别是什么值?
1 个赞
感谢回复!
按回帖的内容,我修改了程序,下面的内容是修改之后程序在启动后一小段时间的输出日志:
# MP8859[c0] MFR_ID: 09, DEV_ID: 58.
Before set volt, MP8859 Registers:
- 00(VOUT_L): 00
- 01(VOUT_H): 96
- 02(VOUT_GO): 00
- 03(IOUT_LIM): 46
- 04(CTL1): f0
- 05(CTL2): 70
- 06(RES): 01
- 07(RES): 0e
- 08(RES): 07
- 09(Status): 00
- 0a(Interrupt): 08
- 0b(Mask): 00
- 0c(ID1): 0b
Set to 3000mV
>>> 03 46 f0 70 0
After set volt, MP8859 Registers:
- 00(VOUT_L): 04
- 01(VOUT_H): 25
- 02(VOUT_GO): 01
- 03(IOUT_LIM): 46
- 04(CTL1): f0
- 05(CTL2): 70
- 06(RES): 01
- 07(RES): 0d
- 08(RES): 08
- 09(Status): 00
- 0a(Interrupt): 08
- 0b(Mask): 00
- 0c(ID1): 0b
电压和限流寄存器的值分别是:1200 和 70,对应 12V 输出电压和3.5A限流。实际测量到的输出电压为 11.9V,符合12V 的输出设置。
后续的写操作,3000mV 的值确实已经写入,VOLT 值为 300。VOUT_GO 在之后就变为0,输出电压仍然是 11.9V。
您好,可以在VOUT寄存器写入之后,结束读写,然后添加延时,再重新开始写入GO_BIT
1 个赞
您好,最初12V状态时OAh寄存器似乎就已经是UVP_FALLING状态了,可以提供一下您使用的IC的完整型号以及原理图吗?
1 个赞
型号:MP8859GQ
TOP MARKING:BGRJ099
原理图:
您好,您是从什么渠道购买的芯片?完整的型号包含4位code,会对应初始寄存器配置;MP8859GQ-0000的默认输出应该是5V,可以展示一下Layout,谢谢!
1 个赞
是从淘宝卖家 信熠电子 采购的芯片,采购时的型号是: MP8859GQ-0000-Z,实际拿到的芯片,其 TOP MARKING 为 BGRJ099。与论坛里这个帖子 MP8859使用异常情况 的情况一样。
Layout:
您好,您回读的log中0Ch寄存器的值为0B,也就是实际的芯片型号为MP8859GQ-000B,默认输出电压为12V;关于VOUT_Setting和GO_BIT的操作,通过IIC单个字节逐次的写入,我这边测试的时可以正常修改输出电压的,所以步骤方面应该没有太大问题;您的Layout可能需要对照手册中的Recommended Layout稍微优化一下,芯片不应该在启动时就显示UVP_FALLING,谢谢!
2 个赞
UVP_FLLING指的是输入欠压还是输出欠压呢?我该如何确认该问题?
您好,UVP_FALLING在手册中有描述,表示的是处于输出欠压保护状态。需要靠近IC引脚测试启动时的VCC、VIN、VOUT和SW的电压波形,来判断IC的工作状态
1 个赞
如果是输出欠压的话,芯片还能稳定输出 12V,并且电流可以稳定在1A,这个没法解释呀~
您好,只要触发过UVP,这个寄存器就会一直保持,需要通过UVP_MSK寄存器手动清除才会变回去;MP8859GQ的输出欠压保护是保持,所以只看输出是无法判断状态的;输出欠压判断条件如下:
谢谢!
1 个赞
按手册描述,“Write 0xFF to 0x0A register to reset the interrupt and ALT pin’s state”。我修改了程序,在发现 Interrupt Register 中的异常后,复位这个寄存器。但是仍持续不断读出 08 的值。
我上一个问题其实是想知道,处于 under-voltage protection 状态为什么仍能稳定输出 12V1A?
您好,万用表测试的只是电压有效值,并不能表明芯片的工作状态,需要观察实际的VOUT波形,另外您的输入电压是多少V?
1 个赞
输入电压:20V,我也测试过 12V的,都不改变有问题的状态。
用示波器观察输出,输出12V1A(接有电子负载)的情况下,输出波形非常稳定:
波形显示 12.2V,峰峰值 200mV。
您好,可以尝试从MPS小程序或者官网产品页面购买芯片,或者从授权代理商、经销商申请或者购买样品,正常来说应该只会提供0000尾缀的,可以看看是否能解决此问题,谢谢!
1 个赞
您好,很抱歉给您带来不好的体验,可靠的供货路径是助力优秀应用不可或缺的一部份,感谢您选择MPS方案,期待为您提供更优秀的技术支持,谢谢!
1 个赞
vex-j
20
有可能是启动阶段出现了异常,触发了interrupt,但是最后还是能稳定的起来。这样需要优化布局和看下焊接有没有问题了。