打印
[Actel FPGA]

基于AVR单片机PWM功能的数控恒流源研制(转)

[复制链接]
2361|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ladygaga|  楼主 | 2011-1-9 20:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
随着电子技术的深入发展,各种智能仪器越来越多,涉及领域越来越广,而仪器对电源的要求也越来越高。现今,电源设备有朝着数字化方向发展的趋势。然而绝大多数数控电源设计是通过高位数的A/D和D/A芯片来实现的,这虽然能获得较高的精度,但也使得成本大为增加。本文介绍一种基于AVR单片机PWM功能的低成本高精度数控恒流源,能够精确实现0~2A恒流。 系统框图

图1为系统的总体框图。本系统通过小键盘和LCD实现人机交流,小键盘负责接收要实现的电流值,LCD 12864负责显示。AVR单片机根据输入的电流值产生对应的PWM波,经过滤波和功放电路后对压控恒流元件进行控制,产生电流,电流再经过采样电阻到达负载。同时,对采样电阻两端信号进行差分和放大,送入ADC。单片机根据采集到的值调整PWM输出,从而调整了输出电流。如此反复,直到电流达到设定要求。
图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所示。
图2  PWM波产生过程

图2中的C~F为OCR1A匹配值。从图中可见,波形在每个匹配值处以及计数清零时输出发生变化,从而实现了PWM波。由于OCR1A的值可以从0x0000到0xffff,共有65535个值,因此PWM波的最大分辨率为1/65535,满足系统分辨率设计要求。PWM波的频率为:

       (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,其分辨率为:

       (2)

若使用片内的2.56V基准源作为参考电压,依据式(2)可得到其分辨率为0.003V。

当系统需要更高的分辨率时,可以通过软件补偿的方法来实现。具体实现方法可参考相关资料。

3 滤波和功放模块
图3  二阶RC低通滤波电路

PWM波产生后不能直接用于控制MOSFET,需把其变成能随占空比变化而变化的直流电压。在此,我们选用二阶RC低通无源滤波器,并取得了很好的效果。
二阶RC低通无源滤波器的系统函数为:

        (3)

其中,A为通带增益,Q为品质因素,  ω0为截止频率。根据式(1)算出PWM波的频率,取截止频率为30kHz,由式(3)可确定对应的电阻、电容值。

相关帖子

沙发
diny| | 2011-1-9 21:20 | 只看该作者
看看。留个印儿。

使用特权

评论回复
板凳
amini| | 2011-1-17 13:38 | 只看该作者
学习了。

使用特权

评论回复
地板
zc564075839| | 2011-8-8 14:41 | 只看该作者
记号!

使用特权

评论回复
5
laughmen| | 2011-8-8 14:57 | 只看该作者
学习了,楼主能不能上压控恒流源的电路呀

使用特权

评论回复
6
FVJFIFE| | 2011-8-9 16:48 | 只看该作者
mark

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

301

帖子

1

粉丝