您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第8章 MC9S12XS128模数转换模块
《MC9S12XS单片机原理及嵌入式系统开发》MC9S12XS单片机原理及嵌入式系统开发合肥工业大学张阳,吴晔,滕勤Email:yzhang0615@163.com,wuye@ialab.hfut.edu.cn,tengqin7348@126.comTEL:13966717615,13505612773《MC9S12XS单片机原理及嵌入式系统开发》第8章MC9S12XS128模数转换模块及其应用实例ATD模块概述ATD模块结构组成和特点ATD模块寄存器及设置ATD模块应用实例智能车系统中ATD模块的应用《MC9S12XS单片机原理及嵌入式系统开发》8.1ATD模块概述在计算机过程控制和数据采集等系统中,经常要对一些过程参数进行测量和控制,这些参数往往是连续变化的物理量,如温度、压力、流量和速度等。这里所指的连续变化即数值是随时间连续可变的,通常称这些物理量为模拟量,然而计算机本身所能识别和处理的都是数字量。这些模拟量在进入计算机之前必须转换成二进制数码表示的数字信号,能够把模拟量变成数字量的器件称为模数(A/D)转换器。MC9S12XS128内置的ATD(也记做A/D)模块是16通道、12位精度、多路输入复用、逐次逼近型的模数转换器。本章着重介绍ADC模块的特性、寄存器功能及设置,并通过一些应用实例和ATD模块在自主寻迹智能车上的应用,让读者掌握ATD模块的应用及编程方法。《MC9S12XS单片机原理及嵌入式系统开发》8.2ATD模块结构组成和特点MC9S12XS128内置的ATD模块如图8.1所示。《MC9S12XS单片机原理及嵌入式系统开发》8.2ATD模块结构组成和特点ATD模块具有以下基本特征:8位/10位/12位可选转换精度;停止模式下转换使用内部时钟;转换完成后为低功耗状态;自动和可编程数值比较,可设定大于或者小于等于设定值时中断申请;可编程采样时间;左对齐/右对齐转换数值;外部触发功能;转换完成中断申请;16路模拟输入通道多路开关;可实现VRH、VRL和(VRH+VRL)/2特殊转换;转换序列长度为1~16;连续转换模式;多通道扫描功能;外部触发功能可配置为AD通道或4个外部附加触发输入端,外部触发源可选择片外或片内信号。《MC9S12XS单片机原理及嵌入式系统开发》8.3ATD模块寄存器及设置MC9S12XS128的ATD模块相关寄存器详见表8-1。《MC9S12XS单片机原理及嵌入式系统开发》8.3ATD模块寄存器及设置《MC9S12XS单片机原理及嵌入式系统开发》8.3ATD模块寄存器及设置8.3.1ATD控制寄存器0(ATDCTL0)ATD控制寄存器0(ATDControlRegister0,ATDCTL0),如图8.2所示。该寄存器写操作将中止当前转换序列。《MC9S12XS单片机原理及嵌入式系统开发》8.3ATD模块寄存器及设置8.3.1ATD控制寄存器0(ATDCTL0)读:任何时刻;写:任何时刻,特殊模式下总是对保留位(Bit7)写0操作。WRAP3~WRAP0:返转通道选择位。当执行多通道转换时,这4位确定返转通道,多通道返转编码如表8-2所示。《MC9S12XS单片机原理及嵌入式系统开发》8.3ATD模块寄存器及设置8.3.2ATD控制寄存器1(ATDCTL1)ATD控制寄存器1(ATDControlRegister1,ATDCTL1),如图8.3所示。该寄存器写操作将中止当前转换序列。《MC9S12XS单片机原理及嵌入式系统开发》8.3ATD模块寄存器及设置8.3.2ATD控制寄存器1(ATDCTL1)读:任何时刻;写:任何时刻。ETRIGSEL:外部触发源选择位。该位选择外部触发源是AD通道,还是ETRIG3~0输入引脚。对于ERTIG3~0输入端的使用请参考MC9S12XS128数据手册。如果ETRIG3~0的某输入端不可用,置位ETRIGSEL操作无效,这意味着只能选择AD通道作为外部触发源。ETRIGCH3~ETRIGCH0:外部触发通道选择位,这4位选择AD某通道或ERTIG3~0某输入端作为外部触发源。外部触发通道选择编码详见表8-3。《MC9S12XS单片机原理及嵌入式系统开发》8.3ATD模块寄存器及设置8.3.2ATD控制寄存器1(ATDCTL1)《MC9S12XS单片机原理及嵌入式系统开发》8.3ATD模块寄存器及设置8.3.2ATD控制寄存器1(ATDCTL1)SRES1~SRES0:A/D分辨率选择位。设置A/D转换结果分辨率,详见表8-4。SMP_DIS:采样前放电位选择。0表示采样前不放电;1表示某通道采样前,内部采样电容会放电。这会增加2个ATD时钟周期的采样时间,有助于采样前进行开路检测。《MC9S12XS单片机原理及嵌入式系统开发》8.3ATD模块寄存器及设置8.3.3ATD控制寄存器2(ATDCTL2)ATD控制寄存器2(ATDControlRegister2,ATDCTL2),如图8.4所示。该寄存器写操作将中止当前转换序列。《MC9S12XS单片机原理及嵌入式系统开发》8.3ATD模块寄存器及设置8.3.3ATD控制寄存器2(ATDCTL2)读:任何时刻;写:任何时刻。AFFC:ATD模块标志快速清除位。0表示ATD转换完成标志位由各自CCFn标志位写1操作清除;1表示通过快速清除序列修改所有ATD转换完成标志位。当比较使能位CMPEn=0时,读取结果寄存器将自动清除相应CCF标志位;当比较使能位CMPEn=1时,结果寄存器写操作将自动清除相应CCF标志位。ICLKSTP:停止模式下内部时钟位。该位使能停止模式下的AD转换。当进入停止模式且ICLKSTP=1时,ATD转换时钟自动切换到内部时钟ICLK。当前转换序列将不受影响地继续转换,转换速率将从预分频总线频率变为ICLK频率。ICLK频率下,ATDCTL4寄存器中的PRS4~PRS0预分频因子无效。停止模式下的AD转换,外部触发将不工作;自动比较中断或序列完成中断用于软件中断处理AD采样值。从运行模式转换到停止模式期间,或者从停止模式转换到运行模式期间,转换结果不会写入结果寄存器,不置位CCF标志位且不进行比较处理。停止模式下且ICLKSTP=1时,脱离停止模式需要有ATDCLK切换回总线时钟的ATD停止恢复时间tATDSTPRCV,此时间内,不能访问ATD寄存器。0表示进入停止模式时如果AD转换序列正在进行,则中止当前转换序列。退出停止模式时AD转换自动重启;1表示停止模式下AD转换使用内部时钟(ICLK)进行转换。《MC9S12XS单片机原理及嵌入式系统开发》8.3ATD模块寄存器及设置8.3.3ATD控制寄存器2(ATDCTL2)ETRIGLE:外部触发电平/边沿控制位。该位确定外部触发信号是边沿触发还是电平触发。该位和ETRIGP位配合使用,这2位外部触发设置详见表8-5。ETRIGP:外部触发极性控制位。该位确定外部触发信号的极性。该位和ETRIGLE位配合使用,这2位外部触发设置详见表8-5。《MC9S12XS单片机原理及嵌入式系统开发》8.3ATD模块寄存器及设置8.3.3ATD控制寄存器2(ATDCTL2)ETRIGE:外部触发模式使能位。该位允许表8-3中描述的AD通道或者ETRIG3~0输入端作为外部触发源。如果外部触发源是AD某通道,则使能该通道的数字输入缓冲功能。外部触发允许与外部事件实现同步转换。停止模式下的AD转换,外部触发不工作。0表示禁止外部触发;1表示允许外部触发。ASCIE:ATD转换序列完成中断使能位。该位使能,当SCF置位时,则ATD转换序列完成后将产生中断请求。0表示禁止ATD转换序列完成产生中断请求;1表示允许ATD转换序列完成产生中断请求。ACMPIE:ATD比较中断使能位。该位使能,当自动比较功能使能,即ATDCMPE寄存器中的比较使能位CMPEn=1时,则相应比较位可申请中断。如果CCFn标志置位,将触发比较中断。0表示禁止ATD比较中断请求;1表示允许ATD比较中断请求。《MC9S12XS单片机原理及嵌入式系统开发》8.3ATD模块寄存器及设置8.3.4ATD控制寄存器3(ATDCTL3)ATD控制寄存器3(ATDControlRegister3,ATDCTL3),如图8.5所示。该寄存器写操作将中止当前转换序列。《MC9S12XS单片机原理及嵌入式系统开发》8.3ATD模块寄存器及设置8.3.4ATD控制寄存器3(ATDCTL3)读:任何时刻;写:任何时刻。DJM:结果寄存器数据对齐方式选择位。该位确定结果寄存器中转换数据的对齐格式,转换结果数据总是无符号。0表示结果寄存器中的数据格式左对齐;1表示结果寄存器中的数据格式右对齐。表8-6中给出输入信号为0~5.12V情况下的ATD转换结果示例。《MC9S12XS单片机原理及嵌入式系统开发》8.3ATD模块寄存器及设置8.3.4ATD控制寄存器3(ATDCTL3)S8C、S4C、S2C、S1C:转换序列长度定义位。这4位控制每个序列转换的长度。A/D转换序列长度定义详见表8-7。复位后,S4C默认为1,所以默认的A/D转换序列的长度为4。《MC9S12XS单片机原理及嵌入式系统开发》8.3ATD模块寄存器及设置8.3.4ATD控制寄存器3(ATDCTL3)FIFO:结果寄存器先进先出(FIFO)模式选择位。如果该位为0(非FIFO模式),则AD转换结果基于转换序列映射到结果寄存器,第1个转换结果放入第1个结果寄存器ATDDR0,第2个转换结果放入第2个结果寄存器ATDDR1,以此类推。如果该位为1(FIFO模式),则AD转换开始和结束时,转换计数器不复位,转换结果被依次存放在结果寄存器。连续转换序列模式(SCAN=1),到达最后结果寄存器时,结果寄存器计数器将返转。转换计数器值(ATDSTAT0寄存器中的CC3~CC0)确定当前转换结果存放的相应结果寄存器,结果寄存器保存的有效数据可查询转换完成标志位获悉。FIFO模式下,中止当前转换或开始新转换将清除转换计数器。ATDCTL5寄存器写操作,新转换序列的第1个转换结果,总是放入第1个结果寄存器ATDDR0。如果FIFO位为1,禁用结果寄存器自动比较功能,ATD模块工作方式如同ACMPIE=0,CMPEn=0一样。0表示转换结果根据选择的转换序列长度放入相应结果寄存器;1表示转换结果依次放入结果寄存器(到达最后结果寄存器时再返转)。《MC9S12XS单片机原理及嵌入式系统开发》8.3ATD模块寄存器及设置8.3.4ATD控制寄存器3(ATDCTL3)FRZ1、FRZ0:冻结模式下背景调试使能控制位。当背景调试程序时,如果遇到断点,有时希望此时ATD模块停止工作。这2位共同确定冻结模式下遇到断点时ATD模块的工作状态,如表8-8所示。《MC9S12XS单片机原理及嵌入式系统开发》8.3ATD模块寄存器及设置8.3.5ATD控制寄存器4(ATDCTL4)ATD控制寄存器4(ATDControlRegister4,ATDCTL4),如图8.6所示,该寄存器写操作将中止当前转换序列。《MC9S12XS单片机原理及嵌入式系统开发》8.3ATD模块寄存器及设置8.3.5ATD控制寄存器4(ATDCTL4)SMP2~SMP0:采样时间选择位。这3位确定以ATD转换时钟周期为单位的采样时间长度,注意ATD转换时钟周期和ATD时钟预分频因子相关。表8-9列出了采样时间长度的选择。PRS4~PRS0:ATD时钟预分频因子选择位。这5位确定ATD时钟预分频因子的二进制PRS值,ATD转换时钟频率计算公式为fATDCLK=fBUS/(2×(PRS+1))式中,fATDCLK允许的频率范围请参考MC9S12XS128数据手册。《MC9S12XS单片机原理及嵌入式系统开发》8.3ATD模块寄存器及设置8.3.6ATD控制寄存器5(ATDCTL5)ATD控制寄存器5(ATDControlRegister5,ATDCTL5),如
本文标题:第8章 MC9S12XS128模数转换模块
链接地址:https://www.777doc.com/doc-1915586 .html