《单片机ADC模块.ppt》由会员分享,可在线阅读,更多相关《单片机ADC模块.ppt(38页珍藏版)》请在第壹文秘上搜索。
1、10.3 A/D转换模块2本节提要本节提要一、一、A/D转换基础知识转换基础知识二、二、ATD模块简介模块简介三、三、ATD模块寄存器模块寄存器四、四、ATD模块编程范例模块编程范例3本节提要本节提要一、一、A/D转换基础知识转换基础知识二、二、ATD模块简介模块简介三、三、ATD模块寄存器模块寄存器四、四、ATD模块编程范例模块编程范例4ADC概述n微控制器处理的是离散量 (数字量) ,而现实中往往是连续量 (模拟量)物理量如:温度, 压力,湿度以及速度等等n传感器 将物理量转换为电信号 (电压, 电流)n需要模拟-数字转换器将电信号转换为数字量以供微控制器处理5基本概念 传感器传感器 控制
2、器控制器执行器执行器6ADC 工作原理n将输入电压与若干等间距的参考电压进行比较n因此需要比较器比较器Uin Uref Uout=V+ 1Uin Uref Uout=0V 0UinUrefUout1位ADC7ADC 工作原理n3 个比较器可将电压分成4 级 (以 2位来表示)Uref1Uref2Uref3Rank0Rank1Rank2Rank3Uref1Uref2Uref3Uout1Uout2Uout3Quiz1: For voltage in rank2, Uout1 = ? Uout2 = ? Uout3 = ?UmaxUminUin8ADC工作原理n2位ADCUinUrefRRRRD0D
3、1编码器8位 ADC, 需要多少个比较器?9ADC工作原理nFlash Converter ADC优点: 速度极快缺点: 非常复杂n逐次逼近式A/D转换器Uin逐次逼近寄存器D/A 转换器结果Uref10ADC工作原理逐次逼近式转换器转换过程 ( 4位 )SA-ADC 完成一次转换至少需要 n 个时钟周期11ADC工作原理n必须进行采样保持以避免输入电压在转换期间发生变化Uin12ADC工作原理n 逐次逼近式转换器( SA-ADC )非常快比较复杂n SA-ADC在单片机中较为常见单片机中常见典型为8-12位具有多个多路复用的模拟通道SA-ADC通道选择寄存器13ADC 参数n转换位数(Bit
4、s)分辨率 = 2-n (8bits = 0.39%)n转换速度(Speed)由工作时钟频率和转换位数确定n转换范围(Range)05V, 010V, -5V+5V. Etc.n转换通道数(Channels)Distinguish the channel and converter14本节提要本节提要一、一、A/D转换基础知识转换基础知识二、二、ATD模块简介模块简介三、三、ATD模块寄存器模块寄存器四、四、ATD模块编程范例模块编程范例15 8/10/12位可选 转换速度较高,10位精度,单次转换时间为7usec 采样时间可编程设置 多种转换模式:数据对齐方式、单次/连续转换、 转换结果比较
5、 外触发控制 转换结束可产生中断 可用于8个模拟输入通道的模拟输入多路转换器. 模拟/数字输入引脚复用 18 转换序列长度. 多通道扫描S12单片机ADC特性162, 4, 8, 16 ClocksAlways2 Clocks转换时间计算举例: (假设A/D 时钟为2MHz,10位精度 )转换时间 = Initial Sample Time + Programmed Sample Time + Resolution Period = 2 + 2 + 10 = 14 A/D Clocks = 7uSecS12单片机ADC转换时间17S12单片机ADC模块框图ADC 引脚可用于数字输入ADC 结果
6、寄存器模拟输入通道参考电压18本节提要本节提要一、一、A/D转换基础知识转换基础知识二、二、ATD模块简介模块简介三、三、ATD模块寄存器模块寄存器四、四、ATD模块编程范例模块编程范例19ATD 模块寄存器n 共27个寄存器控制寄存器(ATDCTL0ATDCTL5,6个)状态寄存器(ATDSTAT0ATDSTAT1,2个 )比较使能寄存器(ATDCMPE, 1个)比较方式寄存器(ATDCMPHT , 1个,)转换输入使能寄存器(ATDDIEN , 1个)转换结果寄存器(ATDDR0ATDDR15,16个)其中: 8位寄存器: ATDCTL0ATDCTL5, ATDSTAT0 16位寄存器:其
7、余20ATD Registers 1/12ATD Control Register 0 (ATDCTL0)WRAP3-0 - Wrap Around Channel Select 0 = ReservedX = 多通道转换模式 从ANx回绕到AN0 1x 15 仅在ATDCTL5的MULT=1时有效21ATD Registers 2/12SRES1:0 - A/D Resolution SelectATD Control Register 1 (ATDCTL1)ETRIGSEL - External Trigger Source Select S12XS此位无效ETRIGCH3:0 - Ext
8、ernal Trigger Channel SelectSMP_DIS - Discharge Before Sampling Bit 0=No discharge 1 = discharge 注:写ATDCTL1会终止当前转换序列22ATD Registers 3/12ATD Control Register 2 (ATDCTL2)AFFC - ATD Fast Flag Clear All0 = 向CCFn 标志位写1则清零1 =读ATD转换结果寄存器则CCFn 标志位清零(当比较功能被禁止) 写ATD转换结果寄存器则CCFn 标志位清零(当比较功能被使能)ICLKSTP - Intern
9、al Clock in Stop Mode Bit0 = 停止模式下,停止当前转换,退出停止模式后ATD转换自动重新开始1 = 停止模式下,可继续使用内部时钟进行ATD转换ETRIGLE - External Trigger Level/Edge ControlETRIGP - External Trigger PolarityETRIGE - External Trigger Mode Enable0 = 禁止外部触发信号1 = 使能外部触发信号ASCIE- ATD Sequence Complete Interrupt Enable0 = 禁止ATD转换序列结束中断1 = 使能ATD转换序
10、列结束中断ACMPIE - Internal Clock in Stop Mode Bit0 = 禁止比较中断1 = 使能比较中断注:写ATDCTL2会终止当前转换序列23ATD Registers 4/12ATD Control Register 3 (ATDCTL3)DJM - Result Register Data Justification0=Left justified data in the result registers1=Right justified data in the result registersS8C, S4C,S2C, S1C - Conversion Se
11、quence LengthFIFO - Result Register FIFO Mode0=Conversion results are placed in the corresponding result register up to the selected sequence length.1=Conversion results are placed in consecutive result registers (wrap around at end).FRZ1:0 - Background Debug Freeze Enable注:写ATDCTL3会终止当前转换序列24ATD Re
12、gisters 5/12设置预分频因子时,0.25MHzAEDCLK 8.3MHzATD Control Register 4 (ATDCTL4)SMP2:0 - Sample Time SelectPRS4:0 - ATD Clock PrescalerDivide By 25-Bit Modulus Counter PrescalerPRS0-PRS4SYSTEM CLOCKA/D Clock采样时间长,采样点电平更准确的逼近外部信号电平注:写ATDCTL4会终止当前转换序列25ATD启动:启动:写ATDCTL5会终止当前转换序列,并开始新一次转换此后,若外部触发信号每次满足触发条件都会开
13、始一次ATD转换 ATD Registers 6/12ATD Control Register 5 (ATDCTL5)SC - Special Channel Conversion0=Special channel conversions disabled1=Special channel conversions enabledSCAN - Continuous Conversion Sequence Mode 0=Single conversion sequence1=Continuous conversion sequences (scan mode)MULT - Multi-Channe
14、l Sample 0=Sample only one channel1=Sample across several channelsCD,CC,CB,CA - Analog Input Channel Select Code26单通道,单次转换单通道,单次转换多通道,单次转换多通道,单次转换单通道,序列转换模式单通道,序列转换模式多通道,序列转换模式多通道,序列转换模式特殊通道测试模式特殊通道测试模式ADC 工作方式27ATD Registers 7/12ATD Status Register 0 (ATDSTAT0)SCF - Sequence Complete Flag0=Conversi
15、on sequence not completed1=Conversion sequence has completedETORF - External Trigger Overrun Flag0=No External trigger over run error has occurred1=External trigger over run error has occurredFIFOR- Result Register Over Run Flag0=No over run has occurred1=Overrun condition exists (result register ha
16、s been written while associated CCFx flag was still set)CC3:0 - Conversion Counter 当前转换结果将写入的结果寄存器编号 例如: CC3:0=0110, 转换结果写入第6个结果寄存器先入先出模式下,不被初始化,当计数到最大值回最小值非先入先出模式下,转换开始和结束时被初始化为0两种模式下终止ATD转换或开始新ATD转换均被清零28ATD Registers 8/12ATD Compare Enable Register (ATDCMPE)CMPE15:0 - Compare Enable for Conversion Number n (n= 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0) of a Sequence0=No automatic compare1= Automatic compare of results for conversion n of a sequence is enabled对一个序列中第n次ATD转换结果进行比较,除C