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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

freescalemc9s12xs128adc.docx

1、freescalemc9s12xs128adcFREESCALE MC9S12XS128 ADC单位:安徽师范大学物理与电子信息学院通信工程系作者: 刘永学和PWM模块一样,下面来总结一下128的另一个模块,AD模块,这个模块用的较多,自己着这个模块还有一些理解的也不是那么的透彻,也希望通过这次的整理能够把自己的思路重新来整理一下。言归正传!从这个模块的寄存器开始来!12中A/D转换共有两个方块,每个方块各有8个输入通道,使用时应以标头ATD0或ATD1标识。8/10 /12位精度;7 us, 10-位单次转换时间.;采样缓冲放大器;可编程采样时间;左/右对齐, 有符号/无符号结果数据;外部触

2、发控制;转换完成中断;模拟输入8通道复用;模拟/数字输入引脚复用;1到8转换序列长度;连续转换模式;多通道扫描方式。ATD模块有模拟量前端、模拟量转换、控制部分及结果存储等四部分组成。其中模拟前端包括多路转换开关、采样缓冲器、放大器等,结果存储部分主要有8个16位的存储器和反映工作状态的若干标志位。要完成ATD转换的特定功能,必须对相关寄存器有所了解。在12AD模块中,ATDCTL2,3,4,5为常用的控制寄存器,ATDSTAT0,1为常用的两个状态控制器,ATDDR0-7为八个结果寄存器。ATD工作时,由CPU发出启动命令,然后经采样、模数转换,最后将结果保存到相应的寄存器。ATD每次启动要

3、进行若干个扫描循环,每个扫描循环称为一个转换序列,每个转换序列能包含1-8最多8次转换,由控制寄存器ATDCTL3中的S8C/S4C/S2C/S1C等位来决定。这些转换序列可以针对某个单一通道,也可以针对几个相邻通道,每个通道可以使外部模拟输入,也可以是参考电压或其他保留信号,ATD可支持多种不同的通道信号组合。每次转换包括哪些通道由ATDCTL5中的CC、CB、CA决定的。对单一通道连续进行多次转换有利于实现滤波,一次转换多个通道则可以通过一次启动命令快速浏览多个信号,中间无需CPU干涉,节约了CPU时间。ATD的运行方式分为单次和连续运行两种。在单次方式下,每个转换序列完成后,寄存器ATD

4、STAT中的SCF置位,然后ATD模块暂停。在连续方式下,转换以转换序列为单位连续进行,当第一个转换序列完成后,SCF置位,同时ATD模块开始下一个转换序列。在上述两种方式下,每个通道的转换结果进入到对应结果寄存器后,寄存器ATDSTAT1种对应的CCF位置1,对存放转换结果的寄存器进行读操作后,CCF位将自动清0。转换过程的启动是通过写入寄存器5ATDCTL5实现的。ATD转换所需要的时钟周期数是固定不变的,但是采样时间和时钟频率可以通过ATDCTL4在一定范围内选择,因此转换时间也可以选首先认识一下该模块的构造 接下来就看一下该模块的寄存器:ADC模块的寄存器值较多,学习起来较为麻烦。1、

5、 AD控制寄存器0(ATDCTL0)WRAP3WRAP0:回绕通道选择位。在任何时候都可以进行读写操作不过这些位只有在ATDCTL5的MULT为1的情况下,就是多通道转换模式下才有效。2、 AD控制寄存器1(ATDCTL1)其中D7位ETRIGESL位外部触发源选择,这个寄存器主要用的是ETRIGCH0、ETRIGCH1、ETRIGCH2 、ETRIGCH3 、外部触发通道选择SMP_DIS 采样放电控制位、SRES1、SRES0 这两位为采样精度选择位当这两位分别00是为8位采样精度、01时为10为采样精度、10时为12位的采样精度!在使用时基本上设置好采样精度就行了。3、AD控制寄存器2(

6、ATDCTL2) AFFC:AD快速清所有标志位1 = 快速标志位清零顺序每次读取结果寄存器自动清零0 = 正常标志位清零顺序需要手动对状态标志位清零ICLKSTP:停止模式中内部时钟位,该位在停止模式中使能AD转换ETRIGLE、ETRIGP:外部触发信号触发条件选择位ETRIGE:外部触发信号使能位,1时使能外部触发信号,0时禁止外部触发信号ASCIE:AD完成中断使能位。为1时AD转换结果时使能中断、为0时AD转换结果不会引发中断ACMPIE:AD比较中断使能位,为1时使能AD比较中断请求,为0时禁用AD中断请求。3、 AD控制寄存器3(ATDCTL3)这个寄存器相对用得较多,理解起来也

7、不太容易,DJM:结果寄存器数据对齐位0左对齐,1右对齐S8CS1C:AD转换序列的长度选择位,这些位控制每一个AD的转换序列长度下面是控制长度列表。FIFO:结果寄存器先进先出模式选择位,为0时非先进先出模式,根据装换序列的先后顺序将装转换结果放入结果寄存器。在这里需要做一个说明,就是这个部分采样值存放的问题,也就是按顺序放到结果寄存器里面,为1时先进先出模式,转换结果依次顺延放到结果寄存器中,当使用完最后一个结果寄存器后重新回到第一个结果寄存器。FRZ0-FRZ1:背景调试冻结使能位这两位为00AD转换继续工作,01完成当前的转换后进入冻结模式,10时保留值。4、 AD控制寄存器4(ATD

8、CTL4)这三个位采样时间选择位PRS4:0:AD转换时钟预分频因子计算公式为:fATDCLK= Fbus/(2(PRS+1))注意使用时应使fATDCLK的范围在0.25M到8.3M5、 AD控制寄存器5(ATDCTL5)MULT为0时:单个通道采样。ATD 的队列控制器只从指定的输入通道进行采样,可以使用ATDCTL5寄存器中的CC、CB 和CA 三位来指定需要采样的模拟量输入通道。S8C、S4C、S2C 和S1C 控制位来指定转换次数。1 时:对多个的通道进行采样。每次采样的通道数量由S8C、S4C、S2C 和S1C 控制位来指定,第一个采样通道由CC、CB 和CA 控制位来指定,其它采

9、样通道由通道选择码CC、CB 和CA 的增加来决定。6、状态寄存器0(ATDSTAT0) FIFOR:FIFO 溢出标志。1=有FIFO溢出,0=无FIFO溢出。如果转换完成标志(CCF)在没有被清零时结果寄存器被写入新值(覆盖),则置位。清零条件:对此位写1;写控制寄存器5,开始一个新队列CC3、CC2、CC1、CC0:转换计数器。 代表了哪个结果寄存器将要接收当前转换的结果。 非FIFO 模式(FIFO=0),这4位的初始值为0,计数完成后又会回到初始值。 FIFO 模式(FIFO=1),转换计数器处于循环计数状态7、状态寄存器2(ATDSTAT2)CCFx: 1=完成队列中的第x 个转换

10、;在完成队列转换中的某个AD转换时,相对应的CCFx位就会被置位,结果存储在ATDDRx 中。0=转换未完成。 清零条件: 写控制寄存器5,开始一个新队列; AFFC=1,对结果寄存器访问; AFFC=0,首先读状态寄存器1,然后访问结果寄存器8、AD转换结果寄存器(ATDDRn) 单片机120引脚:ATDDR0ATDDR15:015通道的结果寄存器。A/D转换的结果需要从这几个寄存器中读取。每个16位寄存器可以分成2个8位的寄存器来读取,分别为ATDDRxH和ATDDRxL。 注意转换结果在这16个16位寄存器中的存储格式。以10位左、右对齐为例: 左对齐10位数据 右对齐10位数据 另外还

11、要注意有符号数据和无符号数据的区别单片机80引脚:ATDDR0ATDDR7:07通道的结果寄存器。A/D转换的结果需要从这几个寄存器中读取。每个16位寄存器可以分成2个8位的寄存器来读取,分别为ATDDRxH和ATDDRxL。 注意转换结果在这8个16位寄存器中的存储格式。以10位左、右对齐为例: 左对齐10位数据 右对齐10位数据 另外还要注意有符号数据和无符号数据的区别。AD模块用的差不多就是这些寄存器,我列举一下自己在AD模块编写的一点初始化程序,和总结一下AD初始化编程的一些简单的步骤。void ADC_Init(void) ATD0CTL1=0x40;ATD0CTL2=0x40; /禁止外部触发, 中断禁止ATD0CTL3=0xB0; /a右对齐无符号,每次转换6个序列, No FIFO, Freeze模式下继续转ATD0CTL4=0x0f;ATD0CTL5=0x30;ATD0DIEN=0x00; /禁止数字输/禁止数字输入初始化编程的一些步骤:1ATD启动;2.按照要求对转换为数、扫描方式、采样时间、时钟频率及标志检查等方式进行设置;也即根据自己的需要对AD的控制寄存器进行设置即可,最后就是禁止AD!

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1