随着电子技术的深入发展,各种智能仪器越来越多,涉及领域越来越广,而仪器对电源的要求也越来越高。现今,电源设备有朝着数字化方向发展的趋势。然而绝大多数数控电源设计是通过高位数的A/D和D/A芯片来实现的,这虽然能获得较高的精度,但也使得成本大为增加。本文介绍一种基于AVR单片机PWM功能的低成本高精度数控恒流源,能够精确实现0~2A恒流。系统框图 图1为系统的总体框图。本系统通过小键盘和LCD实现人机交流,小键盘负责接收要实现的电流值,LCD 12864负责显示。AVR单片机根据输入的电流值产生对应的PWM波,经过滤波和功放电路后对压控恒流元件进行控制,产生电流,电流再经过采样电阻到达负载。同时,对采样电阻两端信号进行差分和放大,送入ADC。单片机根据采集到的值调整PWM输出,从而调整了输出电流。如此反复,直到电流达到设定要求。 550)this.width=550" align=middle> 图1 数控恒流源系统框图模块介绍 1 人机接口模块 本模块包括小键盘电路和液晶显示电路。键盘设计为3×4键盘,由数字键0~9,功能键“删除”及“确认”组成,采用反转法实现键值识别。显示电路由带中文字库的LCD 12864构成,该液晶可以每行8个汉字显示4行。由于这部分电路比较简单,在此不详述。 2 核心控制模块 系统的核心控制模块为AVR单片机(ATMEGA 16L)。主要使用了AVR的PWM功能和A/D功能。 AVR单片机片内有一个具有16位PWM功能的定时/计数器。在普通模式下,计数器不停地累加,计到最大值(TOP=0xffff)后溢出,返回到最小值0x0000重新开始。当启用PWM功能即在单片机的快速PWM模式下,通过调整OCR1A的值可实现输出PWM波的占空比变化。产生PWM波形的机理是:PWM引脚电平在发生匹配时(匹配值为0~0xffff之间的值,如图2中的C),以及在计数器清零(从MAX变为BOTTOM)的那一个定时器时钟周期内发生跳变,具体实现过程如图2所示。 550)this.width=550" align=middle> 图2 PWM波产生过程 图2中的C~F为OCR1A匹配值。从图中可见,波形在每个匹配值处以及计数清零时输出发生变化,从而实现了PWM波。由于OCR1A的值可以从0x0000到0xffff,共有65535个值,因此PWM波的最大分辨率为1/65535,满足系统分辨率设计要求。PWM波的频率为: 550)this.width=550" align=middle> (1) 其中,fclk_I/O为系统时钟频率 (7.3728MHz),N为分频系数(取1、8、64、256或1024)。在N取1时,根据式(1)得PWM波的最大频率为7.3728MHz;当N取1024时,PWM波的最小频率为 7.2kHz。本系统N取256,PWM波频率为28.8kHz。 单片机内部有1个10位的逐次逼近型ADC,当使用片内VCC作为参考电压Vref,其分辨率为: 550)this.width=550" align=middle> (2) 若使用片内的2.56V基准源作为参考电压,依据式(2)可得到其分辨率为0.003V。 当系统需要更高的分辨率时,可以通过软件补偿的方法来实现。具体实现方法可参考相关资料。 3 滤波和功放模块 550)this.width=550" align=middle> 图3 二阶RC低通滤波电路 PWM波产生后不能直接用于控制MOSFET,需把其变成能随占空比变化而变化的直流电压。在此,我们选用二阶RC低通无源滤波器,并取得了很好的效果。二阶RC低通无源滤波器的系统函数为: 550)this.width=550" align=middle> (3) 其中,A为通带增益,Q为品质因素, ω0为截止频率。根据式(1)算出PWM波的频率,取截止频率为30kHz,由式(3)可确定对应的电阻、电容值。 由于无源滤波器的负载能力差,信号经过二阶无源滤波网络后衰减比较厉害,需要增加一级功率放大电路。功放电路比较简单,也有经典电路,限于篇幅不再赘述。 4 恒流源模块 恒流源采用的是压控恒流元件IRF540,它的VGS为20V,ID为33A。截止时,最大漏电流为1μA,导通电阻仅有0.04Ω,图4为IRF540的特性曲线。 550)this.width=550" align=middle> 图4 IRF540特性曲线 由图4可知,当VGS为5V时,可输出电流就可达到30A左右,完全能实现小电压控制大电流的目的。具体应用电路如图5所示。 550)this.width=550" align=middle> 图5 横流电路 IRF540的G极接PWM波转换后的直流电压,D极接能提供15V/5A电流的电源(可采用开关电源),S极用来接采样电阻和负载。采样电阻应采用温漂系数低、阻值为10mΩ、精度为1%的大功率锰铜丝电阻。当对采样电阻两端信号进行差分后,可得到采样电阻两端的电压值U,而在已知采样电阻阻值情况下,很容易得到流经采样电阻的电流,即I=U/R。由于负载与采样电阻在同一条支路,故流经负载的电流也为I。差分放大电路的放大倍数可根据采样电阻阻值以及ADC的参考电压来选择,图5中要求R1=R3,R2=R4,放大倍数为R4/R3。需要注意的是该电路应该具有很高的输入阻抗,以减少对负载电路的影响。差分信号经ADC口送入单片机进行处理。软件设计 由图6可知,整个系统是一个动态的闭环系统。由于PWM初始匹配值设置的大小不同,电流值在开始时可能会跟设定值有较大偏差。随着闭环系统的自我调整,逐渐使输出稳定在设定值上下。系统达到稳定状态的时间以及稳定后电流值波动的幅度,可根据设计要求由软件来调整。 550)this.width=550" align=middle> 图6 程序流程图实验结果 我们对此数控恒流源进行了负载测试,测试结果如下: 从表1和表2的实测数据中可以看出,该恒流源在负载为100Ω以内,最大误差仅为2mA,在0~200mA段没有误差,满足了设计要求,达到了较高的精度。 如果需要提高200mA段以上的精度,可采用软件补偿的方法实现。即先测量足够多的测试数据,然后采用曲线拟合方法对数据分段进行补偿,详细方法可参考相关资料。结语 本文介绍的基于PWM技术的数控恒流源电路结构简单,成本低,系统稳定可靠,精度高,已经应用于工业生产。如果设计要求更高的恒流值,可以更换更大功率的+15V/I电源,以及更换合适的压控恒流元件。

本文可能所用到的IC型号: ATF1504ASV-15JC44 1N4755A 1N4757A TMS34010FNL40 TY72011P 74AC240SC 2SC3505 SN74ALS996DW

转载于:https://blog.51cto.com/390343/101589

基于AVR单片机PWM功能的数控恒流源研制相关推荐

  1. 单片机拟真电路图软件_基于MSP430单片机设计的高效数控直流电源及其测试方法与流程...

    本发明涉及直流电源 技术领域: ,具体涉及一种基于MSP430单片机设计的高效数控直流电源及其测试方法. 背景技术: :电压电流源是很多电子仪器设备研制的关键设计之一,电源在工作时产生的变动或误差,将 ...

  2. 单片机c语言实训例子基于mega16,基于AVR单片机的mega16内部EEPROM操作C语言程序设计...

    原标题:基于AVR单片机的mega16内部EEPROM操作C语言程序设计 #include #include #include #define uchar unsigned char #define ...

  3. 基于51单片机PWM(即脉冲宽度调制)调速数码管显示测速L298M芯片控制直流电机正反运转的项目

    基于51单片机PWM(即脉冲宽度调制)调速数码管显示测速L298芯片控制直流电机正反运转的项目 一.前言 1.基于51单片机PWM(即脉冲宽度调制)调速数码管显示测速L298芯片控制直流电机正反运转的 ...

  4. AVR单片机计算器C语言源程序,一个基于AVR单片机的计算器程序.doc

    一个基于AVR单片机的计算器程序 #include #include//延时函数的头文件 #include // 中断函数的头文件 #define uint unsigned int #define ...

  5. 单片机包络检波c语言,基于AVR单片机的125kHz简易RFID阅读器设计.PDF

    基于AVR单片机的125kHz简易RFID阅读器设计 基于AVR单片机的125 敖 华1,陈渊睿1'2,骆祖国1,李婷1 510640) (1.华南理工大学电力学院,广东广州510640:2.华南理工 ...

  6. 基于51单片机多功能智能台灯设计 视力灯 坐姿矫正套件 台灯 人体感应 包括实物+电路原理图+程序+proteus仿真

    基于51单片机多功能智能台灯设计 视力灯 坐姿矫正套件 台灯 人体感应 包括实物+电路原理图+程序+proteus仿真 ID:69100646120443268太白路自信的桔梗

  7. ds18b20温度传感器 lcd C语言,基于AVR单片机的18B20温度传感器及LCD显示的C语言程序设计...

    ***************************************************/ #include #include #define uchar unsigned char # ...

  8. 基于51单片机多功能电磁炉仿真设计-protues

    本设计是基于51单片机的电磁炉仿真,通过51单片机的IO接口P3.0为输出口,用于控制线圈的打开和关断.其中P1.0和P1.1对微波炉功率进行调整.附件内容包含protues仿真电路和c语言代码. [ ...

  9. 基于51单片机多功能智能心率检测仪设计(毕设课设)

    这是一款基于51单片机的心率检测仪,可以在LCD1602液晶显示屏上显示你的心率,而且误差非常小,代码结构简单,易于理解,非常适合大众. 而且想做毕业设计的同学,我也附上了我自己写的设计报告,可供大家 ...

最新文章

  1. 手机直播系统源码搭建说明
  2. CentOS安装Java JDK
  3. python process 函数_Python Process创建进程的2种方法详解
  4. Online Judge System
  5. MySQL HandlerSocket插件 资料
  6. C++ Coding Standard
  7. 【零基础学Java】—Socket类(五十五)
  8. centos vim编辑器 第八节课
  9. Tomcat控制台乱码
  10. UVa1368 - DNA Consensus String
  11. oracle delete循环删除_oracle性能优化:高水位线(HWM)详解--如何计算HWM
  12. CDOJ 483 Data Structure Problem DFS
  13. php windows vld,PHP之opcode及VLD使用
  14. 记微信小程序动态表单实现
  15. TAGE Predictor
  16. post模拟传数据的几种方法
  17. 通用设计法则:80/20法则
  18. npm ERR! code EJSONPARSE
  19. 【Python3学习笔记】之【Python基础——注释与运算符】
  20. 开发团队PMO如何构建管理更有效?

热门文章

  1. stringbuffer常用方法_Java 处理字符串常用的类:String StringBuilder StringBuffer
  2. c语言最小点对问题_7.4 图的连通性问题
  3. mysql 页级锁写法_MYSQL中表级锁、行级锁、页级锁介绍
  4. java求n个分数之和_N个快速提升分数的学习方法
  5. Spring Boot基础学习笔记20:Spring Security入门
  6. 无心剑英译林清玄《永恒》
  7. 利用SciTE的导出功能保持代码语法着色效果
  8. 15.立体几何——介绍,为什么多个视图,深度和形状线索 测验,人类如何在3D中看到东西_1
  9. 三角学——极坐标_2
  10. 2017.8.14 分手是祝愿 失败总结