wudicgi 发表于 2014-3-28 08:22:39

用STM32的DAC控制电源的输出电压,怎么应对异常复位情况?

用STM32的DAC控制数控电源的输出电压,怎样保证异常复位时不会突然输出高电压?

下面是 Vishay 的 AN731: Simple Solution for Dynamically Programming the Output Voltage of DC-DC Converters 中的图,我想用这种方式控制稳压IC的输出电压。



Vx=0时Vout就是正常的FB*(1+(R1/R2)),随着Vx越来越接近FB,Vout会越来越低。也就是说,Vx=0时Vout输出的是可控范围内的最高电压。

Vc通过STM32的DAC输出,但这块有个问题,就是STM32的DAC不开启内部缓冲器的话,输出阻抗有15k那么大,加下拉电阻保证复位时是低电平也不可用,因为使用1.5M的电阻都会导致有1%的精度损失。而启用内部缓冲器的话,12bit DAC的4096个输入码就有680个没有用了,损失太大了。



所以我还是使用外接的缓冲器。不过STM32 的GPIO在复位期间和刚复位后,默认是配置成浮空输入模式的。而运放的同样输入端也是高阻的,这样岂不是这个缓冲器的输出电压在复位期间就完全不能确定了?



如果STM32因为程序、干扰或其他原因异常复位了,导致Vx变为0的话,Vout就会输出可控范围内的最高电压,很可能就把负载烧坏了。

对于这种问题,想问一下大家有没有什么办法?只要MCU异常时Vout不会突然变高就可以了。使用独立DAC的话,就是价格快赶上一片STM32了,还要多占点面积。

PS,我用的DC-DC和LDO芯片都有EN使能端,都是接一个10k的下拉电阻并直接连到STM32的GPIO。这样异常复位时EN应该也能被拉低,但感觉靠这点不能保证Vout不会输出一个瞬间的高压。

PPS,我要用的是STM32F103VCT6,使用外部的2.5V电压基准。其实省点事的话那个反相放大器可以换成电压跟随器,只是Vout就不是随着Vc升高而升高了,不过这个不影响上面提到的问题。

wudicgi 发表于 2014-3-28 08:27:16

我把 AN731: Simple Solution for Dynamically Programming the Output Voltage of DC-DC Converters 的 PDF 也传上来,不过里面没看到对这种情况的讨论

rootxie 发表于 2014-3-28 08:36:37

自己考虑好各种出错的可能,然后电路上加以保护,你这个DAC已经是系统的关键点了,所以做好一切防护
其实说白了 也就是DCDC电压输出2种情况,过流和过压,做好反馈点到前面禁止DCDC使能即可{:lol:}

wudicgi 发表于 2014-3-28 08:51:27

rootxie 发表于 2014-3-28 08:36
自己考虑好各种出错的可能,然后电路上加以保护,你这个DAC已经是系统的关键点了,所以做好一切防护
其实说 ...

输出有用电流检测+比较器做的过流保护
过压保护……我觉得这应该不是过压保护的问题,如果Vx那点不突然变低的话,后边输出也不会过压。而且靠过压检测控制EN的响应速度也完全没保证
因为要做的电源是先 DC-DC 升压再 LDO 降压,两部分都要靠 DAC 控制输出电压,保护加太多的话也很占 PCB 面积

wudicgi 发表于 2014-3-28 08:57:35

用 DAC 控制电源的输出电压应该是很常见的,发这个帖也是想问下大家这种问题一般都是怎么解决的,或者我是不是走进什么误区了。

如果给 DAC 外接的做缓冲器的运放加 PMOS 管控制其是否上电,在那个运放的输出端接下拉或上拉电阻保证其掉电时的输出电压应该也是个办法,但因为没看到过有这么做的,感觉应该不是通用的做法。

ysu533 发表于 2014-3-28 09:06:34

dac 数控电源
页: [1]
查看完整版本: 用STM32的DAC控制电源的输出电压,怎么应对异常复位情况?