AVR单片机控制的开关电源

单片机控制开关电源 , 单从对电源输出的控制来说 , 可以有几种控制方式 。

其一是 单片机 输出一个电压(经DA芯片或PWM方式) , 用作电源的基准电压 。这种方式仅仅是用单片机代替了原来的基准电压 , 可以用按键输入电源的输出电压值 , 单片机并没有加入电源的反馈环 , 电源电路并没有什么改动 。这种方式最简单 。

其二是 单片机 扩展AD , 不断检测电源的输出电压 , 根据电源输出电压与设定值之差 , 调整DA的输出 , 控制PWM芯片 , 间接控制电源的工作 。这种方式单片机已加入到电源的反馈环中 , 代替原来的比较放大环节 , 单片机的程序要采用比较复杂的PID算法 。

其三是 单片机 扩展AD , 不断检测电源的输出电压 , 根据电源输出电压与设定值之差 , 输出PWM波 , 直接控制电源的工作 。这种方式单片机介入电源工作最多 。
第三种方式是最彻底的 单片机 控制开关电源 , 但对单片机的要求也最高 。要求单片机运算速度快 , 而且能够输出足够高频率的PWM波 。这样的单片机显然价格也高 。
DSP类 单片机 速度够高 , 但目前价格也很高 , 从成本考虑 , 占电源成本的比例太大 , 不宜采用 。

廉价 单片机 中 , AVR系列最快 , 具有PWM输出 , 可以考虑采用 。但AVR单片机的工作频率仍不够高 , 只能是勉强使用 。下面我们具体计算一下AVR单片机直接控制开关电源工作可以达到什么水平 。
AVR 单片机 中 , 时钟频率最高为16MHz 。如果PWM分辨率为10位 , 那么PWM波的频率也就是开关电源的工作频率为16000000/1024=15625(Hz) , 开关电源工作在这个频率下显然不够(在音频范围内) 。那么取PWM分辨率为9位 , 这次开关电源的工作频率为16000000/512=32768(Hz) , 在音频范围外 , 可以用 , 但距离现代开关电源的工作频率还有一定距离 。

不过必须注意 , 9位分辨率是说功率管导通-关断这个周期中 , 可以分成512份 , 单就导通而言 , 假定占空比为0.5 , 则只能分成256份 。考虑到脉冲宽度与电源的输出并非线性关系 , 需要至少再打个对折 , 也就是说 , 电源输出最多只能控制到1/128 , 无论负载变化还是网电源电压变化 , 控制的程度只能到此为止 。

还要注意 , 上面所述只有一个PWM波 , 是单端工作 。如果要推挽工作(包括半桥) , 那就需要两个PWM波 , 上述控制精度还要减半 , 只能控制到约1/64 。对要求不高的电源例如电池充电 , 可以满足使用要求 , 但对要求输出精度较高的电源 , 这就不够了 。

综上所述 , AVR 单片机 只能很勉强地使用在直接控制PWM的方式中 。

但是上列第二种控制方式 , 即 单片机 调整DA的输出 , 控制PWM芯片 , 间接控制电源的工作 , 却对单片机没有那么高的要求 , 51系列单片机已可胜任 。而51系列单片机的价格比AVR还是低一些 。

网友coocle曾发表他的看法:“ 单片机 控制开关电源的缺点在于动态响应不够 , 优点是设计的弹性好 , 如保护和通讯 , 我的想法是单片机和pwm芯片相结合 , 现在的一般单片机的pwm输出的频率普遍还不是太高 , 频率太高 , 想要实现单周期控制也很难 。所以我觉得单片机可是完成一些弹性的模拟给定 , 后面还有pwm芯片完成一些工作 。”
无独有偶 , 在电子电源综合区中有篇原创文章《DPWM电路的研究》 , 也是用数字电路输出PWM波直接控制开关电源工作 。他是用CPLD再加 单片机 进行控制 。众所周知CPLD的价格以及开发难度绝非单片机可比 , 那么他为什么要这样做?原因如作者所说 , 由于单片机的PWM宽度小 , 导致精度低 , 不能满足系统的要求 。作者又说 , 在这些情况下 , 应用片外PWM电路无疑是一种理想的选择 。他选择CPLD芯片来实现PWM 。我则建议:还是用开关电源原来的控制芯片来实现 。不但价格低 , 而且容易实现单周期电流检测等保护功能 。我们大可不必为数字控制而数字控制 。
【AVR单片机控制的开关电源】

    推荐阅读