TI MSC1210的比例测量法的应用<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
一、前言
随着科技的飞速发展单片机家族的队伍日益扩大,其明显的发展趋势是集成度更高、功耗更小、功能增强、体积变小、存储容量增大。TI MSC1210是TI公司新推出的单片机家族的又一优秀成员。MSC1210它集成了一个增强型8051内核,比标准8051内核执行速度快3倍且完全兼容;有8路选择器24位低功耗Δ-∑ 型A/D转换器;21个中断源;掉电方式电流小于1μA;片内SRAM也多达1.2K字节;片内集成32K字节FLASH,而且FLASH可定义为程序分区与数据存储分区,给设计带来非常大的灵活性;片内的外设包括一个增加的32位累加器(Acc),带有FIFO的SPI串行口,双UART,多功能数字I/O口、看门狗定时器(WDT)、低电压检测电路、片内上电复位、16位脉冲宽度调制器(PWM)、断点、过载复位以及三个定时/计数器;器件内具有独立的模拟和数字电源,可提供2.7~5.5V电源,在+3V工作时,典型功耗值低于4mW;采用TQFP64小型封装。该器件可直接接收传感器的微小差模信号或单端信号,由于使用sinc3滤波器,并且采用可编程采样率,因此ADC具有24位分辨率及24位无遗失码的优良性能。ADC也有可选滤波器以进行高分辨率单周期转换。图一是MSC1210的内部结构框图。
在有关文献中已经说明传统的电阻性传感器的测量方法存在局限性,而利用R/FC方法虽然克服了传统方法的弊病,但是在由施密特触发器组成的振荡电路需要通过查手册来获得T-R的比例系数,在由运算放大器组成的振荡电路中输出电压受电源影响比较明显。本课题组在做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
|
调制器 |
8位PGA 偏置 |
定时/ 计数器 |
数字滤波器 |
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 |
图一 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 |
从该实验数据中可以看出测量值的波动仅仅发生在后两位,以最大的波动
XXXX00~XXXXFFH来计算,参考电阻对应的十六进制值为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的带24位A/D转换的51内核混合器件MSC1210的确具有很高的性能、很高的集成度、很大的灵活性。本文以测量电阻值为例介绍MSC1210比例测量法的具体应用,该电路有结构简单,构思新颖,运用简便;并通过对具体实验数据的分析可以看出,该方法具有测量精度高、线性和稳定性好等优点。MSC1210将会在很多领域中得到广泛应用。
文章评论(0条评论)
登录后参与讨论