历史上的今天
返回首页

历史上的今天

今天是:2025年01月22日(星期三)

正在发生

2020年01月22日 | 一种基于AVR Butterfly的多功能电源设计

2020-01-22 来源:eefocus

0 引言
随着嵌入式系统设计技术的发展,在设计和仿真中,系统工程师对电源的要求也越来越高。在嵌入式系统设计是使用8031单片机和74系列集成电路时,所有使用74系列集成电路的电路板都使用单一的5 V电源供电就可以了。当时的供电电源部分不是一个需要太多注意的单元,基本上5 V的电源能满足所有的数字集成电路设计的需要。而近几年来,随着技术的发展,集成电路里的三极管变得越来越小并且工作的电压越来越低,使得嵌入式系统开发的重点从系统的速度,转到低功耗设计上。因此在同一个嵌入式系统中,存在多种不同电压的电源供电,从低于1 V到高于5 V都存在。而且在系统的稳定性和可靠性测试时,还要模拟不同的电源故障情况下,比如掉电等,嵌入式系统的稳定性和可靠性,这也需要用不同的电源来模拟。


1 电源系统结构
在本文中,提出了一种基于AVR Butterfly的电源设计,能够很好地完成嵌入式系统的供电和系统的测试要求。电源系统的结构如图1所示。



2 硬件设计
系统由两种电源电压供电,主电源电压12 V,给目标系统和Butterfly(通过一个3.3 V线性稳压器)提供足够的电流,另一个电源电压-5 V是用来给功率放大器提供负电压的。主模块是线性稳压电源,一个10 b的DAC控制该电压,该模块的输出接入电流检测模块,然后从输出端输出。

如图2所示,电源的主要部分是LM723稳压电源,它的参考电压受外部干扰小,而且短路保护时,它的输出电压为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的参考电压得到,它被功放U2B,R1,R2倒相,在节点VM256=-2.56 V,这就是完成了一个到VREF的负反馈,部分地补偿了由于温度对电压的影响,使得参考电压稳定,这里的R19是可调电阻,可以控制VM256点的电压到一个合适的值,使得LM723的输出的基准电压可以微调。

TC1321DAC连接到LM732的IN引脚上,用来设置输出电压,TCl321有10位的分辨率,2.7~5.5 V输出电压,积分微分线性度并且输出电压的偏移量小于8 mV,该DAC是由Butterfly内部的CPU通过I2C总线控制的。它的参考电压VREF=1.28 V。DAC的输出电压通过一个简单的低通滤波器(由R7和Cs构成),目的是使得输出电压平滑,去除毛刺。

由于许多电子设备不能在反相电压下工作,于是在该电源设计中有电压偏置纠正电路,如图3所示,由R20,R9,R10,R18和U2D构成电压反馈电路,在电源刚刚启动时(这时的DAC的输出是0),这部分电路能够消除负电压输出。这里是用电路来完成,没有使用在软件中加一个常数给DAC的方法,这是因为偏移量可能是正值,在软件中DAC的常数就应该是一个负值来纠正,而这种方法不起作用,因为DAC只在无符号数下工作。

二极管D1给供电电路提供了保护使得输出电压不会低于-0.7 V。在电源的输出端,有一个1μF的电容,是用来防止电路的自激振荡,这个电容值不能太大,如果太大电源的输出响应会变慢,CPU控制电源的速度降低了。三极管Q1用来放大LM723的电流输出,Q1耗散的多余功率P=(VIN-VOUT)×IOUT。

电阻R14设置了LM723的电流门限,当R14上的电压达到0.65 V时,输出电压由微分放大器U2C钳制,此时R14上的电压被微分放大器放大,电压与输出电流的比是1 V/1 A。电压放大到5.6 V/A以适应Butter-fly的VIN测量电路的测量要求。电源的控制部分是Butterfly,结构如图3所示,它有良好的用户界面,有五通道的控制杆和六字符的LCD许多外围设备连接着微控制器,比如扬声器、数据闪存、一个NTC电热调节器、一个光敏传感器和一个RS 232通信端。所有的外围接口都能用来扩展系统的功能。现在,在这个电源设计中使用到LCD、控制杆、JTAG、ADC、USI(用I2C驱动DAC)和一电流保护指示LED。



DAC(U3)和Butterfly模块使用HT7533-1线性降压稳压电源供电,该电源不会有高电压输出。为了避免噪声对电源精度的影响,电路中所有的“地”都连接到电路板上的一点上,并且信号“地”也连接到同一点上。

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机上就能够实时反映电源的工作状态。

推荐阅读

史海拾趣

德芯半导体(Doeshare)公司的发展小趣事

德芯半导体深知人才是企业发展的核心。因此,公司注重人才队伍的建设,吸引了一批具有丰富经验和专业知识的资深工程师和管理人员。这些人才不仅为公司带来了先进的技术和管理经验,还为公司的发展提供了源源不断的动力。公司设立技术委员会,布局先进封装项目,推动公司在高端封装技术上的突破。

艾迪沃德公司的发展小趣事
查看保险丝是否熔断,如熔断需更换同规格保险丝。
GE Oil & Gas Digital Solutions公司的发展小趣事
在生产线上对电阻元件进行快速筛选和分类。
Advanced Interconnections Corp公司的发展小趣事

在电子行业的早期阶段,AIC公司凭借其前瞻性的技术创新,成功开发了一种新型的连接器技术。这种连接器具有更高的传输速度和更强的稳定性,满足了市场对高性能电子产品的迫切需求。AIC公司的这一技术突破迅速获得了市场的认可,公司的销售额和市场份额均实现了快速增长。

Analytic Instruments Corp公司的发展小趣事

随着电子行业的快速发展和技术的不断进步,Analytic Instruments Corp面临着日益激烈的市场竞争。为了保持领先地位,公司不断调整产品结构和市场策略,积极应对行业变革。公司加大了研发投入,推出了一系列具有创新性和竞争力的新产品。同时,公司还加强了与客户的沟通和合作,深入了解客户需求,为客户提供更加个性化的解决方案。

BURGESS公司的发展小趣事

2001年对BURGESS来说是具有重要意义的一年。在这一年,BURGESS荣获了女皇赏,这是对其卓越业绩和贡献的极高认可。同时,BURGESS还售出了由Lurssen船厂制造的当时世界上最大的私人超级游艇,这一成就再次证明了其在游艇经纪行业的卓越地位。

问答坊 | AI 解惑

求74系列芯片74161的verilog源代码

求74系列芯片74161的verilog源代码 大虾们帮忙啊…

查看全部问答>

请指点K30,K241管脚

没查到K30XM和K241的参数,请各位帮一下: 1,K30XM是不是K30? 2,这两个管子是什么类型的? 3,管脚如何排列的?…

查看全部问答>

谢谢,希望有我

申请的话,带下载器设备吗?…

查看全部问答>

ICH7+ALC203声卡驱动开发

有人谁做过ICH7的声卡驱动吗?我目前要做基于ICH7下的声卡驱动,对DMA操作那块一直没有搞明白,有人做过的话请指点下。谢谢。…

查看全部问答>

串口的发送寄存器buf写不了值

我用的单片机是TMP19A61,用C写的。仿真调试时发现:串口的发送寄存器buf写不了值,而其他寄存器都可以正常设置 我的代码大概步骤是: 1.寄存器地址设置:#define SC0BUF (*(volatile unsigned char *)0xFFFFF700)等等 2.引脚的初始化 (TX,RX引 ...…

查看全部问答>

NKCallIntChain返回值为3

KernelIoControl   IOCTL_HAL_REQUEST_SYSINTR 方法申请了一个动态中断,物理中断用的定时器中断3,逻辑中断返回30 OEMInterruptHandle里面判断是定时器3中断来了,调用NKCallIntChain(定时器中断3)返回为3,SYSINT_CHAIN,请问这是为 ...…

查看全部问答>

实现汽车与LED成功整合 解决LED散热问题

车上的灯光系统不但让驾驶者能实际了解汽车的状况,更提供了安全驾驶过程中,所必须兼具的条件。而新一代的光源LED,这对许多消费者来说一点也不陌生,已进一步扩大应用于汽车上,并根据各个应用面对于效能的不同需求,选择适宜的LED产品。基本上, ...…

查看全部问答>

一道算法题

问题:有k个按升序(从小到大)排好序的序列A0, A1, A2... A(k-1),总计有n个元素。试问,有没有一个算法将其归并为一个升序序列?我们希望算法的时间复杂度,为O(n log(k))。提示:使用堆排序、快速排序和希尔排序,都可以得到O (n log(n))时间复杂 ...…

查看全部问答>

stm323.x库关中断的函数是什么?

旧库中的NVIC_SETPRIMASK()、NVIC_RESETPRIMASK()在新库中都不能用了,新库用什么替代?…

查看全部问答>

用移植到stm32的ucos写串口中断为什么一直死机

用移植到stm32的ucos写串口中断为什么一直死机啊,研究快两天了,请大侠指点一二。谢谢中断处理函数void USART1_IRQHandler(void){    OS_CPU_SR  cpu_sr;UCOS_II_REENTRANT_ISR_PROLOG UCOS_II_REEN ...…

查看全部问答>