门关键词: 上海电容器 双延时时间继电器 反屏蔽无线隐形耳机 电视机的电路图 电路图元件 朗能开关插座 悬式绝缘子
IC库存(8958万) PDF资料(329万) IC价格 IC求购 资讯 技术资料
电子元器件搜索:
维库电子市场网是知名的电子元器件交易网站,为电子生产企业提供IC库存和技术资料查询服务。
关于MSP430上的模拟设计与ADC12/SD16/外部AD的探讨
新闻出处: 发布时间: 2007-11-01

一直以来,有很多朋友使用14X,13X,43X,44X这样内部带ADC12的片子来做12BIT的AD模数采集,还有一些用上了TI新出不久的SD16,(目前仅集成在FE42X,FW42X,F42X,F42X0上),当然,也有嫌12BIT精度太低的,用上了外部16/14/24BITADC的,本主题主要通过ZOGLAB所进行过的一些开发实例,浅要的谈谈在这些应用中
1,模拟前端设计
2,电源隔离及纹波处理,
3,低功耗的硬件设计
4,软件滤波
5,精度校正
6,可靠性分析
7,相关产品的开发经验谈
 

关于模拟前端的设计

事实上,在一个AD采集系统里,最复杂和最难的是模拟前端---AFE,因为这个设计直接影响到后面的测量/分辨精度和采用的算法,可以这么说,模拟前端设计好,可以省很多CODE的时间去做软件滤波,实际上一些软件滤波不是提高精度,而是降低了AD采集的灵敏度,这些在我们做一些低速信号或者直流信号时基本感觉不到,在市电或者其他交变信号的采集时,这些尤为明显.

    建议,各位做高精ADC采集的时候,尽可能将信号过运放处理,因为这样可以避免MSP430ADC12/SD16采集的输入阻抗误差,因为ADC12不是运放输入,SD16的运放输入要求阻抗>2M,很多应变桥可能输出阻抗只有几10K,阻抗不匹配造成最大的问题就是采样精度受温度,电压等影响大,最坏的可能性就是与真实信号误差大

    下面将就RTD温度测量和电阻应变桥测量做个简单的分析(下述电路如果要提高精度和PSRR(电源抑止比),可采用差分输入方式)

下图为使用PT100温度传感器的典型恒流--->电压输出--->AD采集电路


300)this.width=300'>screen.width-333) this.width=screen.width-333" border=0 pop="点击查看全图">
如上图所述

温度检测器为PT100,其在0摄氏度时的电阻为100欧,一些精密的RTD用3线或者4线制,其目的就是为了减少RTD引线上的电阻影响精度,这个线路电阻就是图中的RW.
      目前一些热表和温度检测设备使用PT100或者PT1000来测量,最简单的办法就是用这样的电路来构件一个模拟前端.当然,也有用RC时间参数来做DELTA-SIGMA ADC的,那种办法的时间越长精度越高,但是要求时钟基准比较稳定.(一些F41X的热表应用上常用的测温就用这个办法.)

     在上述电路中,比较关键的是基准电压和运放的选择,在这里要强调的一点,很多朋友往往认为基准电压的精度越高越好,当然,这个是无可厚非的,但是在成本要求相对较高的情况下,我们需要的是-----基准电压的温度线性要好.因为在电路里,供电电压波动的情况有,但是一般我们都给出了超过基准电压足够范围的电压,以保证基准能稳定输出.但是一个很常见的问题就是温度漂移,有可能来自设备本身---因为工作时间长了PCB要升温;也有可能来自外部---因为有些地方夏季和冬季的温度偏差有时可以到90摄氏度以上(-30C--60C),这样的条件势必对基准要求更高了

    下面我们按性价比依次列了下,TI出品的LM285,TLV431,REF30XX都是不错的选择,主要是TI的基准相对来说功耗小,温度漂移相对也小,本人用的最满意的是TI的LM285-1.2,基本上在-15~75C的大范围内,基准输出电压变化小于1MV,REF30XX的电压精度是0.2%,温度漂移50PPM,适合12位以上精度采集的要求,它的价格相对较高了.目前TI还推出了REF31XX,32XX,32系列的已经可以作到4PPM.这个基本上可以和ADI公司的高精度基准媲美了

     说完基准,我们要谈谈运放,运算放大器在模拟前端里相对来说是最重要的器件了.要根据电路特点,选择是否带零漂校准的,是否低嘈声的,是否满足带宽,是否R2R--轨对轨等等.

      在温度检测的这个电路里,目前我们可以看到的是用了一个MICROCHIP公司的MCP运放,功耗相对比较低,实际上在这个系统里,我们还可以考虑用TLV系列的产品,比如TLV2254,同样也是一个4运放,嘈声更小.在类似的电路里,我们对带宽的要求相对较少,基本都是DC信号,但是另一个概念--R2R,轨对轨,就是说,要求运放输出的电压能到其供电电压,具有这个功能的运放就适合做满幅测量,不象老运放要正负电压,还不能输出等于VCC的电压.

     关于运放的重要性和选择,我们在下一个跟贴上继续,下面主要介绍下电阻应变桥的ADC模拟前端,这部分相对要求的都是12BIT/16BIT/24BIT的精度,因此对运放的要求更高了,还要考虑零点漂移


300)this.width=300'>screen.width-333) this.width=screen.width-333" border=0 pop="点击查看全图">

一个恒流驱动的电阻应变桥

上述是一个恒压驱动下的电阻应变桥,实际上这是一个硅压电阻应变桥,是目前小体积压力测量上精度不错的一种传感器;下图是其同一系列中恒流驱动器件的典型电路.

     在这两个电路中,最主要的就是要求所有的运放都是低嘈声的.因为此类应变桥传感器输出都是在MV级的信号,测量分辨率有时要达到UV级别.因此,抑制运放的嘈声以及电源的嘈声都非常重要.此外,注意一下,在图中的A3.实际上这个电路就是用做零点漂移的调节.这里提下,什么是零点漂移,实际就和我们使用指针万用表一样,有时电池的电压变了,测量欧姆档的时候要调零,因为有些外部因数导致传感器输出有零点漂移,也就是说可能受时间影响或者电气特性发生变化后,通过电路调节其输出.

300)this.width=300'>screen.width-333) this.width=screen.width-333" border=0 pop="点击查看全图">
 

一个硅压传感器的实物

300)this.width=300'>screen.width-333) this.width=screen.width-333" border=0 pop="点击查看全图">

 

 
 

  Originally posted by hoohoo at 2005-7-10 20:49:
1、ADC12的基准使用内部基准作参考,在REF端我按照user‘s guider说得加了10uF和104的电容到GND。但是我软件选择内部2。5V作参考电压时,AD_in输入2。5V电压,采集回来的数字量不是0xfff。而是输入3。3V时才是0xfff。所以后来我索性用了AVCC作参考电压。
2、我不太明白用户手册上说得“Greater than 200 ksps maximum conversion rate” 中200 ksps的意思,这个速率怎么解释。
3、在AD的输入端,用200K电位器对VCC分压作输入,无论多次采样还是单次采样,回来的数字量都是比较接近的值。但是如果这个电阻一大,比如上了20M(当然没有20M的电位器,用电阻模拟),采集回来的数字量的差别就很大,而且连续多次采集,次次都不一样。
4、软件设计上我试图在采集以后关掉AD内核,以节省电能,但是debug发现AD的核还是开着的,即ADC12ON=1。不知斑竹在这块是怎么操作的。


\\1,有可能是没有在EREF上加电容了,这个要分别在内外部基准的I/O口上加电容滤波网络,至于采样的值可能是你把内部基准切换后没断开外部基准的硬连接.或者你把参考电压设置成VCC了

\\2,200K的速率就是SAMPLE的次数,每秒采样的次数

\\3,因为ADC输入的电流不同了,实际上ADC12不是差分输入,因此最好在前级+个运放,或者你可以根据ADC12内部电容和外部输入阻抗进行计算,得到一个更准确的采样值

\\4,纯粹的软件设置问题了,参考下TI的例子

300)this.width=300'>screen.width-333) this.width=screen.width-333" border=0 pop="点击查看全图">

这里贴一个ADC12的常见结构和输入阻抗图解


300)this.width=300'>screen.width-333) this.width=screen.width-333" border=0 pop="点击查看全图">


介绍一种pt100测量方法   BBS 网友 DMZ_73 讨论

如图:Rw为pt100,R0为100欧姆的精密线绕电阻,两了电阻串联由恒流源供电,有如下等式:Vw/Rw=V0/R0,即Rw=(Vw/V0)*R0,从这个等式可以看出,即pt100的阻值为俩个电压值之比,再乘以100,参与pt100阻值计算的里面不含恒流源,所以这个方法可以克服恒流源的波动、温飘,随时间的飘移,此电路应用于国家标准2型气象站多年,使用下来非常稳定,最后提一句,要听fft的话, sd12/16输入前的运放不可省去

电流多少还真是没有量过,就参照pt100手册吧,精度的话没有线性修正,然后任意pt100互换,0。3度以内吧(-10-----50),其实精度基本上取决于那个标准电阻



300)this.width=300'>screen.width-333) this.width=screen.width-333" border=0 pop="点击查看全图">
pt100电流<5mA        BBS 网友  rsluo  讨论

一般通过Pt100的电流不能超过5mA
我也用过类似的方法,不过我是把pt100和标准电阻和二极管三者串在一起接在电源上,进行测量的。

//-----------------------------------------------------------------------------------------------

讲讲简单的电源隔离和信号地/电源地的处理

一般在我们的AD系统里面,都有非常明确的模拟电源/模拟地;数字电源数字地,这些的处理相对比较重要.通常的系统中==

1,我们常用10~20欧姆电阻来做个模拟电源和数字电源的隔离,可以从下图中看出,当然,使用分组的隔离电源是最好的选择,但是成本相对较高

2,处理模拟地数字地时,最终使用1点接连的办法,这个连接点要选在PCB上的电荷平衡点,以防止出现电压差,这个需要PCB和模拟设计良好的基础及经验

3,使用PSRR高的LDO,尽量避免使用DCDC和纹波超过300UV的电源温压器件,当然,我们可以通过差分输入来减少来自电源的干扰

4,良好的屏蔽罩同样可以减少外部空间电磁辐射对AD系统的影响,诸如雷达,手机辐射,紫外线等

300)this.width=300'>screen.width-333) this.width=screen.width-333" border=0 pop="点击查看全图">
补充几点

1,首先我们要处理系统的晶体干扰问题,晶体在一个PCB上的布局比较重要,当然,选型也很重要,理论上一个系统中的外部晶体频率越低系统越稳定,越不容易受到干扰,但是在内部做倍频基本上是芯片级的应用层次了,补台需要我们操心.

    晶体的外壳如果是金属的,通常要接到数字地上.晶体尽量远离ADC电路,靠近MCU

2,多个电源地之间,可以考虑用电感来连接,计算一个比较适合的电感和BYPASS电容,可以消除一些附加在电源地上的干扰信号,这些可以用著名的PSPICE软件来模拟.

3,PCB时,电源的线宽应当根据电流大小布置,通常要为普通信号线的数倍,在电池供电的微功耗设备里,建议最小的电源线宽不小于15MIL(这个仅仅是我们的意见),当然,有条件的可以用软件来模拟下电流的实际大小和需要的线宽,线厚度等,这个在POWER PCB上可以实际仿真得到相关参数

//---------------------------------------------------------------------

关于低功耗的软硬件设计

1,对于消耗电流大的功能模块,不管是内部的还是外部的,都做关断操作(包含软件不使能).
   内部模块包括SVS,ADC, REF,外部的诸如传感器激励电路,光电偶合电路,外部运放或AD采集IC,这些在不使用的情况下不供给电源,将是系统的功耗大大降低

2,推荐在系统空闲的时候可以进入LPM3模式

3,对于不用的I/O处理方法是悬空的IO口都设为输入,拉高或拉低都可以。用到的时候把该作为输出的管脚改成输出

4,作为主要的电源供应器件,电源管理IC(含LDO)应当选用可关断或者静态电流小的型号
 

//---------------------------------------------------------------------

软件滤波

11种软件滤波方法(这个是论坛里的经典老贴了)

1、限幅滤波法(又称程序判断滤波法)
    A、方法:
        根据经验判断,确定两次采样允许的最大偏差值(设为A)
        每次检测到新值时判断:
        如果本次值与上次值之差<=A,则本次值有效
        如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值
    B、优点:
        能有效克服因偶然因素引起的脉冲干扰
    C、缺点
        无法抑制那种周期性的干扰
        平滑度差
   
2、中位值滤波法
    A、方法:
        连续采样N次(N取奇数)
        把N次采样值按大小排列
        取中间值为本次有效值
    B、优点:
        能有效克服因偶然因素引起的波动干扰
        对温度、液位的变化缓慢的被测参数有良好的滤波效果
    C、缺点:
        对流量、速度等快速变化的参数不宜

3、算术平均滤波法
    A、方法:
        连续取N个采样值进行算术平均运算
        N值较大时:信号平滑度较高,但灵敏度较低
        N值较小时:信号平滑度较低,但灵敏度较高
        N值的选取:一般流量,N=12;压力:N=4
    B、优点:
        适用于对一般具有随机干扰的信号进行滤波
        这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动
    C、缺点:
        对于测量速度较慢或要求数据计算速度较快的实时控制不适用
        比较浪费RAM
        
4、递推平均滤波法(又称滑动平均滤波法)
    A、方法:
        把连续取N个采样值看成一个队列
        队列的长度固定为N
        每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则)
        把队列中的N个数据进行算术平均运算,就可获得新的滤波结果
        N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4
    B、优点:
        对周期性干扰有良好的抑制作用,平滑度高
        适用于高频振荡的系统   
    C、缺点:
        灵敏度低
        对偶然出现的脉冲性干扰的抑制作用较差
        不易消除由于脉冲干扰所引起的采样值偏差
        不适用于脉冲干扰比较严重的场合
        比较浪费RAM
        
5、中位值平均滤波法(又称防脉冲干扰平均滤波法)
    A、方法:
        相当于“中位值滤波法”+“算术平均滤波法”
        连续采样N个数据,去掉一个最大值和一个最小值
        然后计算N-2个数据的算术平均值
        N值的选取:3~14
    B、优点:
        融合了两种滤波法的优点
        对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差
    C、缺点:
        测量速度较慢,和算术平均滤波法一样
        比较浪费RAM


6、限幅平均滤波法
    A、方法:
        相当于“限幅滤波法”+“递推平均滤波法”
        每次采样到的新数据先进行限幅处理,
        再送入队列进行递推平均滤波处理
    B、优点:
        融合了两种滤波法的优点
        对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差
    C、缺点:
        比较浪费RAM

7、一阶滞后滤波法
    A、方法:
        取a=0~1
        本次滤波结果=(1-a)*本次采样值+a*上次滤波结果
    B、优点:
        对周期性干扰具有良好的抑制作用
        适用于波动频率较高的场合
    C、缺点:
        相位滞后,灵敏度低
        滞后程度取决于a值大小
        不能消除滤波频率高于采样频率的1/2的干扰信号
        
8、加权递推平均滤波法
    A、方法:
        是对递推平均滤波法的改进,即不同时刻的数据加以不同的权
        通常是,越接近现时刻的数据,权取得越大。
        给予新采样值的权系数越大,则灵敏度越高,但信号平滑度越低
    B、优点:
        适用于有较大纯滞后时间常数的对象
        和采样周期较短的系统
    C、缺点:
        对于纯滞后时间常数较小,采样周期较长,变化缓慢的信号
        不能迅速反应系统当前所受干扰的严重程度,滤波效果差

9、消抖滤波法
    A、方法:
        设置一个滤波计数器
        将每次采样值与当前有效值比较:
        如果采样值=当前有效值,则计数器清零
        如果采样值<>当前有效值,则计数器+1,并判断计数器是否>=上限N(溢出)
            如果计数器溢出,则将本次值替换当前有效值,并清计数器
    B、优点:
        对于变化缓慢的被测参数有较好的滤波效果,
        可避免在临界值附近控制器的反复开/关跳动或显示器上数值抖动
    C、缺点:
        对于快速变化的参数不宜
        如果在计数器溢出的那一次采样到的值恰好是干扰值,则会将干扰值当作有效值导入系统

10、限幅消抖滤波法
    A、方法:
        相当于“限幅滤波法”+“消抖滤波法”
        先限幅,后消抖
    B、优点:
        继承了“限幅”和“消抖”的优点
        改进了“消抖滤波法”中的某些缺陷,避免将干扰值导入系统
    C、缺点:
        对于快速变化的参数不宜


第11种方法:IIR 数字滤波器

A. 方法:
   确定信号带宽, 滤之。
   Y(n) = a1*Y(n-1) + a2*Y(n-2) + ... + ak*Y(n-k) + b0*X(n) + b1*X(n-1) + b2*X(n-2) + ... + bk*X(n-k)

B. 优点:高通,低通,带通,带阻任意。设计简单(用matlab)
C. 缺点:运算量大。
 

//---------------------------------------------------------------------
软件滤波的C程序样例

10种软件滤波方法的示例程序

假定从8位AD中读取数据(如果是更高位的AD可定义数据类型为int),子程序为get_ad();

1、限副滤波
/*  A值可根据实际情况调整
    value为有效值,new_value为当前采样值  
    滤波程序返回有效的实际值  */
#define A 10

char value;

char filter()
{
   char  new_value;
   new_value = get_ad();
   if ( ( new_value - value > A ) || ( value - new_value > A )
      return value;
   return new_value;
         
}

2、中位值滤波法
/*  N值可根据实际情况调整
    排序采用冒泡法*/
#define N  11

char filter()
{
   char value_buf[N];
   char count,i,j,temp;
   for ( count=0;count<N;count++)
   {
      value_buf[count] = get_ad();
      delay();
   }
   for (j=0;j<N-1;j++)
   {
      for (i=0;i<N-j;i++)
      {
         if ( value_buf>value_buf[i+1] )
         {
            temp = value_buf;
            value_buf = value_buf[i+1];
             value_buf[i+1] = temp;
         }
      }
   }
   return value_buf[(N-1)/2];
}     

3、算术平均滤波法
/*
*/

#define N 12

char filter()
{
   int  sum = 0;
   for ( count=0;count<N;count++)
   {
      sum + = get_ad();
      delay();
   }
   return (char)(sum/N);
}

4、递推平均滤波法(又称滑动平均滤波法)
/*
*/
#define N 12

char value_buf[N];
char i=0;

char filter()
{
   char count;
   int  sum=0;
   value_buf[i++] = get_ad();
   if ( i == N )   i = 0;
   for ( count=0;count<N,count++)
      sum = value_buf[count];
   return (char)(sum/N);
}

5、中位值平均滤波法(又称防脉冲干扰平均滤波法)
/*
*/
#define N 12

char filter()
{
   char count,i,j;
   char value_buf[N];
   int  sum=0;
   for  (count=0;count<N;count++)
   {
      value_buf[count] = get_ad();
      delay();
   }
   for (j=0;j<N-1;j++)
   {
      for (i=0;i<N-j;i++)
      {
         if ( value_buf>value_buf[i+1] )
         {
            temp = value_buf;
            value_buf = value_buf[i+1];
             value_buf[i+1] = temp;
         }
      }
   }
   for(count=1;count<N-1;count++)
      sum += value[count];
   return (char)(sum/(N-2));
}

6、限幅平均滤波法
/*
*/  
略 参考子程序1、3

7、一阶滞后滤波法
/* 为加快程序处理速度假定基数为100,a=0~100 */

#define a 50

char value;

char filter()
{
   char  new_value;
   new_value = get_ad();
   return (100-a)*value + a*new_value;
}

8、加权递推平均滤波法
/* coe数组为加权系数表,存在程序存储区。*/

#define N 12

char code coe[N] = {1,2,3,4,5,6,7,8,9,10,11,12};
char code sum_coe = 1+2+3+4+5+6+7+8+9+10+11+12;

char filter()
{
   char count;
   char value_buf[N];
   int  sum=0;
   for (count=0,count<N;count++)
   {
      value_buf[count] = get_ad();
      delay();
   }
   for (count=0,count<N;count++)
      sum += value_buf[count]*coe[count];
   return (char)(sum/sum_coe);
}

9、消抖滤波法

#define N 12

char filter()
{
   char count=0;
   char new_value;
   new_value = get_ad();
   while (value !=new_value);
   {
      count++;
      if (count>=N)   return new_value;
       delay();
      new_value = get_ad();
   }
   return value;   
}

10、限幅消抖滤波法
/*
*/
略 参考子程序1、9

11、IIR滤波例子

int  BandpassFilter4(int InputAD4)
{
    int  ReturnValue;
    int  ii;
    RESLO=0;
    RESHI=0;
    MACS=*PdelIn;
    OP2=1068; //FilterCoeff4[4];
    MACS=*(PdelIn+1);
    OP2=8;    //FilterCoeff4[3];
    MACS=*(PdelIn+2);
    OP2=-2001;//FilterCoeff4[2];
    MACS=*(PdelIn+3);
    OP2=8;    //FilterCoeff4[1];
    MACS=InputAD4;
    OP2=1068; //FilterCoeff4[0];
    MACS=*PdelOu;
    OP2=-7190;//FilterCoeff4[8];
    MACS=*(PdelOu+1);
    OP2=-1973; //FilterCoeff4[7];
    MACS=*(PdelOu+2);
    OP2=-19578;//FilterCoeff4[6];
    MACS=*(PdelOu+3);
    OP2=-3047; //FilterCoeff4[5];
    *p=RESLO;
    *(p+1)=RESHI;
    mytestmul<<=2;
    ReturnValue=*(p+1);
    for  (ii=0;ii<3;ii++)
    {
     DelayInput[ii]=DelayInput[ii+1];
     DelayOutput[ii]=DelayOutput[ii+1];
     }
     DelayInput[3]=InputAD4;
     DelayOutput[3]=ReturnValue;
     
   //  if (ReturnValue<0)
   //  {
   //  ReturnValue=-ReturnValue;
   //  }
    return ReturnValue;  
}
 

//--------------------------------------------------------------------------------------------------------------------

关于精度校准

在我们做的一些仪表中,不可避免的要用到精度校准.如,

* 热量表的温度系数标定;
* 流量表的正负误差值标定;
* 各种传感器的温度补偿系数标定;
* RF系统中调谐参数的标定

因为上述的这些参数都不是固定的,而是根据PCB以及外部传感器,设备连接关系等来做进一步的精度调节的,这样就有必要在产品成型后做一个参数标定.

那么这些标定值是如何设置进我们的MSP中(因为F系列的MSP430芯片内部是FLASH的,可重复编程,这样就不需要像普通51那样外扩EEPROM了)以及存放的区域都成为我们此次探讨的重点.

1,存放这些标定系数的区域

     在MSP430中,我们可以将这些标定系数存放在INFOMATION FLASH中,这个区域分128*2总计256字节的信息存储空间,而且也是统一编址的.擦写可以分两块小区域---128字节一个区域来操作,而不用整个扇区的擦除后再写入.

     另一个办法就是针对标定数据量大的应用:直接在MSP430程序空间中开一块512字节的常规FLASH扇区用做数据标定,这个标定前一定要对整个扇区的512字节做擦除操作.

     还有一类非常特殊的应用,就是把标定参数放在RAM中,这些在下一次上电后就不存在了,这些标定数据是由程序根据某些外部输入来定义的暂时值.

    上述的三种标定的存储方式比较常规

2,如何进行标定

    A  首先想到的是用FET进行每块产品的代码重入,呵呵,这个最简单,但是要每次编译原代码,安全系数受误操作影响大,还有就是不容易控制代码扩散.

    B  通过BSL来进行标定,这个相对来说安全点,因为给的目标文件已经是HEX码,原代码得到安全的保护(不过解密仍然能通过HEX生成ASM)不过比较烦琐的操作可以分为两种,一种是直接修改HEX码里某处数据,以达到标定目的,当然,这个操作可以通过PC软件事先计算好,定位好.另一种方式就是将测试程序写到MCU中,生成一组标定数据到INFO FLASH中,然后再次烧进去成熟的程序,这样通过测试程序和正常程序分离标定的方法在计量仪表中使用比较方便.

   C  通过串口进行标定.这个操作需要MCU程序支持,首先把存放标定数据的空间定义好,然后直接从串口接收标定命令/数据,然后写入到标定区域,这样的做法实际上最灵活最安全,因为所有的代码都是不可见的,可以有效防止攻击和代码扩散.但是,有一个缺点,就是要损耗一个UART作为标定用,也就是说,在那些没有UART的MSP430中,使用软件模拟等都增加了这种方式标定的执行难度

    D  特殊场合特殊的标定:如果不仅仅要标定,而且还有可能修改程序中已经过时的算法,而且这些设备有可能无法取回或者为了节约差旅成本不人工取回.这样就要考虑远程升级-----通过GPRS/CDMA/ISM RF等等

    呵呵,上述是我们ZOLAB关于参数标定的一些制造经验,可能还有一些更好的办法,但是由于行业限制,我们也无法去一一验证,欢迎各位多提建议

//---------------------------------------------------------------------------------------------------------------------------------------

可靠性分析 有利于 减少产品返修率 以及 提高产品的稳定性

常规的可靠性分析分为

1, 上电老化  

     简单的说,就是让你的产品连续上电48小时,呵呵,这个连续工作的要求对绝大多数的电子产品都是不高的要求了,这个最简单的老化办法将有效检验出大约0.1%~0.3%的不合格率,基本上算PASS了,这些也只有在批量生产的时候才会遇到,当然,实验室产品是调试出来的,应该另当别论,要求更高点.

2, 上电高低温老化

     当你的产品需要在南方城市或者北方城市运行时,或者在一个温差很大的环境下,都应该充分考虑到温差对产品稳定性的影响.

     很多精密的AD采集系统需要高稳定性的AFE(包括运算放大器,AD器件,基准)这些要求16BIT以上的ADC采集需要使用20PPM以下的器件,才能确保足够的精度.

     此外,受温度影响比较严重的就是MCU的晶体,通常在-40C以下,晶体正常起振的几率大大降低,除非使用宽温晶振或者有源晶振,而且在需要高精度的晶体,比如做为激光测距这样的应用场合,一定需要一个内部带恒温槽,高稳定性的有源晶振才能正常工作.这样的例子就可以在飞机激光测距吊仓上得到验证(高空温度有时在 -65C以下);另一方面,在机动车或者密闭的仓内,温度有时高达+65C,诸如此类特殊的场合,都应该充分考虑系统中晶振的稳定性

     因此,有条件的公司,厂家可能会购买高低温老化设备来做产品的这些实验

3, 上电高湿度老化

      这个需要测试在湿度70%~95%环境中,上电是否能正常工作,一般多雾的热带雨林,海上航行中,湿度是电子产品最大的杀手.一个走线密集但又没做防潮防腐处理的PCB,很有可能失灵或者短路烧毁.同样的事件也容易发生在化工,农业人工环境下,因此,这类场合使用的电子产品要充分考虑隔绝空气,防潮(湿度>70%即为潮湿气候)

4, 上电电磁辐射检验 EMC,EMI

      比如像用MSP430做的HOT---心电感应记录仪,在工作的同时也要考虑最环境和周围的人和设备造成尽可能小的影响,此外还有电能表,手持PDA等等,这些就需要到计量部门做专业的检测,不仅是产品对外界的干扰.而且还要检测外界电磁辐射对产品的干扰.呵呵,就是费用比较高

    PCB设计的差别可能造成同一种ADC 集成电路,一个受到类似手机900MHZ频率电磁辐射时,采集到的信号幅度变化极大.此外,来自电源不纯净的辐射和高次协波也将导致系统异常或者复位

5, 上电静电打击实验 ESD

    4000V的人体模型和15000V的高压瞬间打击,这类电子产品的设计难度更高

6,  如果是做军品或者便携工业设备,300KM国家3级公路汽车运输实验

    这么颠簸后,产品上没松动,脱焊,器件参数不变化,功能正常,呵呵,就算过关了

7, 如果是做汽车或者高速交通设备的,还要做做抗重力/加速度实验

    汽车胎压检测中的IC,基本上就要抵抗到数个G的加速度,很难说一些工业级的IC要"暴",因此在做此类设计时,器件特性一定要把好关

    上面非常浅显的介绍了几种常见的可靠性分析办法,其实要是详细写的话,基本上每个措施都可以写到5000字以上了,哈哈,这些更详细的资料,各位坛友还是找找专业的书籍和富有经验的工程师交流更安全


关闭】 【打印
 
相关专题
 
友情链接:
© 2007 电子元件网 网站地图