<?xml version="1.0" encoding="gbk"?> <rss version="2.0"><channel> <title>定阅帖子更新</title> <link>http://www.broadkey.com.cn/XML.ASP</link><description>TEAM Board - 科伟奇电子</description> <copyright>TEAM 2.0.5 Release</copyright><generator>TEAM Board by TEAM5.Cn Studio</generator> <ttl>30</ttl><item><link>http://www.broadkey.com.cn/Thread.asp?tid=537 </link><title>基于AVR单片机的多功能电源设计</title><author>冷风</author><pubDate>2010/1/11 11:51:41</pubDate><description><![CDATA[<strong>0 引 言</strong>
<p>　　随着嵌入式系统设计技术的发展，在设计和仿真中，系统工程师对<a style="color: blue; text-decoration: underline" title="电源" href="http://article.ednchina.com/word/257084.aspx">电源</a>的要求也越来越高。在嵌入式系统设计是使用8031<a style="color: blue; text-decoration: underline" title="单片机" href="http://article.ednchina.com/word/257083.aspx">单片机</a>和74系列集成电路时，所有使用74系列集成电路的电路板都使用单一的5 V电源供电就可以了。当时的供电电源部分不是一个需要太多注意的单元，基本上5 V的电源能满足所有的数字集成电路设计的需要。而近几年来，随着技术的发展，集成电路里的三极管变得越来越小并且工作的电压越来越低，使得嵌入式系统开发的重点从系统的速度，转到低功耗设计上。因此在同一个嵌入式系统中，存在多种不同电压的电源供电，从低于1 V到高于5 V都存在。而且在系统的稳定性和可靠性测试时，还要<nobr style="border-bottom: rgb(102,0,255) 1px dotted; background-color: transparent; color: #cb4bfc; cursor: pointer; text-decoration: underline" id="nobr93" jquery1263181841468="42">模拟</nobr>不同的电源故障情况下，比如掉电等，嵌入式系统的稳定性和可靠性，这也需要用不同的电源来模拟。</p>
<p>　　<strong>1 电源系统结构</strong></p>
<p>　　在本文中，提出了一种基于<a style="color: blue; text-decoration: underline" title="AVR" href="http://article.ednchina.com/word/257081.aspx">AVR</a> Butte<nobr style="border-bottom: rgb(102,0,255) 1px dotted; background-color: transparent; color: #cb4bfc; cursor: pointer; text-decoration: underline" id="nobr84" jquery1263181841468="43">RF</nobr>ly的电源设计，能够很好地完成嵌入式系统的供电和系统的测试要求。电源系统的结构如图1所示。</p>
<p align="center"><img border="0" hspace="0" alt="电源系统的结构" src="http://pagesadmin.ednchina.com/images/article/8c3639d4-b31b-4026-b76d-fa8459a0ad2c/1.jpg" width="411" height="199" /></p>
<p>　　<strong>2 硬件设计</strong></p>
<p>　　系统由两种电源电压供电，主电源电压12 V，给目标系统和Butterfly(通过一个3．3 V线性<nobr style="border-bottom: rgb(102,0,255) 1px dotted; background-color: transparent; color: #cb4bfc; cursor: pointer; text-decoration: underline" id="nobr144" jquery1263181841468="44">稳压器</nobr>)提供足够的电流，另一个电源电压-5 V是用来给功率<nobr style="border-bottom: rgb(102,0,255) 1px dotted; background-color: transparent; color: #cb4bfc; cursor: pointer; text-decoration: underline" id="nobr74" jquery1263181841468="45">放大器</nobr>提供负电压的。主模块是线性稳压电源，一个10 b的<nobr style="border-bottom: rgb(102,0,255) 1px dotted; background-color: transparent; color: #cb4bfc; cursor: pointer; text-decoration: underline" id="nobr67" jquery1263181841468="46">DAC</nobr>控制该电压，该模块的输出接入电流检测模块，然后从输出端输出。</p>
<p>　　如图2所示，电源的主要部分是<a style="color: blue; text-decoration: underline" title="LM723" href="http://article.ednchina.com/word/257082.aspx">LM723</a>稳压电源，它的参考电压受外部干扰小，而且短路保护时，它的输出电压为0。LM723输出电压的范围是2～37 V之间。若要LM723输出电压大于2 V，V-引脚可以直接接地，但是为了能够使输出电压达到0 V，V-引脚应该接至少应为-0．4 V的负电压，有多种方法能够达到这种要求，一个是使用倒相器把正电压转换为负电压，但是这样会引入噪声干扰，由LM273的技术手册和它内部的结构可知，LM237的参考电压与V-引脚的电压直接相关，这个引脚的电压必须稳定，而且不能有干扰，因此在这里采用另一种方法来得到合适的电压，如图2所示，在电路中，VREF=1．28 V是由U2A，R19，R5和R6从LM723的参考电压得到，它被<nobr style="border-bottom: rgb(102,0,255) 1px dotted; background-color: transparent; color: #cb4bfc; cursor: pointer; text-decoration: underline" id="nobr143" jquery1263181841468="47">功放</nobr>U2B，R1，R2倒相，在节点VM256=-2．56 V，这就是完成了一个到VREF的负反馈，部分地补偿了由于温度对电压的影响，使得参考电压稳定，这里的R19是可调电阻，可以控制VM256点的电压到一个合适的值，使得LM723的输出的基准电压可以微调。</p>
<p align="center"><img border="0" hspace="0" alt="电源的主要部分是LM723稳压电源" src="http://pagesadmin.ednchina.com/images/article/8c3639d4-b31b-4026-b76d-fa8459a0ad2c/2.jpg" width="464" height="285" /></p>
<p>　　TC1321DAC连接到LM732的IN引脚上，用来设置输出电压，TCl321有10位的分辨率，2．7～5．5 V输出电压，积分微分线性度并且输出电压的偏移量小于8 mV，该DAC是由Butterfly内部的CPU通过I2C总线控制的。它的参考电压VREF＝1．28 V。DAC的输出电压通过一个简单的低通滤波器(由R7和Cs构成)，目的是使得输出电压平滑，去除毛刺。</p>
<p>　　由于许多电子设备不能在反相电压下工作，于是在该电源设计中有电压偏置纠正电路，如图3所示，由R20，R9，R10，R18和U2D构成电压反馈电路，在电源刚刚启动时(这时的DAC的输出是0)，这部分电路能够消除负电压输出。这里是用电路来完成，没有使用在软件中加一个常数给DAC的方法，这是因为偏移量可能是正值，在软件中DAC的常数就应该是一个负值来纠正，而这种方法不起作用，因为DAC只在无符号数下工作。</p>
<p align="center"><img border="0" hspace="0" alt="Butterfly硬件结构" src="http://pagesadmin.ednchina.com/images/article/8c3639d4-b31b-4026-b76d-fa8459a0ad2c/3.jpg" width="453" height="309" /></p>
<p>　　二极管D1给供电电路提供了保护使得输出电压不会低于－0．7 V。在电源的输出端，有一个1&mu;F的电容，是用来防止电路的自激振荡，这个电容值不能太大，如果太大电源的输出响应会变慢，CPU控制电源的速度降低了。三极管Q1用来放大LM723的电流输出，Q1耗散的多余功率P＝(VIN－VOUT)&times;IOUT。</p>
<p>　　电阻R14设置了LM723的电流门限，当R14上的电压达到0．65 V时，输出电压由微分放大器U2C钳制，此时R14上的电压被微分放大器放大，电压与输出电流的比是1 V／1 A。电压放大到5．6 V／A以适应Butter-fly的VIN测量电路的测量要求。电源的控制部分是Butterfly，结构如图3所示，它有良好的用户界面，有五通道的控制杆和六字符的LCD许多外围设备连接着微控制器，比如扬声器、数据闪存、一个NTC电热调节器、一个光敏<nobr style="border-bottom: rgb(102,0,255) 1px dotted; background-color: transparent; color: #cb4bfc; cursor: pointer; text-decoration: underline" id="nobr77" jquery1263181841468="48">传感器</nobr>和一个RS 232通信端。所有的外围接口都能用来扩展系统的功能。现在，在这个电源设计中使用到LCD、控制杆、JTAG、<nobr style="border-bottom: rgb(102,0,255) 1px dotted; background-color: transparent; color: #cb4bfc; cursor: pointer; text-decoration: underline" id="nobr65" jquery1263181841468="49">ADC</nobr>、USI(用I2C驱动DAC)和一电流保护指示LED。</p>
<p>　　DAC(U3)和Butterfly模块使用HT7533-1线性降压稳压电源供电，该电源不会有高电压输出。为了避免噪声对电源精度的影响，电路中所有的&ldquo;地&rdquo;都连接到电路板上的一点上，并且信号&ldquo;地&rdquo;也连接到同一点上。 　<strong>3 软件设计</strong></p>
<p>　　软件的结构图如图4所示，基于Martin Thomas的Butte<nobr style="border-bottom: rgb(102,0,255) 1px dotted; background-color: transparent; color: #cb4bfc; cursor: pointer; text-decoration: underline" id="nobr84" jquery1263181876586="48">RF</nobr>ly演示版代码的GCC接口设计。CPU的工作频率设定为8 MHz，因为在程序中要用到浮点运算，但在<a style="color: blue; text-decoration: underline" title="电源" href="http://article.ednchina.com/word/257084.aspx">电源</a>设计中不需要，所以省电模式都未使用。AT-mega169的<nobr style="border-bottom: rgb(102,0,255) 1px dotted; background-color: transparent; color: #cb4bfc; cursor: pointer; text-decoration: underline" id="nobr65" jquery1263181876586="49">ADC</nobr>在每一次转换时都会发出中断请求，电流保护的优先级高于其他进程，ADC的取样来自8次输入的平均值，以消除毛刺，不至于触发错误的过流保护。ADC的一些匹配的常量值在测量电路的参数后再在软件中设置。</p>
<p align="center"><img border="0" hspace="0" alt="软件的结构图" src="http://pagesadmin.ednchina.com/images/article/8c3639d4-b31b-4026-b76d-fa8459a0ad2c/4.jpg" width="494" height="381" /></p>
<p>　　<strong>4 校 准</strong></p>
<p>　　因为要作为测试用的信号源使用，所以电源在使用之前必须校准。校准包括两部分，硬件校准和软件设置，在这个过程中，需要对Butterfly的程序进行改写和重新编译。</p>
<p>　　断开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和电路中的其他部分，然后上电。</p>
<p>　　因为要与硬件一起进行设置，所以在软件中的相关文件中设置一个初始值，以便于后面的校准，在文件<nobr style="border-bottom: rgb(102,0,255) 1px dotted; background-color: transparent; color: #cb4bfc; cursor: pointer; text-decoration: underline" id="nobr67" jquery1263181876586="50">DAC</nobr>．h中：</p>
<p align="center"><img border="0" hspace="0" alt="程序" src="http://pagesadmin.ednchina.com/images/article/8c3639d4-b31b-4026-b76d-fa8459a0ad2c/01.jpg" width="469" height="143" /></p>
<p>　　编译代码并写入Butteterfly后，输出的电压通过菜单设置为零，通过调节微调电阻R20输出电压调节为零。校零完成。</p>
<p>　　为了计算V2CODECONST(VOUT=1 V)时的值，在Butterfly的菜单上输入一个VSET电压，如4 V，然后测量VOUT并且计算出实际的常量：</p>
<p align="center"><img border="0" hspace="0" alt="程序" src="http://pagesadmin.ednchina.com/images/article/8c3639d4-b31b-4026-b76d-fa8459a0ad2c/02.jpg" width="447" height="50" /></p>
<p>　　输出电路置为开路(此时的电流输出应为0)，此时电源的显示值记为I0DISP，使用如下公式：</p>
<p align="center"><img border="0" hspace="0" alt="程序" src="http://pagesadmin.ednchina.com/images/article/8c3639d4-b31b-4026-b76d-fa8459a0ad2c/03.jpg" width="454" height="50" /></p>
<p>　　计算CURCODEOFFSET。</p>
<p>　　下一步，按照新的常量值给Butterfly重新编程，为了计算CODE2CURCONST的值，设置一个预设电压值VSET，比如5 V，并且连接一个已知的准确电阻RLOAD大约在47 &Omega;左右(电流在100 mA左右)，记下此时LCD上电流的显示值IDISP，用下面的公式计算：</p>
<p align="center"><img border="0" hspace="0" alt="程序" src="http://pagesadmin.ednchina.com/images/article/8c3639d4-b31b-4026-b76d-fa8459a0ad2c/04.jpg" width="410" height="46" /></p>
<p>　　然后在ADC．H中修改此常量值并且重新编译程序，校准完成。</p>
<p>　　该电源同其他高级电源一样，具有短路保护和过载保护功能，而且在<nobr style="border-bottom: rgb(102,0,255) 1px dotted; background-color: transparent; color: #cb4bfc; cursor: pointer; text-decoration: underline" id="nobr83" jquery1263181876586="51">显示器</nobr>显示电压电流、功耗，能够精确地<nobr style="border-bottom: rgb(102,0,255) 1px dotted; background-color: transparent; color: #cb4bfc; cursor: pointer; text-decoration: underline" id="nobr93" jquery1263181876586="52">模拟</nobr>主电源，用来测试目标系统在各种不同电源故障下的性能，比如电压下降、电压周期下降、电源线上的干扰等。</p>
<p>　　<strong>5 结 语</strong></p>
<p>　　由于<a style="color: blue; text-decoration: underline" title="AVR" href="http://article.ednchina.com/word/257081.aspx">AVR</a> Butterfly提供了丰富的外部接口，使得设计控制电路的过程非常简单，而且在这个设计中，只使用了有限的几个接口，还有一些接口可以用来扩展该电源的功能，例如，使用RS 232串行接口，把智能电源与PC机连接，在PC机上就能够实时反映电源的工作状态。</p>
<!-- 2009/11/7 22:32:49-->]]></description></item></channel></rss>