飞思卡尔单片机AD模块简述(1)

本文详细介绍了S12XS系列微控制器中的模拟数字转换器(ATD)模块及其27个寄存器的功能。通过具体实例,讲解了如何设置ATD的转换精度、采样时间和触发方式等参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

先给出一段例程

Code:
  1. voidATD_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

Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
保留000WRAP3WRAP2WRAP1WRAP0
复位值00001111

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

Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
读/写ETRIGSELSRES1SRES0SMP_DISETRIGCH3ETRIGCH2ETRIGCH1ETRIGCH0
复位值01001111

ETRIGSEL。外部触发源选择位。

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

SRES1SRES0ATD转换精度
008位
0110位
1012位
11保留

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

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

(3)ATD控制寄存器2

Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
0AFFCICLKSTPETRIGLEETRIGPETRIGEASCIEACMPIE
复位值00000000

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

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

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

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

ETRGLEETRIGP外部触发条件
00下降沿
01上升沿
10低电平
11高电平

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

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

ACMPIE:ATD比较中断使能位。

(4)ATD控制寄存器3

Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
读/写DJMS8CS4CS2CS1CFIFOFRZ1FRZ0
复位值00100000

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

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

S8CS4CS2CS1C转换序列长度
00008
00011
00102
00113
01004
01015
01106
01117
1xxx8

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

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

FRZ1FRZ0工作状态
00继续转换
01未定义
10完成当前转换,然后暂停
11立即暂停

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值