电子知识:基于AVR单片机的多功能电源设计

分享到:
点击量: 215745

  3 软件设计

  软件的结构图如图4所示,基于Martin Thomas的ButteRFly演示版代码的GCC接口设计。CPU的工作频率设定为8 MHz,因为在程序中要用到浮点运算,但在电源设计中不需要,所以省电模式都未使用。AT-mega169的ADC在每一次转换时都会发出中断请求,电流保护的优先级高于其他进程,ADC的取样来自8次输入的平均值,以消除毛刺,不至于触发错误的过流保护。ADC的一些匹配的常量值在测量电路的参数后再在软件中设置。

  4 校 准

  因为要作为测试用的信号源使用,所以电源在使用之前必须校准。校准包括两部分,硬件校准和软件设置,在这个过程中,需要对Butterfly的程序进行改写和重新编译。

  断开Butterfly与电源电路的连接,正确连接电源电路后,给电路上电,测量电压VPLUS(12 V),VMINUS(-5 V),VCC(3.3 V),VREF(1.28 V)和VM256(-2.56 V),这些值应该接近括号中的值,不必与之完全一致。然后,调节微调电阻R19调整电压VREF到1.28 V。调整后,断电连接Butterfly和电路中的其他部分,然后上电。

  因为要与硬件一起进行设置,所以在软件中的相关文件中设置一个初始值,以便于后面的校准,在文件DAC.h中:

  编译代码并写入Butteterfly后,输出的电压通过菜单设置为零,通过调节微调电阻R20输出电压调节为零。校零完成。

  为了计算V2CODECONST(VOUT=1 V)时的值,在Butterfly的菜单上输入一个VSET电压,如4 V,然后测量VOUT并且计算出实际的常量:

  输出电路置为开路(此时的电流输出应为0),此时电源的显示值记为I0DISP,使用如下公式:

  计算CURCODEOFFSET。

  下一步,按照新的常量值给Butterfly重新编程,为了计算CODE2CURCONST的值,设置一个预设电压值VSET,比如5 V,并且连接一个已知的准确电阻RLOAD大约在47 Ω左右(电流在100 mA左右),记下此时LCD上电流的显示值IDISP,用下面的公式计算:

  然后在ADC.H中修改此常量值并且重新编译程序,校准完成。

  该电源同其他**电源一样,具有短路保护和过载保护功能,而且在显示器显示电压电流、功耗,能够**地模拟主电源,用来测试目标系统在各种不同电源故障下的性能,比如电压下降、电压周期下降、电源线上的干扰等。

  5 结 语

  由于AVR Butterfly提供了丰富的外部接口,使得设计控制电路的过程非常简单,而且在这个设计中,只使用了有限的几个接口,还有一些接口可以用来扩展该电源的功能,例如,使用RS 232串行接口,把智能电源与PC机连接,在PC机上就能够实时反映电源的工作状态。