7

关于投票
DS18B20温度计制作详细全过程
  DS18B20温度计制作全过程(出自http://avr.cnta.net)
  
  元件盒一直躺着几只DS18B20,从没试过,决定用它做个电子温度计,说干就干......
  
  1、构思
  Mega8做大脑、小塑料盒做外壳、3位LED数码管显示、废弃手机电池做电源、线路板热转印制作、设置2个开关(1个按键式、1个拨动式可常开)、RS232升级程序。先想这些吧,开始干了。

  2、画电路出图
  电路原理图很简单,很快用PROTEL99SE画完;
  根据小塑料盒大小设计PCB板,布好线,这步也不复杂。
  裁好热转印纸,准备出图了,我喜欢打印时选择"Show Holes",这样在焊盘上就有孔。用我刚买的HP3050Z一体机,那天逛科技市场,看了感觉不错就搬回来了,从没用它打过转印纸,还不知道效果呢。
  ......图出来了,还不错!比较满意。


  3、制作线路板
  ①找块单面敷铜板, 按合适尺寸裁好,用很细很细的沙纸打磨光亮,冲洗干净,吹干。千万别省事,一定要干净,否则转印效果不好。也可以用稀三氯化铁擦涂一下,能稍微提高转印效果。


  ②对好位置,将打好的热转印 纸盖到敷铜板上,用不干胶粘到平整的耐热材料上,强烈建议别直接放在你家的红木写字台上,我用的是铺剩的复合地板。用电熨斗进行转印,慢慢移动,使图及板受热均匀,尤其是边缘部分,要特别照顾一下。力量和时间我全是靠经验,大概20秒左右,稍用力。


  ③加热后,纸与板粘在一起了,很烫,一定小心,别烫了你的小手手。扔到洗手池里,用凉水降温,我实在等不及它自然冷却。


  ④板子凉了,从一边轻轻撕下转印纸,看看效果吧,很不错!是10Mil的线啊,没断一根。


  ⑤扔到三氯化铁熔液里腐蚀。要想速度快,最好是热熔液+搅拌+毛刷轻刷。
  应该好了吧,看看......


  ⑥洗净炭粉。你们都是用什么洗啊,我用汽油,气味大点,但非常好用,用纸巾蘸一点就擦干净了,擦后用肥皂洗一下板子。什么?你没有汽油,这好办,拿个钢钉,拿把锤子,拿个瓶子,趁没人的时候到你家楼下找辆底盘高点的车,爬到车底下,在油箱上凿个洞,汽油就流出来了,接汽油的时候千万别抽烟,切记。接完汽油后,别忘了给人家油箱用什么东西堵上,以免漏光油耽误人家办急事。(取油方法仅限于想象,请勿模仿,哈哈)


  4、线路板钻孔,学学CNC
  线路板手动钻孔是件麻烦事,特别是IC脚的排孔,往往钻不垂直钻不整齐。今天试试用雕刻机自动钻孔,开始了......
  ①用PROTEL99SE将PCB输出PDF格式文件,分辨率设置为600DPI,如果你装了虚拟图形打印机,当然也可以直接输出BMP格式图像文件,我用的是PdfCreator虚拟打印机。用PhotoShop CS2打开PDF文件,分辨率输入600DPI......
点击看大图


  ②处理图像
  将图像水平翻转,将角上4个螺丝孔的焊盘染为另一种颜色,我将它染成了绿色,存为BMP格式文件。



  ③生成刀路文件
  启动ArtCAM Pro 8.1,打开刚才处理好的BMP格式文件,不要使用快捷方式<通过图像产生模型>,否则调入的图像会转换为灰度,要使用菜单的[文件]-[打开]或打开文件按钮。确定后,会蹦出模型尺寸设置对话框,设置为600DPI,单位毫米......


  双击绿色焊盘,选择绿色图形,然后在对话框上点<关闭>......


  在<助手>里的<矢量-位图>点<位图到矢量>小图标......


  退出通过位图产生矢量对话框,点<接受>即可。这时4个绿色焊盘会由虚线框住。


  下面要生成刀路文件了。在<刀具路径>的<二维刀具路径>里点击<钻孔>图标


   在<钻孔>设置里,开始深度0,结束深度2.5,随便选择个尖刀,设置下切步距3,钻孔中心位于全部已选矢量,材料厚度3,起个名称叫“定位”吧,点击<现在>,再点<关闭>,在<刀具路径>框上方就出现了[定位]的名称,单击它变成蓝色,点击<保存刀具路径>......


  选择Tryax格式,起个名字,还是叫“定位”吧,保存刀具路径文件。
点击看大图


  ******焊盘钻孔的刀具路径与以上方法相同,不再赘述******

  ④开始自动钻孔啦
  启动MACH2,调入“定位的.tap”,我喜欢用诊断模式,可以输入XYZ值控制主轴位置,按<Alt+7>进入诊断模式。
  将线路板放到雕刻机工作面上,操控刻刀到线路图左下角位置,刀尖离板3mm,置XYZ全零。


  不用开主轴电机,空跑一遍试试,看刀是否落位准确,根据偏差调整线路板位置,直到4个点能落位准确,用热熔胶固定线路板。刀置于X0,Y0位置。


  调入钻孔刀路文件。换上0.8mm钻头,控制主轴下降,将钻头尖贴近线路板,将Z置零,打开主轴电机,点<启动>,雕刻机开始自动钻孔了......
  外壳开孔的加工方法同上,测量好开孔位置,用雕刻机尖刀开孔......
  ***(本论坛不支持WMV视频文件格式,有兴趣的可访问作者的http://avr.cnta.net)***

  5、制作测温头
  找个大小合适的电解电容。
  首先脱了它的衣扒了它的皮,然后抽了它的筋剔了它的肉,剩下个骨头架;
  然后将里面灌上导热硅脂,把焊上线的DS18B20放进去,呵呵,有点象寄居蟹;


  找根粗细合适的圆珠笔杆,将测温头用环氧树脂胶固定住,这样能测量液体温度,没事就测测水烧开了没有。


  6、开始总装了
  将半成品运到总装车间,在总工程师领导下,各部门协调有序地运作起来。
  动力部门找了块原装名牌废手机锂电池,其实还能用,就是待机时间太短;
  机械部门找来了一颗钢珠,用做按钮开关的按键,说是增加温度计金属感,提高档次,再者这么白白滑滑的,摸着也舒服;
  线路板元件很少,几只电阻、1个按钮开关、1个拔动开关、1只Mega8、引出排线接LED数码管,再连上DS18B20的3根线......很快就焊接完毕。


  把盖子安上,怎么样,不错吧!


  还有2个接口需要交待,一个是充电口,一个是RS232口。Mega8里烧进了BootLoader升级程序,用RS232口更新程序。 请看下面这个图,右边是充电接口,中间是电源拔动开关,左边是RS232接口。


  7、电路及程序
  电路非常简单,这是电路图:


  程序用BASCOM-AVR编写,也是比较简单,以前从没用过DS18B20,现学现编。采用9位精度,设置好后存入DS18B20的EEPROM。程序没仔细推敲,只是完成简单的显示温度功能。最多显示3位数字,(-10,100)显示1位小数,其它区间显示整数。
    
  源码下载:点击此处下载(文件大小:1K)
系统分类: 测试测量
用户分类:
标签: 无标签
来源: 整理
发表评论 阅读全文(252) | 回复(0)

2

关于投票
ATT7022B跨相测量无功计算方法
终于弄明白了如何计算:上图
点击看大图
 (原文件名:跨相测量无功接法.JPG) 



2008.6.12试验数据:
威胜电表:
Ua = 240.8V
Ia = 0.487A
Pa = 118.1W
Qa = 0
Sa = 118.1VA
COS = 0.99

ATT7022B读数:
Ua = 241V
Ia = 0.48A
Pa = 0.1W
Qa = 84.9Var
Sa = 85VA
COS = 0
Pga = 89.38度
将Ia接线柱调换后读数:
Ua = 241V
Ia = 0.48A
Pa = 0.1W
Qa = -84.9Var
Sa = 85VA
COS = -0
Pga = -89.38度
ATT7022B校表数据为,输入Ubc=409V,校准为Ubc/1.732,即Ubc除以根3。
结论:用Ubc+Ia接线方式,ATT7022B读数Ua,Ia,Pga是正确的,Pa,Qa,Sa,COS是不正确的。
我们计算有功无功应该用公式:
Pa = Ua*Ia*SIN(Pga)
Qa = Ua*Ia*COS(Pga)
功率因数 = SIN(Pga)
电流方向调换后的计算公式为:
Pa = -Ua*Ia*SIN(Pga)
Qa = -Ua*Ia*COS(Pga)
功率因数 = -SIN(Pga)
系统分类: 测试测量
用户分类:
标签: 无标签
来源: 转贴
发表评论 阅读全文(115) | 回复(0)

1

关于投票
使用输入捕捉的信号周期测量(带数码管显示)

/********************************************************
Project              :使用输入捕捉的信号周期测量
Chip type            :ATmega8L (VCC=3V)
Clock frequency      :8.000000 MHz
Author               :
Edition              :V1.0
Time                 :2008.06.02
Comments             :
    能正常的测量及显示,但误差较大
********************************************************/
#include <iom8v.h>
#include <macros.h>
#include "selffile.h"

#pragma data:code
const unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 
                             0x77,0x7c,0x39,0x5e,0x79,0x71};  //七段译码字型表(共阴极)
#pragma data:data
unsigned char ledbuff[8];
unsigned int  oldcount,newcount;


void  main(void)
{
    mcu_init();                      //MCU初始化
        led_display(0);                  //LED初始显示0
        delay_nms(1000);
        while(1)
        {
            if(newcount!=oldcount)      
                   oldcount=newcount;        //捕捉到新的数值则更新显示
        
                led_display(oldcount);
                delay_nms(1000);
        }
}

void  mcu_init(void)
{
    CLI();
    DDRB&=~(1<<PB0);                //捕捉IO口为输入
        DDRC|=(1<<PC4)|(1<<PC5);        //LED-DATA、CLK为输出
        DDRD|=(1<<PD4);
        PORTB=0x00;
        PORTC=0x00;
        PORTD=0xff;
        TIMSK=0x20;                     //使能T1捕捉中断
        ICR1=0;
        TCNT1=0;
        TCCR1A=0x00;
        TCCR1B=0xC1;                    //不分频,用8M进行采样,更准确,但有4K左右的误差
        SEI();
}

void  hextobcd(unsigned int Icp_count)
{
    unsigned char i,temp;
        for(i=0;i<4;i++)
        {
             temp=Icp_count%10;
                 ledbuff[i]=table[temp];
                 Icp_count=Icp_count/10;
        }
}

void  led_display(unsigned int DData)
{
    unsigned char i,j;
        unsigned int  Icp_data=0;

    hextobcd(DData);
        
        for(i=0;i<4;i++)                       //采用移位寄存器HC164实现串入并出
        {
                 for(j=0;j<8;j++)
                 {
                      PORTC_LED_CLK_0;
                      if((ledbuff[i]&0x80)==0x80)
                              PORTC_LED_DATA_1;
                          else
                              PORTC_LED_DATA_0;
                          
                          PORTC_LED_CLK_1;
                          ledbuff[i]=ledbuff[i]<<1;
                 }                          //在此循环后无须加延时,否则会造成明显的闪动
         }
}

void  delay_nms(unsigned int n)          //延时n ms
{
    unsigned int i;
    for(i=0;i<n;i++)
           delay_1ms();
}
void  delay_1ms(void)                    //8M.延时1ms
{
    unsigned int i;
        for(i=1;i<1142;i++)
        ;
}

#pragma interrupt_handler Icp_timer1:6
void  Icp_timer1(void)                  //捕捉中断
{
    newcount=ICR1;
        ICR1=0;
        TCNT1=0;
        TCCR1B=0xC1;
        PORTD&=~(1<<PD4);                   //指示灯亮
}

http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=1133029&bbs_page_no=1&search_mode=1&search_text=测量&bbs_id=9999

系统分类: 测试测量
用户分类:
标签: 无标签
来源: 转贴
发表评论 阅读全文(104) | 回复(0)

5

关于投票
2006年广西大学电子设计竞赛二等奖---简易信号测量仪(全部文档)
这个是我朋友参赛的东西,现在传上来~
简易信号测量仪(C1题) 
(适用本科生) 
一、任务 
设计并制作一台简易信号测量仪,利用它能完成如下测量功能。 
二、要求 
1、基本要求 
(1) 能够测量方波的周期与频率(方波为TTL电平,占空比50%,频率范围1Hz~10KHz),测量频率误差≤1%。 
(2) 能够测量并显示正弦信号的VPP及频率(正弦波频率范围1Hz~10KHz,1V≤VPP≤5V),测量频率误差≤1%。VPP误差≤0.5V。 
(3) 能测量脉冲信号宽度(脉冲信号幅度‘1V—5V’,脉冲宽度≥200us),测量误差≤1%。 
(4) 能自动识别被测信号是正弦波还是方波,用红色发光管表示正弦波,绿色发光管表示方波,或者在液晶上用文字显示(方波、正弦波必需从同一个端子输入)。 
2、发挥部分 
在完成基本要求任务的基础上,增加如下功能: 
(1) 能测量方波的占空比,测试误差≤1%。(方波为信号幅度‘1V—5V’,占空比10%--90%,频率范围1Hz~10KHz) 
(2) 用液晶实时显示被测波形至少一个周期的形状。 
(3) 能测量如图所示电路对1KHz正弦信号的相移量,如图中所求UO与Ui的相位差。

ourdev_278882.rar(文件大小:603K) (原文件名:简易信号测量仪(全部文档).rar) 

文件夹 PATH 列表
卷序列号码为 00000029 3410:5D94
D:\简易信号测量仪(全部文档)
    VPP测试.pdf
    信号整形电路.pdf
    实时波形显示.pdf
    简易信号测量仪(C1题).pdf
    简易信号测量仪(程序).txt
    简易信号测量仪(论文).doc
    简易信号测量仪(赛题).doc
    系统电路.Sch.pdf
http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=1074806&bbs_page_no=1&search_mode=1&search_text=测量&bbs_id=9999
系统分类: 测试测量
用户分类:
标签: 无标签
来源: 转贴
发表评论 阅读全文(213) | 回复(0)

2

关于投票
基于AVR和PC的测量与机电控制平台(完整代码和制作过程)
对单片机很有兴趣,很高兴有OURAVR这样一个开放的网站,什么都能找到。
我打字很慢,电脑不能上网,一直是下载资料,只传过两次,实在不好意思  这个论文是我参加学校竞赛时写的,做的是一个兼顾测量和机电控制的平台,有PC上的软件控制,当然也可有4X4矩阵键盘控制,还有16X2字符液晶。
可以控制多路 舵机,直流电机,2相步进电机。可以测量电压,温度,转速,频率等等。 另外还可以作信号发生器(不是单片机,是ICL8038),逻辑分析仪。
   毕竟是第一次做复杂的东西,实间很紧,学院给钱有限,东西都很粗,电路图有些都没画,论文和软硬件多次更改,连我自己都搞不清哪个版本错误少。
   参加比赛的方案受到OURAVR 的很多启发,也参考了一些例程,一并表示感谢。我是第一作者(当然还有几位拍档),完成所有上下软件设计,还有大部分硬件。现在把这个传上来,作为对OURAVR的感谢,只不过还很不完善,因为事先没有想到传上来给人看。但是代码都很详细,对于做串口VC编程,机电控制,单片机量的初学者,是可以看看的,参考时,请读懂后自己写代码,因为这些资料都是后来整理出来的,难免会有错误。
点击此处打开armok01168219.pdf
点击此处下载armok01168220.rar
http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=793899&bbs_page_no=1&search_mode=1&search_text=测量&bbs_id=9999
系统分类: 测试测量
用户分类:
标签: 无标签
来源: 转贴
发表评论 阅读全文(100) | 回复(0)

3

关于投票
用可编程模拟电路实现MEMS陀螺仪测量系统
Leon Foucault在1852年发明了世界首个陀螺仪,这种传统的机械式陀螺仪如图1所示。Foucault认为,利用固定位置上的旋转物体可以测量地球的旋转。在理论上他的想法是正确的,但当时他只能让物体保持旋转数分钟的时间,因此不足以观察到地球的显著运动。不过随着电气马达的发明,陀螺仪突然变得切实可行了,因为马达能让物体无限地旋转下去。在这种思想指导下,人类发明了电动回转罗盘,并很快用于船只和飞机上。 

微机电系统(MEMS)技术的飞速发展已经允许制造商在微型芯片上制造出完整的陀螺装置。不仅如此,随着时间的推移,MEMS陀螺仪价格正变得越来越便宜,体积也越来越小。技术的发展和价格的降低使得集成式MEMS陀螺仪能很好地工作于许多实际应用场合。 

虽然传统的陀螺仪主要用于测量角位移,但目前的MEMS陀螺仪可以用来测量以度/秒为单位的角速度。如图1所示的传统陀螺仪的工作原理是角惯性属性。当一个旋转物体,如旋转陀螺,在它的旋转轴方向变化方面出现很强的惯性时,这种属性可以很容易观察到。 

这种现象跟我们能骑自行车的道理是一样的。图1所示装置的中间有个圆盘在高速旋转。这种旋转将使圆盘产生巨大的惯性。当装置旋转时,中间的圆盘会停留在相同的角位置。此时可以很容易测出圆环和固定旋转圆盘之间夹角的变化。陀螺仪的旋转部分也能有效地用于保持角取向不变,因此陀螺仪在罗盘中得到了很好地应用。 

MEMS陀螺仪的原理 

MEMS陀螺仪比传统陀螺仪更有用,因为它们一般测量的是角速度而不角位移。角速度测量更加有用,因为随着时间的累积能够间接测量出角位移和速度。 

有许多技术可以用来检测MEMS陀螺仪的角速度。这些技术通常都有一个共同点,即它们使用振动块而不是使用旋转块。振动块能抵制振动轴向的变化,即使与它相连的结构在旋转。因此,使用振动而不是全程旋转可以获得同样的旋转检测效果,而全程旋转在MEMS设备中更难实现。 

MEMS陀螺仪背后的物理现象就是科里奥利效应。这种现象是当一个物体在旋转的参考系中作线性方向运动时产生的(请参考图2)。假设你站在正在旋转的旋转木马上,所处位置标示为t1。如果你决定经直线向外边走,你就能体会到科里奥利效应。 

 

 (原文件名:图1. 传统机械式陀螺仪。.jpg) 


点击看大图
 (原文件名:图2. 科里奥利效应中呈现的速度和加速向量。.jpg) 



根据物理知识我们知道,旋转木马上的任何点都有一个瞬时速度Ωr,其中Ω是旋转速度,r是旋转木马上该点的半径。因此图2中每个蓝色速度向量都有一个幅度Ωr,如果你站在其中任何点上,你会拥有相同的切向速度。红色的等速向量代表了径向速度,是你走向外边的速度。当你接近外边时,你的切向速度会增加。这样就从科里奥利效应获得了一半的加速效果,其值等于Ωv,其中v代表径向速度。 

科里奥利加速的第二部分来自加速向量(标为绿色)。如果看一下t1和t2处的红色速度向量,你会注意到它们的幅度是相同的,但它们的方向不同。这种速度向量的方向变化意味着绿色向量的方向上必定存在切向加速。这种加速就是科里奥利加速的另外一半,同样等于Ωv。因此,如果将两个独立的加速向量加在一起,你就可以得到2Ωv。如果你的质量是m,这种加速将对你施加2Ωvm的力。该力会在旋转木马上产生幅度相同、方向相反的反作用力,其值等于–2Ωvm。因为这是负值,因此该力的方向与旋转方向相反。 

如果你准备走回到旋转木马的中心,那么所有数学计算都是一样的,除了红色速度向量现在指向里面,使它们呈现相反的符号。此时你的反作用力的最终等式是 –2Ω(–v)m,或2Ωvm。因此如果你向里面走,你在旋转木马上产生的反作用力幅度将保持不变,方向与旋转方向保持一致。 

为了形象地表示MEMS陀螺仪,可以将人用径向移动的微型振动块来代替,并利用在上面安装陀螺仪的任何你希望的结构来代替旋转木马,如图3所示。 



 (原文件名:图3. MEMS陀螺仪的实现。.jpg) 



微型块m将前后振动,因此产生相同频率的垂直科里奥利力。这些力的幅度等于±2Ωvm,并直接正比于整个系统的角速度Ω。这些力将导致图3所示部件的白色部分从一边推向另一边,这些位移可以被检测为电容的变化。 
此时陀螺仪所需的就是用相关电路去检测电容的振荡,并将它转换为电压,再经整流后输出直流电压。这种电路的目的是将旋转速度转换为电压。一些陀螺仪制造商正在将所有这些功能集成进单个封装中,从而实现小型、高效但价格较高的解决方案。也有些MEMS陀螺仪制造商为了降低产品价格,采用了最简的信号调理方法,因此需要使用外部电路实现信号调整和准确测量。 

MEMS陀螺仪的应用 

最便宜和被广泛使用的MEMS陀螺仪使用了尽可能少的模拟电路,数字电路基本没有。这些陀螺仪的输出阻抗相对较高,输出信号中存在较大值的直流偏置。因此减少直流偏置和提高输入电路阻抗的重担落在了系统设计师身上。 

如今,MEMS陀螺仪被广泛用于各种消费类设备,如数码相机的图像防抖、笔记本电脑的硬盘保护和数字罗盘。陀螺仪还在汽车的电子稳定控制(ESC)系统中得到了很好的应用。随着工业和消费类机器人的发展,陀螺仪将有望在这两个市场大显身手,并有助于满足组装线上提高自动化程度的要求。在机器人中,陀螺仪将有助于自动控制系统控制机器人手脚的移动和平衡。 

图像防抖信号调理电路 

在图像防抖应用中,陀螺仪有助于纠正拍照者手的抖动。当拿相机的手抖动时,图像传感器也会抖动,从而使拍到的图像模糊不清。在这种应用中要用到两个陀螺仪,以确定x和y轴的抖动幅度。信号调理电路和处理器则测量陀螺仪的输出,并送出校正信号,以动态地改变图像传感器的参考系。参考系的改变是通过物理上移动图像传感器或改变将数据反馈回图像处理器的图像传感器的一部分而实现的。 

典型要求如下: 

四极低通滤波器:fc=250Hz 

差分或单端增益:100 

ADC采样率:1ksps/通道 

ADC分辨率:10位 

满足上述要求的电路有许多,挑战来自于使电路更具性价比,并足够小到能装配进非常紧凑的数码相机中。即使你设计的电路很小很便宜,但仍需要有足够高的性能,以便不影响系统性能。除了满足上述要求外,理解设定功能也有助于使设计决策更简单化。 

信号调理电路的第一级很重要,因为一些低价陀螺仪的输出阻抗非常高。另外,在图像防抖应用中,信号的直流部分没有功能价值,缘于那些与偏置有关的问题,这一点显得很重要。 

图4所示的电路描述了在单端陀螺仪应用中的一个公共设计问题。输入电路由以下元器件组成:有一定输出阻抗(Zout)的陀螺仪、隔直电容、连接到模拟地(AGND)的电阻(用于将交流耦合的输入信号中心置于AGND),以AGND为参考的放大器。使用隔直电容而不用软件滤波器的原因是陀螺仪输出偏置电压(最高100mV)将被放大100倍,会使放大器的输出接近满幅电压。 


点击看大图
 (原文件名:图4. 单端陀螺仪的输入电路。.jpg) 






为了避免测量误差超过5%,陀螺仪和隔直电容的复合阻抗应至少小于浮动电阻的20倍。假设Zout=40kΩ,容性电抗为3.2kΩ(1?F @ 最低有效频率50Hz ),总的阻抗是40.1kΩ,那么要求电阻阻值为803kΩ(相当于806kΩ 1% )是比较合理的。 

如果上述电路只在图像防抖功能激活时才被加电(在即将照相之前),那就需要考虑RC电路的上升时间。在这种情况下,我们可以假设4T或98%是足够的上升幅度,此时电路将在3.2s后工作(见等式1),这个结果是不可接受的。 

上升时间方程式如下: 



解决方案是增加某种有源电路来稳定连接到AGND的放大器的正输入端电压。要想达到这个目的,馈入电阻底部的AGND可以用DAC代替,并在放大器的正输入端连接一个ADC。以AGND为参考的ADC可用来测量放大器输入与AGND之间的差值,如果差值是负的(放大器输入电压低于AGND),那么DAC的输出电压将会上升;如果差值是正的,DAC的输出电压就会降低。当使用处理器时,还可以实现软件控制环路,以便显著增加系统的响应时间。 

在增加ADC和DAC后,上述电路很快就变得不实用了。目前已有一些现成的器件可以用来提供实现这些电路的理想解决方案,如ADI的ADuC系列和Cypress公司的PSoC系列。采用Cypress的PSoC完成的电路实现如图5所示。 


 (原文件名:图5. 公式.jpg) 



 (原文件名:图6. 改进的启动电路。.jpg) 


既然上升时间问题解决了,我们可以接着进行低通滤波器的实现。要求是采用截止频率为250Hz的四极滤波器。四极滤波器极耗资源,因为它需要两个采用相同滤波器的相同通道。幸运的是,混合信号器件内部的delta-sigma (Δ-Σ) ADC通常都有内置的sinc2数字滤波器。在采用CY8C29466时,这些滤波器具有两极响应,截止频率(fc)等于采样频率的33%。因此将两极开关电容低通滤波器(LPF)与Δ-Σ ADC级联起来可以提供与四极滤波器相同的响应,这种实现方法如图6所示。 



点击看大图
 (原文件名:图7. 增益和滤波器实现。.jpg) 



最后一个还未满足的要求是陀螺仪信号需要放大100V/V倍,而可编程增益放大器(PGA)的最大增益只有48V/V。因此还需要增加一级放大器才能满足100V/V的要求,而2.1V/V或6.44dB的额外增益可以通过改变开关电容滤波器中的反馈电容值在低通滤波器中实现。增益配置同样如图6所示。 

最后一步是复制这个电路,使两个通道能被交替测量。大家知道,ADC sinc2数字滤波器的截止频率取决于采样率,而采样率标准是1ksps。当每个通道采样频率为1ksps时,数字滤波器的截止频率设为330Hz,而指标要求是250Hz,这又表明了什么呢?表明了在这些应用场合,双极响应足够超出250Hz到约400Hz,因此该解决方案非常适合这种应用。 

图像防抖电路的最终实现如图7所示。其中还有两部分值得提一下:在ADC前面的模拟复用器(mux)和传动控制模块。当ADC运行在单个通道上时,最高运行速度为10ksps,不过由于是复用的,因此采样率实际上要除以6。由于ADC使用两级管线式架构,因此每个通道的前两个样本没什么用,可以被丢弃。 






 (原文件名:图8. 完整的图像防抖电路。.jpg) 



在工作过程中,第一个通道先被采样三次,在第三次采样结束后,复用电路马上切换到第二个通道。同样,在第二个通道的第三次采样结束后,复用电路立即切换回第一个通道。另外,可以通过编程ADC时钟让输出数据速率为6ksps,这样每个通道的采样速率就是1ksps。 

图7中还增加了执行器控制电路。执行器控制电路可以是:1)驱动两个马达的控制信号,或2)将抖动位移报告给图像处理器的串行通信总线。如果执行装置是马达,控制信号可以是重新定位图像传感器的脉宽调制器(PWM)。串行通信方法可能使用I2C或SPI将图像传感器偏离原始参照系的位移报告给图像处理器。图像处理器再通过改变图像处理器捕获数字照片的图像传感器面积来修正参照系的变化。 

 
作者:Patrick Prendergast 
Ben Kropf 

PSoC业务部应用工程师 

Cypress Semiconductor
系统分类: 测试测量
用户分类:
标签: 无标签
来源: 转贴
发表评论 阅读全文(63) | 回复(0)
总共 , 当前 /