嵌入式AD实验.docx
- 文档编号:15021792
- 上传时间:2023-06-29
- 格式:DOCX
- 页数:14
- 大小:82.34KB
嵌入式AD实验.docx
《嵌入式AD实验.docx》由会员分享,可在线阅读,更多相关《嵌入式AD实验.docx(14页珍藏版)》请在冰点文库上搜索。
嵌入式AD实验
5.8A/D实验
5.8.1实验目的
1.了解模数转换的基本原理;
2.掌握模数转换的编程方法。
5.8.2实验内容
1.编写程序对模拟输入进行采集和转换,并将结果显示在LED上;
2.通过可变电阻改变模拟量输入,观查显示结果;
5.8.3预备知识
1.了解A/D采样的原理;
2.了解采样频率的设置;
5.8.4实验设备
1.硬件:
JX44B0教学实验箱、PC机;
2.软件:
PC机操作系统Windows98(2000、XP)+ADTIDE集成开发环境。
5.8.5基础知识
1.A/D转换的基本原理
1)采样和量化
作用:
我们经常遇到的物理参数,如电流、电压、温度、压力、速度……电量或非电量都是模拟量。
模拟量的大小是连续分布的,且经常也是时间上的连续函数。
因此要将模拟量转换成数字信号需经采样——>量化——>编码三个基本过程(数字化过程)。
图5-14A/D采样示意图
采样:
按采样定理对模拟信号进行等时间间隔采样,将得到的一系列时域上的样值去代替u=f(t),即用u0、u1、…un代替u=f(t)。
这些样值在时间上是离散的值,但在幅度上仍然是连续模拟量。
量化:
在幅值上再用离散值来表示。
方法是用一个量化因子Q去度量;u0、u1、…,得到取整后的数字量。
u0=2.4Q
2Q010
u1=4.0Q
4Q100
u2=5.2Q
5Q101
u3=5.8Q
5Q101
编码:
将整量化后的数字量进行编码,以便读入和识别;
编码仅是对数字量的一种处理方法。
例如:
Q=0.5V/格,设用三位(二进编码)
u0=2.4Q
2Q
(010)
2)分类
按被转换的模拟量类型可分为时间/数字、电压/数字、机械变量/数字等。
应用最多的是电压/数字转换器。
电压/数字转换器又可分为多种类型:
按转换方式可分为:
直接转换、间接转换。
按输出方式分可分为:
并行、串行、串并行。
按转换原理可分为:
计数式、比较式。
按转换速度可分为:
低速、中速、高速。
按转换精度和分辨率可分为:
3位、4位、8位、10位、12位、14位、16位等等。
3)工作原理
类似于用天平称物体重量,设有一待测物为4.42g;满度测量量程为
,砝码种类有四种:
、
、
、
。
测量方法:
先大砝码,后小砝码,依次比较(累计比较),要的记“1”,不要的记“0”。
实测物重G为:
误差:
误差<最小砝码(最小分辨砝码)
以上过程:
①通过4次比较后,得出结果;②误差<最小砝码值;
4)逐次逼近式ADC工作原理
原理结构框图:
图5-15逐次逼近式A/D转换器原理框图
图5-16逐次逼近式A/D转换器原理框图
工作过程:
*环形计数器;
*去码/留码控制逻辑;
*逐次比较过程(完成一个A/D转换)。
设
,
(n=8)
表5-24逐次逼近式ADC去码/留码控制逻辑
次数
计数器
寄存器
与
的关系
去/留码
1
10000000
10000000
留
2
01000000
11000000
留
3
00100000
11000000
去
4
00010000
11000000
去
5
00001000
11001000
留
6
00000100
11001100
留
7
00000010
11001110
留
8
00000001
11001111
留
2.S3C44B0X的A/D转换器
S3C44B0X集成了8路10位A/D转换器,其分辨率为10比特,该转换器可以通过软件设置为Sleep摸式,可以节电减少功率损失,最大转换速率为100K,非线性度为正负1位。
1)A/D转换有关寄存器
表5-25A/D转换控制寄存器
寄存器名称
地址
读写状态
描述
复位值
ADCCON
0x01D40000
R/W
A/D转换器控制寄存器
0x20
ADCCON
位
描述
初始状态
FLAG
[6]
A/D转换器状态标志(只读)
0
SLEEP
[5]
系统电源开关
0:
正常模式1:
休眠模式
1
INPUTSELECT
[4:
2]
时钟源选择
000:
AIN0001:
AIN1010:
AIN2011:
AIN3
100:
AIN4101:
AIN5110:
AIN6111:
AIN7
00
READSTART
[1]
A/D转换读启动功能禁止/使能
0:
禁止该功能1:
使能该功能
00
ENABLESTART
[0]
A/D转换使能启动功能禁止/使能,当READSTART使能时无效
0:
无操作1:
A/D转换开始并且该位在转换开始后清除
0
表5-26A/D转换预分频寄存器
寄存器名称
地址
读写状态
描述
复位值
ADCPSR
0x01D40004
R/W
A/D转换器预分频寄存器
0x0
ADCPSR
位
描述
初始状态
PRESCALER
[7:
0]
预分频值(0-255)
Divisionfactor=2(prescaler_value+1)
ADC转换时钟=2*(prescaler_value_1)*16
0
表5-27A/D转换数据寄存器
寄存器名称
地址
读写状态
描述
复位值
ADCDAT
0x01D40008
R
A/D转换器数据寄存器
-
ADCDAT
位
描述
初始状态
ADCDAT
[9:
0]
A/D转换器输出数据值
-
5.实验参考代码及说明
JX44B0实验箱中通过AIN2和AIN3可调电阻改变通道2和通道3的输入信号,本实验就是采集通道2和通道3的信号,并通过可调电阻,改变其输入模拟信号,以观察A/D采样效果。
/*包含文件*/
#include"44b.h"
/*defines*/
#defineMAX_VALUE0x3ff
#defineMIN_VALUE0x0
typedef(*ISR_ROUTINE_ENTRY)(void);
voidTest_Adc(void);
chartrans_input(intvalue);
voidinit_interrupt_handler(unsignedintirq_handler);
voidinstall_isr_handler(intirq_no,void*irq_routine);
voidtimer0_isr(void);
voidIsrIRQ()__attribute__((interrupt("IRQ")));
chardisplay_buffer[6];
intrefresh_index=0;
unsignedcharseg7table[16]=
{
/*01234567*/
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
/*89ABCDEF*/
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,
};
/********************************************************************
//Functionname:
Main
//Description:
AD采样主函数
//Returntype:
void
//Argument:
void
*********************************************************************/
voidMain(void)
{
rTCFG0=0x0;//prescaler=0,means"1"deviderthesameastimer0
rTCNTB0=0x2000;//10ms
rTCON=0x00000202;
rTCON=0x00000009;//T0,autoreloadandstart
rINTCON=0x7;/*Non-vect,IRQdisable,FIQdisable*/
init_interrupt_handler((unsignedint)IsrIRQ);
install_isr_handler(HandleTIMER0,(void*)timer0_isr);
rINTMOD=0x0;
rINTMSK=0x07ffffff&~(BIT_GLOBAL|BIT_TIMER0);
rINTCON=0x5;
Test_Adc();
}
/********************************************************************
//Functionname:
Test_Adc
//Description:
testadc
//Returntype:
void
//Argument:
void
*********************************************************************/
voidTest_Adc(void)
{
intloop_delay;
intdata=0;
intget_index;
rCLKCON=0x7ff8;
while
(1)
{
charvalue;
intrADCDAT_TEMP0,rADCDAT_TEMP1,rADCDAT_TEMP2,rADCDAT_TEMP3,
rADCDAT_TEMP4,rADCDAT_TEMP5,rADCDAT_TEMP6,rADCDAT_TEMP7;
rADCPSR=0x0;
data=0;
for(get_index=0;get_index<16;get_index++)
{
rADCCON=0x1|(0x2<<2);//AIN2
while(!
(rADCCON&0x40));
data+=rADCDAT;
for(loop_delay=1000;loop_delay;loop_delay--);
}
data/=32;
value=trans_input(data);
display_buffer[0]=value/10;
display_buffer[1]=value%10;
data=0;
for(get_index=0;get_index<16;get_index++)
{
rADCCON=0x1|(0x3<<2);//AIN3
while(!
(rADCCON&0x40));
data+=rADCDAT;
for(loop_delay=1000;loop_delay;loop_delay--);
}
data/=32;
value=trans_input(data);
display_buffer[3]=value/10;
display_buffer[4]=value%10;
for(loop_delay=100000;loop_delay;loop_delay--);
}
}
chartrans_input(intvalue)
{
if(value==MAX_VALUE)return50;
return(char)(value*50/(MAX_VALUE-MIN_VALUE));
}
/*****************************************************************************
//Functionname:
rtc_tick_isr
//Description:
TICK中断处理程序
//Returntype:
int
//Argument:
void
*****************************************************************************/
voidtimer0_isr(void)
{
rI_ISPC=BIT_TIMER0;
if(refresh_index==2)refresh_index++;
if(refresh_index==5)refresh_index=0;
/*设置数码管段选*/
*((unsignedchar*)0x02000006)=0x3f&~(0x01< *((unsignedchar*)0x02000004)=seg7table[display_buffer[refresh_index]]; refresh_index++; } 1)设置A/D采样的时钟频率 A/D采样频率取决于ADCPSR寄存器。 假定CPU主时钟的频率为66MHZ,并且将A/D采样预分频寄存器(ADCPSR)置为20,而完成一次转换至少需要16个时钟周期,则采样频率可以采用下面公式计算: f=66M/(2*(20+1))/16=98.2KHZ=10.2us 下面代码实现该功能: rADCPSR=20; 值得注意的就是: 尽管芯片的最大转换速率为100KSPS,但由于S3C44B0X内部没有采样保持电路,所以要精确测量一个输入信号,输入信号的频率最好低于100HZ。 2)启动采样 将ADCCON寄存器的BIT0置1可以启动转换,当启动转换后,该位会被自动清除。 同时启动转换时还需要指定转换通道。 下面代码启动通道2的采样转换: rADCCON=0x1|(0x2<<2); 3)获取转换结果 当A/D转换结束后,我们可以读取ADCDAT寄存器的内容。 下面代码等待通道2的A/D转换,完毕后读取数据。 while(! (rADCCON&0x40)); data=rADCDAT; 5.8.6实验步骤 1.参照模板工程ad(modules\ad\ad.apj),新建一个工程ad,添加相应的文件,并修改ad的工程设置;创建ad.c并加入到工程ad中; 2.编写程序对通道2和通道3进行A/D转换,并将结果显示出来; 3.通道2和通道3的输入模拟信号可以通过JX44B0实验箱的AIN2、AIN3可调电阻来调节,采集通道2和通道3的数据并调节AIN2、AIN3可调电阻,观察打印的实验结果。 5.8.7实验报告要求 1.A/D转换为什么要进行采样? 采样频率应根据什么选定? 2.设输入模拟信号的最高有效频率为5kHz,应选用转换时间为多少的A/D转换器对它进行转换? 3.编写程序,修改ADCCON寄存器的READ_START位,设置通道2和通道3为读时启动采样,并进行实验。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 AD 实验
![提示](https://static.bingdoc.com/images/bang_tan.gif)