原创 TI MSC1210的比例测量法的应用

2009-3-21 08:37 2451 5 5 分类: MCU/ 嵌入式

TI MSC1210的比例测量法的应用<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


 


一、前言


随着科技的飞速发展单片机家族的队伍日益扩大,其明显的发展趋势是集成度更高、功耗更小、功能增强、体积变小、存储容量增大。TI MSC1210TI公司新推出的单片机家族的又一优秀成员。MSC1210它集成了一个增强型8051内核,比标准8051内核执行速度快3倍且完全兼容;有8路选择器24位低功耗Δ-∑ A/D转换器;21个中断源;掉电方式电流小于1μA;片内SRAM也多达1.2K字节;片内集成32K字节FLASH,而且FLASH可定义为程序分区与数据存储分区,给设计带来非常大的灵活性;片内的外设包括一个增加的32位累加器(Acc),带有FIFOSPI串行口,双UART,多功能数字I/O口、看门狗定时器(WDT)、低电压检测电路、片内上电复位、16位脉冲宽度调制器(PWM)、断点、过载复位以及三个定时/计数器器件内具有独立的模拟和数字电源,可提供2.75.5V电源,在+3V工作时,典型功耗值低于4mW采用TQFP64小型封装。该器件可直接接收传感器的微小差模信号或单端信号,由于使用sinc3滤波器,并且采用可编程采样率,因此ADC具有24位分辨率及24位无遗失码的优良性能。ADC也有可选滤波器以进行高分辨率单周期转换。图一是MSC1210的内部结构框图。


在有关文献中已经说明传统的电阻性传感器的测量方法存在局限性,而利用R/FC方法虽然克服了传统方法的弊病,但是在施密特触发器组成的振荡电路需要通过查手册来获得TR的比例系数,在由运算放大器组成的振荡电路中输出电压受电源影响比较明显。本课题组在做TI MSC1210芯片的开发工作时发现利用TI MSC1210的比例测量法测量电阻性传感器有着难得的优越品质。


<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />



T2


SPI/EXT


UART2




  ADDR


DATA




UART1


EXT


T0


T1


RW




ADDR




第二功能




AINCOM




 




 


 


输入多工器




 




时钟发生器




缓冲器




AGND




AVDD




AVDD




AGND




VREF




 




PGA




LVD


 


 


 


 


 


 


 


 




POR


 


 


 


 


 


 


 




BOR


 


 


 


 


 


 


 


 




调制器




8PGA


偏置




定时/


计数器




数字滤波器




ACC




8051




闪存




1.2K


SRAM




SFR




看门狗




P0




P1




P2




P3




SPI


FIFO


 


 


 


 


 


 


 


 


 


 







8




8




8




REF OUT




REF IN




REF IN




DVDD




DGND




PSEN




ALE




EA




RST




XIN




XOUT




AIN0




AIN1




AIN2




AIN3




AIN4




AIN5




AIN6




AIN7

<?xml:namespace prefix = w ns = "urn:schemas-microsoft-com:office:word" />

图一 MSC1210的内部结构示意图


 


二、比例测量法测量原理


       MSC1210测量电阻性传感器的原理图如图二所示。



图二 测量电阻性传感器的原理图





                              


                          


由推导公式可以在理论上得到以下结论:(1)该电阻性传感器的测量方法能够保证测量值和真实值之间的良好线性关系;(2)与电流的大小无关,没有其他的干扰因素存在;(3)由于该芯片具有24位的模/数转换精度决定了该测量具有很高的精度和灵敏度,并且在理论上该方法的测量范围是0~Rref,测量范围是很宽的。


 


三、测量结果分析


1、  精度及线性关系分析


表一列出的是随机测量的7组电阻值及误差,图三是以真实值为横坐标,测量值为纵坐标绘制的曲线。从表一中可以看出误差小于1%,符合一般情况的测量精度要求;从图三中可以看出被测电阻与真实值之间有很好的线性关系,并且比例系数为1


 


表一 精度分析




测量值(Ω)


8965


7660


6391


4979


2974


1806


762


真实值(Ω)


9050


7720


6430


5010


2960


1801


758


误差(%)


0.939


0.777


0.607


0.619


0.473


0.278


0.528


 



图三 线性分析曲线


 


2、  稳定性分析


在实验的过程中发现ADC采到的数据并不稳定在某一个值上,而是有所波动。表二给出了电阻的真实值为1598Ω的一组测量数据。


 


表二 稳定性分析结果




 


测量值


转换阻值(Ω)


真实阻值(Ω)


参考电阻值(Ω)


误差(%)


1


<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />000A6B50


1611.719


1598


19800


0.858


2


000A6B53


1611.726


1598


19800


0.859


3


000A6B48


1611.7


1598


19800


0.857


4


000A6B53


1611.726


1598


19800


0.859


5


000A6B5A


1611.742


1598


19800


0.860


6


000A6B3D


1611.674


1598


19800


0.856


7


000A6B5A


1611.742


1598


19800


0.860


8


000A6B46


1611.695


1598


19800


0.857


9


000A6B4C


1611.709


1598


19800


0.858


10


000A6B59


1611.74


1598


19800


0.860


11


000A6B5A


1611.742


1598


19800


0.860


12


000A6B5D


1611.749


1598


19800


0.860


 


从该实验数据中可以看出测量值的波动仅仅发生在后两位,以最大的波动


XXXX00XXXXFFH来计算,参考电阻对应的十六进制值为7FFFFFH,这样在理论上可以计算随机测量误差最大为0.030Rref,而实际上我们所得测量值的随机误差远远没有那么大。另外测量误差还包括由系统带来的系统误差,而这部分是可以校正的。


       在实验过程中我们还发现被测电阻阻值越接近参考电阻阻值,波动就越大。经分析原因是被测电阻阻值相对越大,参考电压就越小这样就越小,即系统就灵敏。所以在选择参考电阻的时候还要根据测量的实际情况而定。


 


四、程序清单


#include <REG1210.H>


#include <stdio.h>


#include <stdlib.h>


 


extern void autobaud(void);


extern void tx_hex(char);


extern void putcr(void);


extern void tx_byte(char);


 


void putstr(char code * msg)


{


       while (*msg != 0) {


              tx_byte((unsigned char) *msg);


              if( *msg=='\n') tx_byte('\r');


              msg++;


              }


}


 


void initMSC1210(void)


{


       ACLK = 1;          // ACLK = 1.8432MHz/(1+1)= 0.9216MHz


                                   // Modclk = ACLK/64 = 14400 Hz


       ADCON0 = 0x08;     // Vref OFF, Vref Hi, Buff on, BOD off, PGA="1"


       ADCON2 = 0xA0;    // Decimation = 1440


       ADCON3 = 0x05;     // Data Rate = Modclk/Decimation = 14400/1440 = 10 Hz PDCON &= 0x0f7; //turn on ADC


       ADMUX = 0x01;      //AIN0 + on, AIN1 - on


       ADCON1 = 0x01;     // Bipolar, Auto, SelfCal


       while (!(AIE & 0x20)) {} /* Wait for calibration to take place */


}


 


void main(void)


{


       unsigned char i,temp;


 


       CKCON &= 0xf8; // MOVX cycle stretch


       autobaud();  /* autobaud routine in ROM */


       putstr("MSC1210 ADC Ratiometric Measurement \n");


       initMSC1210();


       temp = ADRESL;      // Dummy read to clear ADCIRQ


 


       i=0;


       while(1) // Only print every 10th value (Every Second)


       {


              while(! (AIE & 0x20));


              if(i++ == 10)


              {


                     tx_hex(ADRESH);


                     tx_hex(ADRESM);


                     tx_hex(ADRESL);


                     putcr();


                     i = 0;


              }


              else


{


       temp = ADRESL;  // Dummy read to clear ADCIRQ


}


       } //while


} //main


 


五、结束语


通过实际运用,可以发现TI的带24A/D转换的51内核混合器件MSC1210的确具有很高的性能、很高的集成度、很大的灵活性。本文以测量电阻值为例介绍MSC1210比例测量法的具体应用,该电路有结构简单,构思新颖,运用简便;并通过对具体实验数据的分析可以看出,该方法具有测量精度高、线性和稳定性好等优点。MSC1210将会在很多领域中得到广泛应用。


 


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
5
关闭 站长推荐上一条 /4 下一条