飞思卡尔单片机 AD功能模块.ppt_第1页
飞思卡尔单片机 AD功能模块.ppt_第2页
飞思卡尔单片机 AD功能模块.ppt_第3页
飞思卡尔单片机 AD功能模块.ppt_第4页
飞思卡尔单片机 AD功能模块.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第六章 MC9S12单片机AD模块,山东大学控制科学与工程学院 2008.7,模数转换ATD模块,A/D转换的基本概念 模数转换定义: 将时间连续、幅值也连续的模拟信号转换为时间离散、幅值也离散的数字信号,模数转换精度 模数转换精度是指二进制的位数。9S12的AD模块有两种精度可选: 8位精度(0255) 10位精度(01023) (2)转换速率:完成一次由模拟转换成数字所需的时间的倒数。 (3)采样时间:两次转换之间的间隔。采样速率必须小于或等于转换速率。,9S12的A/D模块主要特性,8位/10位可选择的转换精度 5/256= 速度快 每进行一次10位的转换,仅仅需要7uS 采样时间可编程

2、 左对齐/右对齐的数据格式,有符号/无符号的转换结果; 转换完毕可产生中断; 使用PAD7外部触发控制。,大部分的freescale的MCU都带有内置的AD转换模块。,转换完毕中断 转换队列长度1-8(或1-16) 不间断转换模式 多通道扫描,AD口。ATD子系统输入或通用输入引脚。复位后默认为通用I/O输入引脚并且只能做输入 对应于两个独立的ATD模块:ATDm (m=0或1) 。,9S12的A/D模块外部引脚,VDDA(59)、VSSA(62): A/D 模块提供电源。实验板上,VDDA接到VCC,VSSA接到GND。单独的供电引脚,可以不受其他模块的影响。 VRH(60)、VRL(61)

3、: A/D 转换模块的参考高电压和参考低电压。 模拟输入信号的电压值在VRH-VRL之间才能得到正确的转换结果 VRH应大于VRL,且VRH和VRL应在VDDA-VSSA之间。 AN6/PAD6 - AN0/PAD0(51-57): 模拟量输入通道6-0,通用数字输入端口。不可以被用作外部触发引脚。 AN7/ETRIG/PAD7(58): 模拟量输入通道7,通用数字输入端口。它也可以被配置为A/D 转换的外部触发引脚。,寄存器,4个控制寄存器 ATDCTL2、3、4、5 2个状态寄存器 ATDSTAT0、1 8个结果寄存器 ATDDRx,控制寄存器2ATDCTL2,电源、中断、外部触发 ADP

4、U:A/D模块的电源管理 1=正常模式 0=低功耗模式 AFFC:标志位快速清零。 1=对转换结果寄存器访问会自动清除标志位 0=正常模式,访问结果寄存器前读状态寄存器1可以清除转换完成标志CCF。,控制寄存器2ATDCTL2,AWAI 1=等待时进入低功耗模式,0=等待时ATD保持运行。 ETRIGLE、ETRIGP:外部触发的边沿/极性控制。 ETRIGE:上两位的使能位。允许在PAD7输入外部触发信号,允许在外部触发到来的同时进行采样和AD转换。 1=允许,0=禁止。 注意:当使用外部触发式,ATD通道7将不能作为AD转换通道来使用,控制寄存器2ATDCTL2,ASCIE:A/D队列转换

5、完成中断允许。 1=允许,并使标志位ASCIF=1 0=禁止。 ASCIF:A/D 队列转换完成中断标志。 如果ASCIE=1,此标志位和SCF拥有相同的含义。 此位只能读取到0,写入无效。,控制寄存器3ATDCTL3,S8C、S4C、S2C、S1C:定义转换队列的长度。默认长度为4。,控制寄存器3ATDCTL3,FIFO:结果寄存器先进先出模式。 1=FIFO模式,转换结果是连续存放的 0=非FIFO模式,转换结果放在对应的寄存器中。 FRZ1、FRZ0:背景调试冻结模式允许。这两个控制位就决定了,当遇到断点时,A/D 模块怎样反应。,控制寄存器3ATDCTL3,FRZ1、FRZ0:背景调试

6、冻结模式允许。这两个控制位就决定了,当遇到断点时,A/D 模块怎样反应。,控制寄存器4ATDCTL4,转换频率的预分频因子、采样时间和AD转换的精度。 SRES8:转换精度选择。 1=8位精度(0255) 0=10位精度(01023),控制寄存器4ATDCTL4,SMP1、SMP0:采样时间选择。 采样时间分为两个阶段 第一阶段长2个AD时钟周期 第二阶段由SMP1、SMP0决定,控制寄存器4ATDCTL4,PRS4、PRS3、PRS2、PRS1、PRS0: A/D 时钟分频因子的选择。 A/D时钟的计算公式如下图。 最高可达总线时钟的一半。 注意,A/D模块的时钟频率要在500KHz和2MH

7、z之间,所以在选择分频因子时一定要注意。,控制寄存器5ATDCTL5,DJM:16位结果寄存器数据的对齐方式。 1=右对齐;0=左对齐。 DSGN:结果寄存器中数据有无符号。 1=有符号,0=无符号。 SRES8、DJM 和DSGN 三位配合起来使用,决定了结果寄存器中数据的格式,一共有8种情况。,控制寄存器5ATDCTL5,SCAN:连续转换队列的模式。此位定义了A/D 转换是连续进行还是只进行一次。 1=连续队列转换 0=单次队列转换。,控制寄存器5ATDCTL5,MULT 0 时:单个通道采样。ATD 的队列控制器只从指定的输入通道进行采样,可以使用ATDCTL5寄存器中的CC、CB 和

8、CA 三位来指定需要采样的模拟量输入通道。 S8C、S4C、S2C 和S1C 控制位来指定转换次数。 1 时:对多个的通道进行采样。每次采样的通道数量由S8C、S4C、S2C 和S1C 控制位来指定,第一个采样通道由CC、CB 和CA 控制位来指定,其它采样通道由通道选择码CC、CB 和CA 的增加来决定。 对ATDCTL5进行写操作会终止当前队列的转换,开始一个新的队列转换。,状态寄存器0ATDSTAT0,SCF:队列完成标志。 置1条件: 当一个队列转换完毕后置位; 如果处在SCAN模式,则每次转换完毕都置位。 清0条件: 对此位写1; 写ATDCTL5,开始一个新的对列; ATDCTL2

9、的AFFC=1(标志快速清除)且读结果寄存器。,状态寄存器0ATDSTAT0,ETORF:外部触发溢出标志。 置位条件: 处于边沿触发模式时,如果第一个边沿触发的队列转换正在进行,而这时却检测到了第二个有效的边沿。 清零条件: 对此位写1; 写控制寄存器2、3或4,终止当前队列; 写控制寄存器5,开始一个新队列。,状态寄存器0ATDSTAT0,FIFOR:FIFO 溢出标志。1=有FIFO溢出,0=无FIFO溢出。 如果转换完成标志(CCF)在没有被清零时结果寄存器被写入新值(覆盖),则置位。 清零条件:对此位写1;写控制寄存器5,开始一个新队列。 CC2、CC1、CC0:转换计数器。 代表了

10、哪个结果寄存器将要接收当前转换的结果。 非FIFO 模式(FIFO=0),这3 位的初始值为0,计数完成后又会回到初始值。 FIFO 模式(FIFO=1),转换计数器处于循环计数状态。,状态寄存器1ATDSTAT1,CCFx: 1=完成队列中的第x 个转换;在完成队列转换中的某个AD转换时,相对应的CCFx位就会被置位,结果存储在ATDDRx 中。 0=转换未完成。 清零条件: 写控制寄存器5,开始一个新队列; AFFC=1,对结果寄存器访问; AFFC=0,首先读状态寄存器1,然后访问结果寄存器。,输入允许寄存器-ATDDIEN,IENx:通道x 输入数字允许。 这8个控制位控制了从输入端口

11、到数据寄存器的数字输入缓冲区。1=缓冲区有效;0=无效。 当端口作为模拟量输入端口时,也可以打开数字缓冲区,但是会增加功耗。,数字输入寄存器PORTAD,PTADx:A/D 模块的第x 个通道(ANx)的数字输入。当对应通道的数字输入允许时,此位返回了相应引脚上的电平逻辑值。 注意,引脚上的电平必须和VRH或VRL匹配,否则将返回一个不确定的值。 如果响应通道的输入缓冲区无效(IENx=0),读取操作只返回1。 注意,PORTAD端口模拟量和数字量是可以复用的。当输入模拟量时,会把模拟信号直接送到A/D 转换器;当输入数字量时,会把外部数字信号送到PORTAD 寄存器以供读取。,A/D转换结果

12、寄存器ATDDRx,ATDDR0ATDDR7:07通道的结果寄存器。A/D转换的结果需要从这几个寄存器中读取。每个16位寄存器可以分成2个8位的寄存器来读取,分别为ATDDRxH和ATDDRxL。 注意转换结果在这8个16位寄存器中的存储格式。以10位左、右对齐为例: 左对齐10位数据 右对齐10位数据 另外还要注意有符号数据和无符号数据的区别。,A/D模块的中断系统,ATD模块只有一个中断源-队列转换完毕中断 ATDCTL2寄存器 ASCIE:A/D 队列转换完成中断允许。 SCF:A/D 队列转换完成中断标志。,利用MCU的ATD模块进行AD转换实验。ATD通道0接电位器,通过通道0采集模

13、拟量。,实例,unsigned int result; void main(void) EnableInterrupts; ATD0CTL2=0 x80; /使能AD,正常清除标志,不使用外部触发 ATD0CTL3=0 x08; /只转换一个通道 ATD0CTL4=0 x25; /10位精度,12分频 ATD0CTL5=0 xb0; /右对齐,无符号,扫描模式,使用通道 0 for(;) while(!ATD0STAT0_SCF); /等待当前队列转换完成 result=ATD0DR0;/ 读结果寄存器中的值以便使用 ATD0STAT0_SCF=1;/清除队列完成标志 /*以下是其他代码*/ ,练习,通道15,即ATD1的07通道。 练习1:采用查询方式,只转换一个通道,队列长度为1,非FIFO模式,10位精度,12分频,右对齐、无符号、扫描模式不断转换。 练习2:采用中断方式,只转换一个通道,队列长度为1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论