ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:751.48KB ,
资源ID:15357561      下载积分:5 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-15357561.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第7章 ADDACMP和TSI模块.docx)为本站会员(b****7)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

第7章 ADDACMP和TSI模块.docx

1、第7章 ADDACMP和TSI模块第7章 A/D、D/A、CMP和TSI模块本章导读:作为工业控制及测量最主要的模块之一,模/数转换 (ADC)及数/模转换(DAC)的是嵌入式系统应用的基本内容之一。比较器CMP也是嵌入式应用系统中基本的控制逻辑之一。触摸感应接口TSI 作为一种新型的人机交互手段,已应用于越来越多的嵌入式系统。本章主要知识点有A/D转换的基本知识及一般编程模型;D/A转换的基本知识及一般编程模型;比较器CMP模块的基本知识及一般编程模型;TSI模块的基本知识及一般编程模型。 7. 1 16位A/D转换模块的驱动构件设计在过程控制和仪器仪表中,多数情况下是由嵌入式计算机进行实时

2、控制及实时数据处理的。计算机所加工的信息是数字量,而被测控对象往往是一些连续变化的模拟量(如温度、压力、速度或流量等)。模/数 (Analog/Digital,A/D)转换模块是嵌入式计算机与外界连接的纽带,是大部分嵌入式应用中必不可少的重要组成部分,该部分的性能直接影响到嵌入式设备的总体性能。本节首先简要阐述A/D转换的基础知识,接着给出K60 MCU内部A/D转换模块的基本编程方法,并封装了A/D转换构件,可供实际开发参考使用。7. 1. 1 A/D转换的基础知识A/D转换模块(Analog To Digital Convert Module)即模/数转换模块,其功能是将电压信号转换为相应

3、的数字信号。数字控制系统如图 7-1所示。实际应用中,该电压信号可能由温度、湿度、压力等实际物理量经过传感器和相应的变换电路转化而来。经过A/D转换后,MCU就可以处理这些物理量。进行A/D转换,应该了解以下一些基本问题:第一,采样精度是多少;第二,采样速率有多快;第三,滤波问题;第四,物理量回归等。 图7-1数字控制系统框图1. 采样精度采样精度就是指数字量变化一个最小量时模拟信号的变化量,即采样位数。通常,MCU的采样位数为8位,某些增强型的可达到10位,而专用的A/D采样芯片则可达到12位、14位,甚至16位。设采样位数为N,则 最小的能检测到的模拟量变化值为1/2N 。例如,以K60为

4、例,其采样精度最高为16位,若参考电压为3. 3V,则检测到的模拟量最小变化为 3. 3/216 =0. 05mV。2. 采样速率采样速率是指完成一次A/D采样所要花费的时间。在多数的MCU中要花费几个到几十个指令周期,因而此速率和所选器件的工作频率有很大关系。3. 滤波为了使采样的数据更准确,必须对采样的数据进行筛选,去掉误差较大的毛刺。通常采用中值滤波法和均值滤波法来提高采样精度。所谓中值滤波,就是将M次连续采样值按大小进行排序,取中间值作为滤波输出。而均值滤波,是把N次采样结果值相加,然后除以采样次数N,得到的平均值就是滤波结果。若要得到更高的精度,可以通过建立其他误差模型分析方式来实现

5、。4. 物理量回归在实际应用中,得到稳定的A/D采样值以后,还需要把A/D采样值与实际物理量对应起来,这一步称为物理量回归。A/D转换的目的是把模拟信号转化为数字信号,供计算机进行处理,但必须知道A/D转换后的数值所代表的实际物理量的值,这样才有实际意义。例如,利用MCU采集室内温度,A/D转换后的数值是126,实际它代表多高温度呢?如果当前室内温度是25. IV,则A/D值126就代表实际温度25. 。7.1.2 A/D转换常用传感器简介传感器是指把物理量或化学量转变成电信号的器件,它是实现测试与自动控制系统的首要环节。例如,电子计价枰中所安装的称重传感器,是电子计价枰的重要部件,它担负着将

6、重量转换成电信号的任务,该电信号被放大器放大并经A/D转换后,由显示器件给出称重信息。如果没有传感器对原始参数进行精确可靠的测量,无论是信号转换或信息处理都将无法实现。传感器的种类可分为力、热、湿、气、磁、光、电等。各种传感器都是根据相关材料在不同环境下会表现出不同的物理特性研制而成的。下面介绍一些简单的传感器。1. 温度传感器温度传感器是利用一些金属、半导体等材料与温度有关的特性制成的,这些特性包括热膨胀、电阻、电容、磁性、热电势、热噪声、弹性及光学特征,根据制造材料将其分为热敏电阻传感器、半导体热电偶传感器、PX结温度传感器和集成温度传感器等类型。热敏电阻传感器是一种比较简单的温度传感器,

7、其最基本电气特性是随着温度的变化自身阻值也随之变化。图7-2 (a)是XTC热敏电阻。 (a) NTC热敏电阻 (b)热敏电阻的简单采样电路图7-2热敏电阻及其采样电路在实际应用中,将热敏电阻接入图7-2 (b)的采样电路中,热敏电阻和一个特定阻值的电阻串联,由于热敏电阻会随着环境温度的变化而化,因此A/D采样点的电压也会随之变化,A/D采样点的电压式中,X是一特定阻值,根据实际热敏电阻的不同而加以选定。假如热敏电阻阻值增大,采样点的电压就会减小,A/D值也相应减小;反之,热敏电阻阻值减小,采样点的电压就会增大,A/D值也相应增大。所以采用这种方法,MCU就会获知外界温度的变化。如果想知道外界

8、的具体温度值,就需要进行物理量回归操作,也就是通过A/D采样值,根据采样电路及热敏电阻温度变化曲线,推算当前温度值。2. 光敏电阻器光敏电阻器是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;入射光强,电阻减小;入射光弱,电阻增大。光敏电阻器一般用于光的测量、光的控制和光电转换(将光的变化转换为电的变化)。通常,光敏电阻器都制成薄片结构,以便吸收更多的光能。当它受到光的照射时,半导体片(光敏层)内就激发出电子空穴对,参与导电,使电路中电流增强。一般光敏电阻器结构如图7-3 (a)所示。图7-3 (b)给出了简单的光敏电阻采样电路,其中A/D采样点的电压的计算方法类似于上述热敏

9、电阻A/D采样点电压的计算。图7-3光敏电阻及其采样电路3. 灰度传感器所谓灰度,也可认为是亮度,简单地说就是色彩的深浅程度。灰度传感器的主要工作原理是使用两只二极管,一只为发白光的高亮度发光二极管,另一只为光敏二极管。发光二极管发出超强白光照射在物体上,通过物体反射回来落在光敏二极管上,由于受照射在它上面的光线强弱的影响,光敏二极管的阻值在反射光线很弱(也就是物体为深色)时为几百千欧, 般光照度下为几千欧,在反射光线很强(也就是物体颜色很浅,几乎全反射时)为几十欧。这样就能检测到物体的颜色的灰度了。7.1.3 A/D转换模块概要与编程要点1. A/D模块简介概要由于K60的ADC模块的时钟频

10、率最高可配置为50MHz,最快采样周期为 4个时钟,所以采样速率最高可达12. 5MHz。K60共有2个ADC模块,每个 ADC模块包含27个寄存器。ADC模块由于使用了线性逐次逼近算法,所以具有最高可达16位的分辨率。同时ADC具有差分输入和单端输入两种采集模式。差分输入模式具有4路,每路有可以分别配置为16位、13位、11位 和9位四种采集精度;单端输入模式具有24路,每路可以分别配置为16位、 12位、10位和8位四种采集精度。当K60的ADC模块配置为差分模式时,将4对差分引脚视为差分输入源,将该对引脚的电压差值作模数转换的测量值,而且相应的结果寄存器会出现符号位。当差分引脚DP的电压

11、比DM高时,符号位为0 。当差分引脚DP的电压比DM低时,符号位1。虽然差分可以带符号,但这里还是建议读者设置DP端的电压值高于DM端的电压值。如果ADC模块配置位为非差分模式时,那么差分模式下的所有差分输入正端将视为单端模式的输入端。其实单端输入可以理解为另一端电压值永远为0V的差分输入。2. A/D模块寄存器ADC模块共有2个通道,每个道共有28个寄存器。表7-2列出了ADC0道的28个寄存器的内存映射,ADC0通道的寄存器名、复位值和该通道相同,基地址则从400B_B000 开始。表7-2 ADC0通道寄存器映射绝对地址寄存器名宽度进入方式复位值4003_B000ADC 状态控制寄存器1

12、(ADC0_SC1A)32R/W0000_001Fh4003_B004ADC 状态控制寄存器1(ADC0_SC1B)32R/W0000_001Fh4003_B008ADC 配置寄存器1(ADC0_CFG1)32R/W0000_0000h4003_B00CADC 配置寄存器2(ADC0_CFG2)32R/W0000_0000h4003_B010ADC 数据结果寄存器(ADC0_RA)32R0000_0000h4003_B014ADC 数据结果寄存器(ADC0_RB)32R0000_0000h4003_B018比较值寄存器(ADC0_CV1)32R/W0000_0000h4003_B01C比较值寄

13、存器(ADC0_CV2)32R/W0000_0000h4003_B020状态和控制寄存器2(ADC0_SC2)32R/W0000_0000h4003_B024状态和控制寄存器3(ADC0_SC3)32R/W0000_0000h4003_B028ADC 偏移校正寄存器(ADC0_OFS)32R/W0000_0004h4003_B02CADC 加方增益寄存器(ADC0_PG)32R/W0000_8200h4003_B030ADC 减方增益寄存器(ADC0_MG)32R/W0000_8200h4003_B034ADC 加方通用校准值寄存器(ADC0_CLPD)32R/W0000_000Ah4003_

14、B038ADC 加方通用校准值寄存器(ADC0_CLPS)32R/W0000_0020h4003_B03CADC 加方通用校准值寄存器(ADC0_CLP4)32R/W0000_0200h4003_B040ADC 加方通用校准值寄存器(ADC0_CLP3)32R/W0000_0100h4003_B044ADC 加方通用校准值寄存器(ADC0_CLP2)32R/W0000_0080h4003_B048ADC 加方通用校准值寄存器(ADC0_CLP1)32R/W0000_0040h4003_B04CADC 加方通用校准值寄存器(ADC0_CLP0)32R/W0000_0020h4003_B050AD

15、C PGA 寄存器(ADC0_PGA)32R/W0000_0000h4003_B054ADC 减方通用校准值寄存器(ADC0_CLMD)32R/W0000_000Ah4003_B058ADC 减方通用校准值寄存器(ADC0_CLMS)32R/W0000_0020h4003_B05CADC 减方通用校准值寄存器(ADC0_CLM4)32R/W0000_0200h4003_B060ADC 减方通用校准值寄存器(ADC0_CLM3)32R/W0000_0100h4003_B064ADC 减方通用校准值寄存器(ADC0_CLM2)32R/W0000_0080h4003_B068ADC 减方通用校准值寄

16、存器(ADC0_CLM1)32R/W0000_0040h4003_B06CADC 减方通用校准值寄存器(ADC0_CLM0)32R/W0000_0020h在ADC模块的编程过程中,主要需要配置ADC模块的时钟、转换为单端或者差分、转换精度、触发源以及转换通道等功能,因此需要用到ADC的控制寄存器、配置寄存器以及状态寄存器等。本章详细介绍的寄存器有配置寄存器1、状态和控制寄存器1、状态和控制寄存器2和状态和控制寄存器31. ADC 配罝寄存器1(ADCx_CFG1)配置寄存器1选择ADC的运行模式、时钟源、时钟分频,并可以配置低功耗或长采样时间。ADLPC低功耗配置。该寄存器控制功耗配置的逐次逼

17、近转换器。当采用优化功耗时,不需要更改的采样速率。0:正常功耗配罝。1:低功耗配置。功耗的减小以最大时钟速率为代价。ADIV时钟分频选择。该位选择时钟分频比,用以生成ADC模块的内部时钟 ADCK。00:分频比为1,时钟速率为输人时钟。01:分频比为2,时钟速率为(输入时钟)/2。10:分频比为4,时钟速率为(输入时钟)/4。11:分频比为84,时钟速率为(输入时钟)/8。ADLSMP采样时间配置。该位根据转换模式的选择来配罝不同的采样时间,通过调整它来适应采样周期,以允许高阻抗的精确采样或低阻抗输入的最低转换速率。在连续转换使能且不需要高转换速率的时候,长的采样时间也可以用来降低整体的功耗。

18、当ADLSMP=1时,选择为长采样时间,此时配置ADLSTS1:0可以选择长采样时间的程度。0:短采样时间。 1:长采样时间。MODE转换模式选择,用来选择ADC模块的精度模式。00: DIFF=0时,为单端8位精度转换;DIFF=1时,为差分9位精度转换并输出二进制补码。01: DIFF=0时,为单端12位精度转换;DIFF=1时,为差分13位精度转换并输出二进制补码。10: DIFF=0时,为单端10位精度转换;DIFF=1时,为差分11位粮度转换并输出二进制补码。11: DIFF=0时,为单端16位精度转换;DIFF=1时,为差分16位精度转换并输出二进制补码。ADICLK输入时钟选择。

19、该位通过选择时钟输人源来生成内部时钟ADCK。注意,当选择的时钟源为ADACK时,不必在转换开始前激活它。当选择为ALTCLK并且在转换前未激活(ADACKEN = 0)时,异步时钟会在转换开始时被激活并在结束时关闭。因此,在时钟源被重新激活的时候相应的时钟会有一个启动延时。00: 总线时钟。 01: 总线时钟2分频。10: 备用时钟(ALTCLK)。11: 异步时钟(ADACK)。2. ADC状态和控制寄存器1(ADCx_SC1n)状态寄存器ADCx_SCln分为两个寄存器,分别是SC1A和SC1B。SC1A寄存器可用于软件和硬件触发两者模式的操作。为了允许ADC的连续转换可以被内部外设触发

20、,ADC有不止一个状态和控制寄存器,每个转换对应一个寄存器。只有在硬件触发的模式下,才可以配置SC1中的SC1B寄存器。在任何一个时间点上,仅有一个SC1n寄存器为控制ADC转换的激活状态。当 SC1n正在控制转换过程时是可以更新SC1A的。向SC1A寄存器写人的时候会中止一个当前正在运行的转换。在软件触发模式下(ADTRG=0),写入SC1A寄存器会初始化一个新的转换(如果ADCH不等于全1状态)。同样,写人任何SC1n寄存器会中止当前SC1n控制的转换。由于SC1B不能用来软件触发操作,因此写入 SC1B奇存器不会初始化一个新的转换。COCO转换完成标志。该位为只读位,如果比较功能没有使能

21、(ACFE = 0)且硬件平均功能没有使能(AVGE=0),每次转换完成时该位会罝位。当比较功能使能后(ACFE=l),COCO标志仅当转换完成后的比较结果为真值时才置位。当硬件平均功能使能后(AVGE=1),COCO标志在选定的转换数目完成后置位(由AVGS位决定)。SC1A的COCO标志也会在校准序列完成后罝位。当对应的SC1n寄存器写入或者对应的Rn寄存器被读取后,COCO标志会被淸除。0: 转换没有完成。 1: 转换完成。AIEN中断使能。该位使能转换完成中断。当COCO被置位,并且AIEN为高时,一个中断会被触发。0: 转换完成中断禁用。 1: 转换完成中断使能。DIFF差分模式使能

22、。该位配置ADC运行于差分输入模式。当使能该位后,该模式自动选择差分通道、改变转换算法和转换完成的周期数。0: 单端转换。 1: 差分转换。ADCH输人通道选择。ADCH的5位用来选择输入的通道号。输人通道的解码还取决于DIFF位的值。DAD0DAD3为对应差分输人的DADPx和DADMx成对引脚。当通道选择位的所有位为1时(ADCH=11111),逐次逼近转换算法子系统会关闭。该特性可以用来明确地禁用ADC转换并且隔离通道的所有输人源。通过中止连续转换可以避免一个额外的单次转换被执行。没有必要在连续转换禁用的时候设置该位为全1以起到降低ADC功耗的作用,因为该模块会在一个转换完成后自动进入低

23、功耗模式。00000:DIFF=0,DADP0 为输入;DIFF=1,DAD0为输入。00001:DIFF=0,DADP1为输人;DIFF=1,DAD1为输入。 00010:DIFF=0,DADP2 为输入;DIFF=1,DAD2 为输入。00011:DIFF=0,DADP3 为输人;DIFF=1,DAD3 为输入。00100:DIFF=0,AD4 为输入;DIFF=1,保留状态。00101:DIFF=0,AD5 为输入;DIFF=1,保留状态。00110:DIFF=0,AD6 为输入;DIFF=1,保留状态。00111:DIFF=0,AD7为输人;DIFF=1,保留状态。01000:DIFF

24、=0,AD8 为输入;DIFF=1,保留状态。01001:DIFF=0,AD9 为输人;DIFF=1,保留状态。01010:DIFF=0,AD10 为输入;DIFF=1,保留状态。01011:DIFF=0,AD11 为输人;DIFF=1,保留状态。01100:DIFF=0,AD12 为输人;DIFF=1,保留状态。01101:DIFF=0,AD13 为输入;DIFF=1,保留状态。01110:DIFF=0,AD14 为输人;DIFF=1,保留状态。01111:DIFF=0,AD15 为输人;DIFF=1,保留状态。10000:DIFF=0,AD16 为输入;DIFF=1,保留状态。10001:

25、DIFF=0,AD17 为输入;DIFF= 1,保留状态。10010:DIFF=0,AD18 为输人;DIFF=1,保留状态。10011:DIFF=0,AD19 为输入;DIFF=1,保留状态。10100:DIFF=0,AD20 为输入;DIFF=1,保留状态。10101:DIFF=0,AD21 为输入;DIFF=1,保留状态。10110:DIFF=0,AD22 为输入;DIFF=1,保留状态。10111:DIFF=0,AD23 为输人;DIFF=1,保留状态。11000:保留状态。11001:保留状态。11010:DIFF = 0,温度传感器(单端)为输入;DIFF=1,温度传感器(差分)为

26、输入。11011:DIFF=0,带隙(单端)为输入;DIFF=1,带隙(差分)为输人。11100:保留状态。11101: DIFF=0,VREFSH为输入;DIFF=1,VREFSH(差分)为输入。电压参考的选择由SC2寄存器的REFSEL位决定。11110: DIFF=0,VREFSH为输入;DIFF=1,保留状态。电压参考的选择由SC2寄存器的REFSEL位决定。11111:模块禁用。3. ADC状态和控制寄存器2(ADCx_SC2)SC2寄存器包含转换活跃、硬件/软件触发选择、比较功能和电压参考选择等配置。ADACT转换活跃。该位指明当前是否处于一个转换或硬件平均处理中。初始化一个转换后

27、,ADACT置位;当转换完成或者中止后,该位被淸零。0:没有在转换。 1:正在转换。ADTRG转换触发选择。ADTRG选择触发类型来初始化一个转换,有软件触发和硬件触发两个类型可以选择。当选择软件触发时,通过写SC1A寄存器可以初始化一个转换。当选择硬件触发时,则随着一个ADHWTSn脉冲输人后的ADHWT 使能而触发一个转换初始化。0:软件触发选择。 1:硬件触发选择。ACFE比较功能使能。0:比较功能禁用。 1:比较功能使能。ACFGT比较功能大于使能。ACFGT根据ACREN的值来配置比较功能,以检查转换结果与对应的比较值寄存器(CV1和CV2)。为了使该位有效,则ACFE位必须置位。0

28、:如果配置小于阈值,则范围之内的和范闲之外的值将不被包含,该功能取决于CV1和CV2寄存器的值。1:如果配罝为大于或等于阈值,则范围之内的和范闲之外的值将被包含,该功能取决于CV1和CV2寄存器的值。ACREN比较功能范围使能。ACREN配置比较功能来检查转换的结果是否在 CV1和CV2寄存器的范围内或范围外。为了使ACFGT位有效则ACFE位必须置位。DMAENDMA使能。0:DMA禁用。1:DMA使能,任何ADC的转换完成后都会置位COCO标志以触发一个DMA请求。REFSEL电压参考选择,用于转换的电压参考源。00:默认电压参考源引脚对(外部引脚VREFH和VREFL)。01:备用参考对

29、(VALTH和VALTL),可以是附件的外部引脚或者内部源,取决于MCU的配置。10:保留选项。 11:保留选项。4. ADC状态和控制寄存器3(ADCx_SC3)SC3及寄存器控制ADC模块的校准、连续转换以及硬件平均功能。CAL校准。置位CAL的时候开始一个校准序列。处于校准过程中该位保持置位,校准序列完成后该位淸零。必须检查CALF位来决定校准序列的结果,一旦校准开始,校准过程便不能通过写ADC寄存器来中断,否则校准结果就是不正确的,且CALF将被罝位。S位CAL位将中断任何转换。CALF校准失败标志。在校准序列完成前,如果ADTRG=1,则任何ADC寄存器被写入或者进人任何停止模式校准

30、序列都将失败。向该位写1将会清零该位。0:校准正常完成。1:校准失败。ADC精确度规格将不保证。ADCO连续转换使能。0:如果硬件平均功能使能(AVGE=1),那么在初始化转换后,一个转换或者一组转换将开启。1:如果硬件平均功能使能(AVGE=1),那么在初始化转换后,连续转换或者多组转换将开启。AVGE硬件平均使能。0:硬件平均功能禁用。 1:硬件平均功能使能。AVGS硬件平均选择,决定多少个ADC转换来平均出一个结果。00:4个采样平均。 01:8个采样平均。10:16个采样平均。 11:32个采样平均。3. 编程要点对于ADC模块的编程,我们只要了解ADC状态控制寄存器SCI (ADC

31、Status and Control Registers 1)、ADC配置寄存器CFG1 和CFG2 (ADC Configuration Register 1、2)三个寄存器就能使用K60的ADC模块了。读者若要了解其寄存器详细信息请参见芯片手册。下面着重介绍ADC模块编程要点。1) 初始化在开始ADC之前,需要初始化ADC模块,ADC模块初始化的顺序如下。(1) 配置SIM _SCGC6, 使能ADC的时钟,使能A/D通道的引脚复用功能为ADC功能。(2) 配置ADC配置寄存器(CFG),选择用于产生内部时钟输入时钟源和分频因子,同时可以配置ADC的选择采样时间和低功耗功能。(3) 配置ADC状态和控制寄存器(SC1n),选择转换是否是

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2