180 likes | 421 Views
ARM嵌入式体系结构与接口技术 第11章 A/D转换器. 课程安排 :. 第1章 嵌入式系统基础知识 第2章 ARM技术概述 第3章 ARM的指令系统 第4章 ARM汇编语言程序设计 第5章 ARM Realview MDK集成开发环境 第6章 GPIO编程 第7章 ARM异常中断处理及编程 第8章 串行通信接口. 课程安排 :. 第9章 存储器接口 第10章 定时器 第11章 A/D转换器 第12章 LCD接口设计 第13章 温度监测仪开发实例. 本章课程:. 11.1 A/D转换器原理 11.2 S3C2410X A/D转换器
E N D
课程安排: • 第1章 嵌入式系统基础知识 • 第2章 ARM技术概述 • 第3章 ARM的指令系统 • 第4章 ARM汇编语言程序设计 • 第5章 ARM Realview MDK集成开发环境 • 第6章 GPIO编程 • 第7章 ARM异常中断处理及编程 • 第8章 串行通信接口
课程安排: • 第9章 存储器接口 • 第10章 定时器 • 第11章 A/D转换器 • 第12章 LCD接口设计 • 第13章 温度监测仪开发实例
本章课程: • 11.1 A/D转换器原理 • 11.2 S3C2410X A/D转换器 • 11.3 A/D转换器应用举例 • 11.4 小结 • 11.5 思考与练习
11.1 A/D转换器原理 • 11.1.1 A/D转换基础 • A/D转换又称模数转换,顾名思义,就是把模拟信号数字化。 • 完成一个或多个模拟信号到数字信号的转换。 图11-1 A/D转换的一般步骤
11.1 A/D转换器原理 • 11.1.2 A/D转换的技术指标 • 1、分辨率(Resolution) • 数字量变化一个最小量时模拟信号的变化量,1/2n • 2、 转换速率(Conversion Rate) • 完成一次从模拟转换到数字的A/D转换所需的时间的倒数 • 3、量化误差(Quantizing Error) • 由于A/D的有限分辨率而引起的误差(1LSB或1/2LSB) • 4、偏移误差(Offset Error) • 输入信号为零时输出信号不为零的值 • 5、满刻度误差(Full Scale Error) • 满度输出时对应的输入信号与理想输入信号值之差 • 6、线性度(Linearity) • 实际转换器的转移函数与理想直线的最大偏移
11.1 A/D转换器原理 • 11.1.3 A/D转换器类型 • 1、 积分型A/D转换器 • 2、 逐次逼近型A/D • 3、 并行比较/串行比较型A/D • 4、 电容阵列逐次比较型 • 5、 压频变换型
11.1 A/D转换器原理 • 11.1.4 A/D转换的一般步骤 • A/D转换过程是通过取样、保持、量化和编码这四个步骤完成的。 • 取样和保持主要由采样保持器来完成 • 量化编码就由A/D转换器完成
11.2 S3C2410X A/D转换器 • 11.2.1 S3C2410X A/D转换器概述 • S3C2410A 的具有8 通道模拟输入的10 位CMOS 模数转换器ADC • 在2.5MHz 的A/D 转换器时钟下, 最大转化速率可达到500KSPS。 图11-2 S3C2410X ADC控制器接口框图
11.2 S3C2410X A/D转换器 • 采用近似比较算法(计数式)的8路10位A/D,集成零比较器,内部产生比较时钟信号;支持软件使能休眠模式,以减少电源损耗。其主要特性如下: (1)精度(Resolution):10-bit。 (2)微分线性误差(Differential Linearity Error):1.5LSB。 (3)积分线性误差(Integral Linearity Error):2.0LSB。 (4)最大转换速率(Maximum Conversion Rate):500KSPS。 (5)输入电压(Input Voltage Range):0-3.3V。 (6)片上采样保持电路。 (7)正常模式。 (8)单独X,Y坐标转换模式。 (9)自动X,Y坐标顺序转换模式。 (10)等待中断模式。
11.2 S3C2410X A/D转换器 • 11.2.2 S3C2410X A/D控制器寄存器 • (1)寄存器组: • A/D控制寄存器ADCCON、A/D转换数据寄存器ADCDAT • (2)A/D转换的转换时间计算。 • 例,PCLK为50MHz,PRESCALER = 49;所有10位转换时间为 • 50 MHz / (49 + 1) = 1MHz • 转换时间为1/(1M/5 cycles) = 5s。 • 注意:完成一次A/D转换需要5个时钟周期。A/D转换器的最大工作时钟为2.5MHz,所以最大的采样率可以达到500kbit/s。
11.3 A/D转换器应用举例 • 11.3.1 电路连接 • 电路连接如图11-3所示,利用一个电位计输出电压到S3C2410X 的AIN0管脚。输入的电压范围是0~3.3V。 图11-3 分压电路
11.3 A/D转换器应用举例 • 11.3.3 调试与运行结果 • 1.串口接收设置 • 超级终端:波特率115200, 1位停止位, 无校验位, 无硬件流控制 • 2.打开实验例程 • (1)运行MDK开发环境,进入实验例程目录adc_test子目录下的adc_test.Uv2例程,编译链接工程。 • (2)根据common目录下的ReadMeCommon.txt及本工程目录下的readme.txt文件配置集成开发环境,在Option for Target对话框的Linker页中选择RuninRAM.sct分散加载文件,单击MDK的Debug菜单,选择Start/Stop Debug Session项或单击,下载程序文件到目标板的RAM中调试运行。 • (3)在Option for Target对话框的Linker页中选择RuninFlash.sct分散加载文件,单击MDK的Flash菜单,选择Download烧写调试代码到目标系统的Nor Flash中,重启目标板,目标板自动运行烧写到Nor Flash中的代码。 • 3.观察实验结果
11.3 A/D转换器应用举例 1、在PC机上观察超级终端程序主窗口,可以看到如下界面 • boot success... • [ ADC_IN Test,channel 0] • ADC conv. freq. = 2500000Hz • Please adjust AIN0 value! • The results of ADC are: 2、本实验对AIN0输入信号进行A/D转换,调节电位器R42,可以在超级终端和数码管上观察到变化的数据,本实验使用start-by-read模式,每1秒钟对数据进行一次采样,共采样20个点。超级终端主窗口和数码管显示出采样点的数据经过转换后的结果。 • [ ADC_IN Test,channel 0] • ADC conv. freq. = 2500000Hz • Please adjust AIN0 value! • The results of ADC are: • 3.2742 3.2742 2.9097 1.9452 1.6774 1.6161 • 1.0871 0.8194 1.2194 1.2806 1.6290 1.6290 1.9161 • 2.1065 2.2839 2.2871 1.7032 1.1806 0.7161 0.0677
11.3 A/D转换器应用举例 • 11.3.2 程序的编写
11.4 小结 • 了解A/D转换器的工作原理 • 掌握S3C2410X下A/D控制器的操作方法
11.5 思考与练习 • 11-1 A/D转换器选型时需要考虑那些指标? • 11-2 根据A/D的基本原理,可以将A/D控制器分为哪些种类? • 11-3 在PCLK为50MHz的情况,如何设置S3C2410X的A/D控制器来实现采集速度为100KSPS? • 11-3 编程实现对利用S3C2410X A/D控制器的AIN1通道采集一个范围在0~3.3V的电压的采集。