S12XS系列MCU的ATD模块共有27个寄存器,包括6个ATD转换控制寄存器,2个ATD转换状态寄存器,1个ATD比较使能寄存器,1个ATD比较方式寄存器,1个ATD转换输入使能寄存器和16个ATD转换结果寄存器(其中ATDCTL0~ATDCTL5和ATDSTAT0这7个寄存器为8位寄存器,其余寄存器都是16位寄存器)。

先给出一段例程

Code:
  1. void ATD_init(void)
  2. {
  3. ATD0CTL1=0x0f;   //选择8位转换精度
  4. ATD0CTL2=0x40;  //打开CCF快速清零位,关闭外部触发输入,关闭中断
  5. ATD0CTL3=0x08;   //数据左对齐,non-fifo,转换序列长度为1
  6. ATD0CTL4=0xE3;  //采样时间为24个ATD时钟周期,ATDCLK=8MB/8=1MHz
  7. }

下面对各个寄存器做一个介绍:

(1)ATD控制寄存器0

  Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
保留 0 0 0 WRAP3 WRAP2 WRAP1 WRAP0
     
复位值 0 0 0 0 1 1 1 1

WRAP [ 3 : 0 ]:回旋通道选择位。这些选择位只有在ATDCTL5的MULT位为1的情况下,也就是多通道转换模式下,才是有效的。WRAP [ 3 : 0 ] = 0时,为保留值。WRAP [ 3 : 0 ]:= x(1<x<15)时,在多通道转换模式下,当完成对第x个模拟输入通道(ANx)的ATD转换后,下一个ATD转换通道将回绕到第0个通道AN0,而不是第N+1个通道。

(2)ATD控制寄存器1

  Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
读/写 ETRIGSEL SRES1 SRES0 SMP_DIS ETRIGCH3 ETRIGCH2 ETRIGCH1 ETRIGCH0
复位值 0 1 0 0 1 1 1 1

ETRIGSEL。外部触发源选择位。

SRES [ 1 : 0 ]:ATD转换精度选择位。

SRES1 SRES0 ATD转换精度
0 0 8位
0 1 10位
1 0 12位
1 1 保留

SMP_DIS:采样前放电控制位。1时对模拟信号采样前,释放ATD模块内部采样电容中的电荷。

ETRIGCH [ 3 : 0 ] :外部触发通道选择位。当ETRIGCH [ 3 : 0 ] 为x(0<x<15)时,选择第x个模拟输入通道ANx为外部触发信号。

(3)ATD控制寄存器2

  Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
0 AFFC ICLKSTP ETRIGLE ETRIGP ETRIGE ASCIE ACMPIE
 
复位值 0 0 0 0 0 0 0 0

AFFC:ATD转换CCF快速清零位。

ICLKSTP:停止模式内部时钟使能位。1位在停止模式下,ATD模块可以继续使用模块内部时钟ICLK进行ATD转换。0位在停止模式下,ATD模块停止当前的转换,退出停止模式后,ATD转换自动重新开始。

ETRIGLE:外部触发电平/边沿控制位。

ETRIGP:外部触发极性控制位。

ETRGLE ETRIGP 外部触发条件
0 0 下降沿
0 1 上升沿
1 0 低电平
1 1 高电平

ETRIGE:外部触发信号使能位。

ASCIE:ATD转换序列结束中断使能位。1为使能ATD转换序列结束中断,也就是说,当SCF=1时,将引发中断;0时,为禁止ATRD转换序列结束中断。

ACMPIE:ATD比较中断使能位。

(4)ATD控制寄存器3

  Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
读/写 DJM S8C S4C S2C S1C FIFO FRZ1 FRZ0
复位值 0 0 1 0 0 0 0 0

DJM:结果寄存器数据对齐位。1表示结果寄存器中的数据位右对齐,0表示结果寄存器中的数据结果为左对齐。

S8C,S4C,S2C,S1C:A/D转换序列长度定义位,这4位定义了一个A/D转换序列的长度,默认S4C为1,即默认转换序列的长度为4。

S8C S4C S2C S1C 转换序列长度
0 0 0 0 8
0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
0 1 1 0 6
0 1 1 1 7
1 x x x 8

FIFO:结果寄存器先进先出模式位。1表示先进先出模式,转换结果依次放在连续的结果寄存器中,当使用完最后一个结果寄存器后,会重新回到第一个结果寄存器存放转换结果。可以根据完成标志位判断哪个寄存器中的结果数据有效。0表示非先进先出模式。A/D转换结果在寄存器中的存放位置和转换序列中的顺序相关联,简单的说,第一次转换的结果放在第一个结果寄存器中,第二次转换的结果放在第二个结果寄存器中,依次类推。

FRZ [ 1 : 0 ]:后台调试冻结使能位。当调试程序时,如果遇到断点,有时希望此时ATD模块停止。

FRZ1 FRZ0 工作状态
0 0 继续转换
0 1 未定义
1 0 完成当前转换,然后暂停
1 1 立即暂停

飞思卡尔单片机AD模块简述(1)相关推荐

  1. 飞思卡尔MC9S12X PIT模块

    今天带着大家学习了解下飞思卡尔MC9S12XS PID模块. PIT模块概述 周期性中断定时器(Periodic Interrupt Timer,PIT)模块是一组24位的定时器,由8位微定时器和16 ...

  2. 飞思卡尔K60nbsp;FTM模块详…

    原文地址:飞思卡尔K60 FTM模块详解[二] 作者:杨家二少 1.5.3 FTM功能详解 1.         FTM模块的时钟 FTM模块的核心是一个16位计数器,该计数器的时钟来源可设置(由FT ...

  3. 飞思卡尔单片机教程(1)——从安装开始

    放假了有木有!是不在家特别闲?是不是放假前立志学单片机来着?如果你拿到了天大精仪荣誉出品的JM60开发板,而且你还带回家了.. 结果安装起来好麻烦!!! WIN7 64位不可以用!USB3.0接口插上 ...

  4. 飞思卡尔单片机PLL时钟总线模块

    要设定PWM模块首先要确定片内总线时钟,MC9S12XS系列单片机增加了时钟产生器模块,锁定内部频率更高的压控振荡器VCO频率,作为系统时钟,单片机的内部时钟可达80MHz,片内总线时钟可达40MHz ...

  5. 飞思卡尔单片机DZ60---实时中断

    //RTI实时中断实验 //RTC模块包括一个状态和控制寄存器.一个8位计数寄存器和一个8位模数寄存器 //实时中断功能用来产生周期性中断.RTI有三个可选时钟源:LPO 1KHZ内部振荡器,32KH ...

  6. 飞思卡尔单片机编程与c语言,飞思卡尔单片机高效C语言编程(中文)

    高效C语言编程实验,包括:CodeWarrior的使用.中断.数据段的定义.常量数据段.变量.位操作.数组.指针.函数内的自变量.优化方法.Manual Optimization(手工优化).Proc ...

  7. 飞思卡尔单片机PE开发工具硬件及软件

    原文链接: http://blog.sina.com.cn/s/blog_8ebff8d7010121tm.html 1.HC(S)08系列 开发机硬件:USB-ML-12 CYCLONE PRO U ...

  8. 飞思卡尔单片机DZ60---EEPROM读写

    //向EEPROM中写入数据,然后读出数据,赋值给PORTD,点亮相应的LED灯 #include <hidef.h> /* for EnableInterrupts macro */ # ...

  9. 飞思卡尔16位单片机(十五)—— 如何批量烧写芯片

    我们在进行飞思卡尔单片机开发时,一般使用CodeWarrior软件和usbdm调试器进行.但是在实际生产过程中,采用这种方式烧写芯片效率比较低,而且很多情况下,程序的源码不希望对生产人员开放,本文就是 ...

最新文章

  1. Android 编译报错:Could not get resource
  2. 导向滤波python_导向滤波(Guided Filter)简要介绍
  3. java---switch
  4. SpringMVC源码阅读系列汇总
  5. WebSocket介绍
  6. Unity Tiling和offset的使用
  7. Python测试转岗网络安全测试,挑战年薪30W+
  8. 博文视点大讲堂第12期、第13期讲座文件下载
  9. PHP安装OPENSSL扩展模块
  10. 【笔记】软件质量保证(Software Quality Assurance)复习笔记
  11. 华为云PBX_基于华为云客服平台打造的比特百灵鸟AI管家解决方案发布
  12. 电梯实时智能监测与诊断:应用人工智能的案例研究和解决方案
  13. 实际经历告诉你,写一本技术书能赚多少钱(转)
  14. 5G NR——传输信道、逻辑信道
  15. 大众点评 mtgisg分析
  16. udk开发-稀里糊涂
  17. Filter Solutions 10.0+破解
  18. bash参考手册之三(基本的Shell特性)续二
  19. 老年食堂:让社区生活充满“幸福滋味”
  20. 详细设计说明书-模板(referrence)

热门文章

  1. JS面向对象编程(OOP)
  2. windows系统redis和ARDM(redis客户端)下载安装步骤【非常详细】
  3. 【157.1】golang+beego零基础入门实践教程it营大地
  4. python中的imp模块——让引用模块更加简单
  5. iKcamp出品|微信小程序|小试牛刀(视频)+发布流程|基于最新版1.0开发者工具初中级教程分享
  6. windows LSP 实现及多个lsp兼容安装的几个坑
  7. Blender2.9基础七:外部插件篇
  8. java对象转Json学习
  9. 软件工程(4)--螺旋模型
  10. sftp上传和下载文件