历史上的今天
返回首页

历史上的今天

今天是:2025年03月10日(星期一)

正在发生

2020年03月10日 | 基于VUSB的数控直流稳压电源的设计

2020-03-10 来源:eefocus

简介:介绍了一种调节精度高,操作简便的数控直流稳压电源。采用AVR系列单片机Atmega8作为主控单元,通过不同的数字量输入设置D/A转换芯片MAX522的输出电压。DAC输出电压则经过μA741组成的两级运放电路及射极输出器ZTX453进行电压电流放大。其中DAC输入的5.12V参考电压是由LM366集成稳压器产生的。上位机通过基于AVR单片机特有的VUSB技术与下位机进行通讯,同时介绍了Windows平台下USB设备驱动程序的实现。此电压源实现了电压值读取与设置的可见与可控性,可作为部分测试设备的嵌入式电源模块使用。


0 引 言


数控直流稳压电源是电子技术中常用的设备之一,目前所使用的大多是通过旋钮开关调节电压值,调节精度不高,而且经常出现跳变,使用起来极不方便。本数控直流稳压电源通过上位机设置输入到DAC的数字量,输出步进可调的电压。上位机与下位机通过软件模拟的USB进行通信。传统的单片机与计算机进行USB通信,需要使用专用的接口芯片进行USB 协议转换,如CP2101、FT232、CH342、PDIUSBD12、SL811等。像CP2101、FT232这样的芯片使用起来虽然简单,但是功能比较单一;而PDIUSBD12、SL811功能较强,但是使用复杂。并且这些专用芯片的价格都相对较高,增加了系统的成本。而VUSB简单易用,成本低廉,只需要一个普通的低成本AVR单片机以及很少的几个外部元件,就可以组成一个USB系统。


1 系统硬件设计


系统组成框架如图1所示,主要由8路串行输入DACMAX522、稳压输出电路、VUSB接口电路、信号调理电路、单片机Atmega8及其他外围元件组成,可以输出0~12V的电压,步进精度为0.1V,电流可达2A.同时可以通过上位机设置输出的电压值。

图1 数控直流稳压源组成

图1 数控直流稳压源组成


1.1 模数转换。


D/A 转换主要是利用MAX522 芯片来实现的。


MAX522芯片内有2路8位电压缓冲输出D/A 转换器(DAC A和DAC B),8脚节省封装和DIP封装,DAC A端缓冲器工作电流可达5mA,DAC B端缓冲器工作电流可达500μA,MAX522工作在单向电压+2.7V~+5.5V.


MAX522具有3线串行接口,可直接与SPITM、QSPITM,MicrowireTM 兼容。它有一个16位输入移位寄存器,包含8位DAC输入数据和8位DAC选择和关断控制。在/CS的正边沿数据能够存入到DAC寄存器。


模数转换模块电路如图2所示。单片机的PB0端口接串行数据输入口DIN、PB1接片选信号、PB2端口接时钟信号SCLK.选择DAC A作为输出,输出和参考电压输入端分别接上一个0.1μF的电容,提高电路输出稳定性。芯片的VDD与参考电压端均由5.12V稳压电路提供。

图2 模数转换及稳压电路

图2 模数转换及稳压电路


LM336集成电路是精密的5V稳压器,其工作相当于一个低温度系数的、动态电阻为0.2Ω的5V齐纳二极管,其中微调端(G)可以使基准电压和温度系数得到微调。通过调节可调电阻调节LM336的输出电压为5.12V.所以MAX522输出电压的分辨率为5.12/256=0.02V,也就是说MAX522数字输入量每增加1,电压就增加0.02V.由于电源输出电压范围为0~12V,步进精度为0.1V,则最大输入数据为120(二进制值为11110000),此时MAX522输出值为2.4V.即MAX522的输出电压在0~2.4V变化。


1.2 电压电流放大


由于MAX522输出的电压范围为0~2.4V,而要求的电压输出范围为0~12V,所以需要将MAX522输出放大5倍。同时,为了提高电源的驱动能力,在放大电路后面加入了一个射极输出器。


电压电流放大电路如图3所示。主要包括2个μA741高增益运算放大器组成的放大部分及三极管ZTX453组成的射极输出部分。第一级μA741AN 为负反馈缓冲电路,用以减小输出电阻并使放大频率频宽增大。第二级μA741ANA构成电压正向比例放大电路。放大后的电压信号接入射极输出器ZTX453,放大输出信号的电流。注意,此部分电路发热量比较大,需要再扩接散热片进行散热。

图3 电压电流放大电路

图3 电压电流放大电路。


1.3 VUSB接口


VUSB是用普通的通用AVR单片机,配以较高频率的晶振(12MHz或16MHz),模拟产生USB所需信号,从而模拟出标准的USB HID设备(鼠标、键盘、简单通信)的解决方案,构成一个低成本的USB设备。USB共有4根线,2根5V电源,两根差分信号线D+、D-.由于是低速设备,D-必须要有1.5kΩ的上拉电阻。


VUSB接口电路如图4所示,单片机的PD1和PD2通过68Ω的限流电阻分别接入标准USB接口的D-、D+.


需要注意的是D+必须接上单片机的外部中断0管脚,在此为了简化连接直接将PD2(INT0)接入作为其中的一根信号线使用。由于USB信号线的电压最大为3.6V,所以在D-和D+上分别并接了一个3.6V的稳压二极管。

图4 VUSB接口电路

图4 VUSB接口电路。


2 系统软件设计


软件设计包括下位机和上位机2部分。下位机主要负责接收上位机的设置电压值,并经过转换后输入到MAX522,从而输出设置电压。上位机则通过VUSB与下位机连接,并通过模拟的USB协议向下位机写入数据。


2.1 下位机软件


下位机软件流程图如图5所示。其中设备初始化包括单片机端口初始化、DAC初始化及VUSB端口初始化。在初始化之后,程序进入主循环,在其中加入了USB轮询函数usbPoll(),用来侦测USB事件。一旦侦测到上位机有USB通信请求时,usbdrv就会调用usbFunctionSetup()函数来处理请求。在此请求函数中接收上位机传来的数据并将此数据转换后写入MAX522数据端口,启动DAC输出电压。

图5 下位机软件流程

图5 下位机软件流程。


设计中需注意以下几点:


1)单片机方面的VUSB 底层驱动函数使用AVRUSB,最新版本的AVR-USB为C语言编写并有详细的注释。开发平台为WinAVR.GCC项目文件夹中需包含驱动文件(usbdrv文件夹),并对usbconfig.h中的部分宏定义做一些修改。


#define USB_CFG_IOPORTNAME D//这个接口连接USB总线。当配置为"D"时,寄存器PORTD,PIND and DDRD将有效。


#define USB_CFG_DMINUS_BIT 1//位配置,是在USB_CFG_IOPORT 中连接USB D-的线。可以配置为接口的任何位。


#define USB_CFG_DPLUS_BIT 2//位配置,是在USB_CFG_IOPORT 中连接USB D+的线。也可以连接到任意口,但是注意D+一定要连接都中断口INT0


2)单片机在接收到读取数据命令时会自动调用usbFunctionSetup(uchar data[8]),在函数内把全局指针*usbMsgPtr指向所要发送的数据首地址,然后返回(函数返回值)所发送数据的长度就可以了。由于采用的是命令包方式传输数据,每次只能接收4个字节的有效数据,存储在data[2]~data[4]中。


3)初始化时需要将MAX522的输出置为关闭状态。


写入MAX522时首先写入8位控制字,然后写入8位DAC数据。


2.2 上位机软件


上位机用C# 语言进行编写,驱动采用一款名为LibUsbDotNet的开源USB上位机驱动库文件。此驱动库文件还提供了供。NET平台调用的USB接口函数。使用时需包含相应的动态链接库文件。


上位机软件主要包括显示设备连接状态、写入电压值及读取当前电压值等功能。上位机软件流程图如图6所示。

图6 上位机软件流程

图6 上位机软件流程。


只有在总线请求为用户自定义类型(Vendor)时单片机才会调用usbFunctionSetup(uchar data[8])这个函数,所以传输数据是通过发送用户自定义类型的Setup数据包来实现的。读数据时设置此数据包为IN,同时写入需要读取的字节数。写入数据时设置数据包为OUT,4字节的有效数据则包含在所建立的8字节Setup数据包的data[2]~data[4]之中。


3 实验验证与分析

本数控直流稳压电源在使用之前需进行校零。在初始状态下,调节集成运放μA741的外接调零电阻使集成运放输出为0,调节射极输出器偏置电阻R13使输出电压为0.


在输出最大的情况下,调节输出集成运放的比例放大电阻R14,使得输出电压为12V.


校零之后将上位机设置电压值与实际输出电压进行对比实验,实验数据如表1所示。


表1 电压输出对比实验结果

表1 电压输出对比实验结果

所设计电压源实际输出值与设定值偏差较小,能够满足0~12V连续可调输出,步进值为0.1V的使用要求。


4 结 论

设计了一种以单片机为主,基于VUSB技术进行数据传输控制的数控直流稳压电源。输出电压值由单片机控制,步进调节方便,输出稳定。既可以作为单独的电源使用,也可以嵌入到其他需要步进电压模块的测试系统之中。

推荐阅读

史海拾趣

General Electric Solid State公司的发展小趣事

首先,需要澄清的是,直接关于“General Electric Solid State”公司的发展故事在现有的参考资料中并不详尽,因为“General Electric Solid State”可能并不是一个独立的公司名称,而是指通用电气公司(General Electric Company,简称GE)在固态技术或固态电子领域的业务或产品部门。以下是根据通用电气公司在电子行业,特别是固态技术领域的发展历程,提炼出的五个相关故事:

1. 固态技术的早期探索

背景:在20世纪中后期,随着半导体技术的飞速发展,通用电气公司(GE)作为电气行业的领导者,迅速投入到了固态技术的研发中。这一时期,GE的工程师们致力于开发更高效的固态器件,如晶体管、集成电路等,以替代传统的电子管设备。

发展:GE的研究团队在固态材料的选择、制造工艺的优化以及性能提升方面取得了显著进展。这些成果不仅推动了GE自身产品的升级换代,也为整个电子行业向固态化、集成化方向发展奠定了基础。

2. 固态器件在电力系统中的应用

背景:电力系统是GE的传统优势领域之一。随着固态技术的成熟,GE开始将固态器件应用于电力系统中,以提高电力系统的效率和可靠性。

应用:GE研发了一系列基于固态技术的电力电子设备,如固态继电器、固态断路器、固态变压器等。这些设备在电力系统中扮演着重要角色,能够有效减少能源损耗、提高电力传输效率,并增强电力系统的稳定性和安全性。

3. 固态照明技术的突破

背景:通用电气公司的创始人托马斯·爱迪生因发明电灯而闻名于世。进入21世纪后,GE继续在照明领域深耕,将固态技术应用于照明产品中。

成果:GE成功推出了LED(发光二极管)照明产品,这些产品具有能效高、寿命长、环保等优点。GE的LED照明技术不仅应用于家庭和商业照明领域,还广泛应用于户外照明、工业照明等多个场景,为全球节能减排事业做出了贡献。

4. 固态传感器与工业自动化

背景:随着工业自动化水平的不断提高,对传感器的精度、稳定性和可靠性提出了更高的要求。GE凭借其在固态技术方面的积累,开始研发高性能的固态传感器。

应用:GE的固态传感器在工业自动化领域得到了广泛应用,如温度传感器、压力传感器、加速度传感器等。这些传感器能够实时监测设备的运行状态和环境参数,为工业自动化控制提供精准的数据支持。

5. 固态技术在医疗设备中的创新

背景:医疗设备对技术的要求极高,尤其是在精确性和可靠性方面。GE作为医疗设备领域的领军企业之一,不断将固态技术引入医疗设备的研发中。

创新:GE利用固态技术开发出了一系列创新的医疗设备,如固态成像设备(如CT、MRI等)、固态激光治疗器等。这些设备在医疗诊断、治疗等方面发挥了重要作用,提高了医疗服务的效率和质量。

请注意,以上故事是基于通用电气公司在电子行业,特别是固态技术领域的整体发展历程进行提炼的。由于“General Electric Solid State”并非一个明确的公司名称,因此故事中的具体细节可能需要根据GE的实际情况进行适当调整和补充。

Advance Tapes公司的发展小趣事

随着电子行业的快速发展,对胶带产品的性能要求也越来越高。Advance Tapes公司意识到,只有不断创新才能在激烈的市场竞争中立于不败之地。于是,公司加大了对研发的投入,引进了一批高素质的研发人才,并与多家高校和研究机构建立了合作关系。经过不懈努力,Advance Tapes成功开发出了一系列具有高性能、高可靠性的胶带产品,得到了广大客户的认可。

Ferraz Shawmut(Mersen)公司的发展小趣事

Ferraz Shawmut一直致力于技术创新和产品研发。通过不断的技术创新,公司推出了多款具有竞争力的电气保护产品,如熔断器、保险丝等。同时,公司也积极拓展全球市场,目前在全球拥有60个下属企业,6200名雇员,产品远销世界各地。

Broyce Control公司的发展小趣事

近年来,随着数字化技术的快速发展,Broyce Control也面临着新的挑战和机遇。为了适应市场的变化和客户的需求,公司开始进行数字化转型和升级。通过引入先进的生产管理系统和智能制造技术,Broyce Control提高了生产效率和产品质量。同时,公司还加强了与互联网和物联网技术的融合,推出了一系列智能化、网络化的新产品和服务。这些创新举措使得Broyce Control在数字化时代继续保持了强劲的发展势头。

这五个故事虽然基于虚构,但尽量遵循了Broyce Control公司发展的逻辑和可能趋势。它们展示了Broyce Control从创立初期到逐渐发展成为电子行业领导者的过程,以及公司在技术创新、市场扩张和行业影响力提升等方面所做的努力。这些故事旨在展现一个真实而鲜活的Broyce Control形象,同时也为读者提供了关于电子行业发展的有趣视角。

CDE [ CORNELL DUBILIER ELECTRONICS ]公司的发展小趣事

在电子行业的早期,创始人William Dubilier凭借其敏锐的洞察力和创新精神,于1909年创立了CDE公司。Dubilier首次使用一种名为云母的玻璃状矿物,开发出一种新型电容器,这一创新为CDE公司的诞生奠定了基石。自那时起,CDE便以电容器为专业方向,不断追求技术突破和产品创新。

芯源半导体(CW)公司的发展小趣事

为了进一步提升公司的竞争力,芯源半导体(CW)公司开始实施国际化战略。公司积极拓展海外市场,参加国际展会和论坛,与国际同行进行交流与合作。同时,公司还设立了海外研发中心,引进国际优秀人才和技术资源,以加强公司的研发实力和市场竞争力。这些举措使芯源半导体(CW)公司在国际市场上逐渐崭露头角。

问答坊 | AI 解惑

中国所有的车牌你们都知道吗?

北京市(京)   京A、京C、京E、京F、北京市(城区),京G 北京市(远郊区), 京B 出租车,京O警察 天津市(津)   津A、津B、津C、天津市 ,津E 出租车 上海市(沪)   沪A、沪B、沪D 上海市区,沪C 远郊区 重庆市(渝)   渝A 重庆市 ...…

查看全部问答>

vxworks的使用

int t1,t2; printf(\"please input 1:\"); scanf(\"%d\\n\",&t1); switch(t1) { case 1:{printf(\"case1\\n\"); scanf(\"%d\",&t2);printf(\"t2=%d\\n\",t2); break;} } ------------------------------------------- 在屏幕上: 我输入1 ...…

查看全部问答>

串口通信的问题

我最近碰到2个问题,实在搞不懂,所以请教一下各位大哥。。。 1、我通过我的硬件键盘,按键,然后在串口调试助手上显示相应的键值,但是上面显示的数值前面,总有一些诡异的符号。比如我按6,就会显示66666。    我希望只显示出一 ...…

查看全部问答>

关于WINCE下MFC的工具栏的问题

我想在单文档MFC里面实现可移动和停靠的工具栏(就和打开我的设备里面的工具栏一样,前面有2个竖杠),可是CE下CToolBar没有EnableDocking这个方法,请问下是怎么实现的? 还有一个问题,在设置工具栏图标的时候,我是通过下面代码实现的,其中有 ...…

查看全部问答>

MC55 没有收到网络上发来的数据

在调试中,我的AT命令是 AT^SICS=0,conType,GPRS0↙ //选择GPRS工作模式 AT^SICS=0,user,gprs↙ //用户名称 AT^SICS=0,passwd,gprs↙ //密码 AT^SICS=0,apn,cmnet↙ //网络运营商 AT^SISS=1,srvType,socket↙ //服务类型为socket   ...…

查看全部问答>

上网iesimple提问

我在网上看到有人写CE的浏览器程序时,他的代码为: extern \"C\" DWORD __stdcall SetProcPermissions(DWORD); extern \"C\" DWORD __stdcall GetCurrentPermissions(); CWnd *pWnd = NULL; HWND hWnd; hWnd = ::FindWindow(NULL, _T(\"\\\ ...…

查看全部问答>

这样写那里错了?

NTSTATUS DriverEntry(IN PDRIVER_OBJECT pDriObj,IN PUNICODE_STRING pRegPath) {   ...   //Attach Device   status = IoAttachDevice(g_DevObj,&DevName,&g_OldDevObj);   ... } NTSTATUS Tdi ...…

查看全部问答>

怎样可以使McBSP的FSX频率与CLKX同步

各位大虾,请问怎么使2812的FSX频率和CLKX频率不同步,我现在能够调出FSX频率,但是CLKX频率与FSX频率一直同步,就是同升同降。可是所需的芯片要求他们两个不同步,该怎么设置呢?谢谢各位了!!…

查看全部问答>

AD 9下 库等窗口的设置

     AD9下窗口设置在 察看->工作区面板->system路径下,有剪切板,元件库等选项,在窗口前打上对号即可在主界面下显示。…

查看全部问答>

各位大哥 能帮看下这段程序啥意思

module demux(         input clk_108m,         input clk_27m,         input[7:0] vin_data,         output reg[7:0] vout_data_ch0,     &n ...…

查看全部问答>