
电路图大致如下:

这个电路其实和之前最开始分享的sink恒流源电路很相似,区别就是增加了一个PWM和二极管。之前分析的电路链接如下:
然后我们可以根据上面的恒流源的基础上分析本期的电路,我们可以看到,假设单片机的PWM输出电压为0V,那么此时二极管截止,恒流电路正常工作,MOS管处于恒流区。

如果PWM处于高电平,那么此时D1会处于导通状态,然后运算放大器的反向输入端电压大概就为3V左右,大于VDAC,那么此时运放会输出0V左右(靠近运放的负电源轨,具体要看运放型号)。那么此时MOS管会处于截止状态,也就没有电流流过负载。如下所示:

然后我们对这个电路进行仿真,可以看到仿真结果如下,得到一个恒流为Vdac/R3=100mA的一个PWM负载电流波形。

不过我们仔细看,就会发现,在红色的负载电流波形会存在一个过冲,这个过冲存在于在PWM从低变成高电平的过程中。例如下图,我们放大:

那么这个问题是什么导致的呢?其实是电容C1导致的。在PWM由低变高的过程中,由于反相输入端的电压会突然上升,而电容两端电压又不能突变,所以会导致运放输出端电压上升,最终导致输出给栅极的电压变高,从而恒流电流值会突然上升一小段。

我们通过仿真也可以看到,在MOS管的栅极也是会存在一个电压上升的,也正是这个电压上升导致负载电流的突然增大。

那么去掉或者改小C1均可以改善此现象。例如我把C1去掉,那么也可以看到,PWM负载电流的上冲也随之消失了。


好的,本期分享到此结束,我觉得可以用在既要恒流又要PWM驱动的地方,例如一些需要PWM调制的地方,DAC用于调整电流,PWM用于调制,像一些红外灯之类的。那么你觉得这个电路可以应用在哪里呢?欢迎评论区留言分享。
最后,给爱学习的你推荐一个艾睿的线下技术展吧。不仅可以学习交流,提前注册还有礼品哦!
