U3A是
比较器,C4是做补偿用的电容,一般容值都是pF级。
用高低点平输出,也可以做恒流源,这个解释是对的,因为这个时候相当于输出的是
占空比会变化的
方波,推动晶体管(Q1位置,不管是MOSFET还是
三极管)开关,这里Q1是工作在饱和导通或截止状态,而不是放大状态,因此你不能把它当作一般的放大状态的三极管来分析。
基本的工作原理是:
初始状态,Q1截止,R7上没有电流,当然ADIN点电压自然为0,放大之后,U3B的7脚电压也是0,一直送到U3A的2脚,而此时如果你设置了电流值,DAOUT一定会有一个正向电压(
单片机等控制DAC输出的模拟电压,一般也就是0-5V之间),按照比较器的工作原理,Up>Un,比较器输出
高电平(你用的是15V,实际输出电压大概是13V+的水平),推动晶体管Q1饱和导通,饱和导通时Q1的CE之间的电流急速增加,因此在R7上产生电压降,经U3B放大(放大倍数是预先计算过的,有很多种算法,比如假定DA输出是0-5V,也就是当设定电流在最小值时,DA输出在0.5-1V左右,当设定电流达到最大值时,DA输出在4-4.5V左右,这样就可以保证DA的输出有一定的
动态范围,当然有时候也未必会运气那么好,刚好是1V和4V,必要的时候就妥协一下。)反馈到U3A的反向端,如果R7电流过大,则比较器输出低电平,三极管截止,R7电流失去,重新进入下一个循环。
由于比较器的速度很快,因此每一个循环时间是非常快的,也就是说Q1其实一直在快速地开启和闭合,R7上形成的电流是断续的,但平均电流理论上就是你的设定值(通过事先测试和计算,用DA输出的模拟电压),Q1上通过的电流就是在这个平均电流上下很小的幅度范围内波动。
其实你也可以这样去考虑:
比如你要在规定时间内在水龙头下接500ml水,你有两种方法:1、以恒定速度让水流慢慢流,最后在规定时间内接满。2、以不同的速度接,也就是在一段时间内把水龙头开得大一点,让水流得多一些,然后关掉水龙头,让时间流走;当然如果规定的时间比较长,你可以重复做很多次这样的动作,照样可以实现在规定时间内接满500ml水的目标。最后的这种,其实原理跟上面电路的原理一模一样。