飞思卡尔MC9S12XS128AD转换.docx

上传人:b****9 文档编号:25353834 上传时间:2023-06-07 格式:DOCX 页数:20 大小:55.24KB
下载 相关 举报
飞思卡尔MC9S12XS128AD转换.docx_第1页
第1页 / 共20页
飞思卡尔MC9S12XS128AD转换.docx_第2页
第2页 / 共20页
飞思卡尔MC9S12XS128AD转换.docx_第3页
第3页 / 共20页
飞思卡尔MC9S12XS128AD转换.docx_第4页
第4页 / 共20页
飞思卡尔MC9S12XS128AD转换.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

飞思卡尔MC9S12XS128AD转换.docx

《飞思卡尔MC9S12XS128AD转换.docx》由会员分享,可在线阅读,更多相关《飞思卡尔MC9S12XS128AD转换.docx(20页珍藏版)》请在冰豆网上搜索。

飞思卡尔MC9S12XS128AD转换.docx

飞思卡尔MC9S12XS128AD转换

飞思卡尔MC9S12XS12技术手册(AD转换部分)

英文资料:

飞思卡尔MC9S12XS256RMVW技术手册

1.1XS12系列单片机的特点

XS12系列单片机特点如下:

-16位S12CPU

一向上支持S12模糊指令集并去除了其中的MEM,WAV,WAVR,REV,REVW五条指令;

一模块映射地址机制(MMC);

一背景调试模块(BDM);

-CRG时钟和复位发生器

—COP看门狗;

—实时中断;

-标准定时器模块

一8个16位输入捕捉或输出比较通道;;

—16位计数器,8位精密与分频功能;

—1个16位脉冲累加器;

•周期中断定时器PIT

—4具有独立溢出定时的定时器;

一溢出定时可选范围在1到2A24总线时钟;

—溢出中断和外部触发器;

•多达8个的8位或4个16位PWM通道

一每个通道的周期和占空比有程序决定;

—输出方式可以选择左对齐或中心对其;

—可编程时钟选择逻辑,且可选频率范围很宽;

-SPI通信模块

—可选择8位或16位数据宽度;

一全双工或半双工通信方式;

一收发双向缓冲;

一主机或从机模式;

一可选择最高有效为先输出或者最低有效位先输出;

•两个SCI申行通信接口

一全双工或半双工模式

-输入输出端口

一多达91个通用I/O引脚,根据封装方式,有些引脚未被引出;

一两个单输入引脚;

-封装形式

—112引脚薄型四边引线扁平封装(LQFP);

一80引脚扁平封装(QFP);

—64引脚LQFP封装;

-工作条件

一全功率模式下单电源供电范围3.15V到5V;

—CPU总线频率最大为40MHz

—工作温度范围-40C到125C

第十章模拟一数字转换

10.1介绍

ADC12B16C是一个16通道,12位,复用方式输入逐次逼近模拟一数字转换器。

ATD的精度由电器规格决定。

10.1.1特点

•可设置8位、10位、12位精度

•在停止模式下,ATD转换使用内部时钟

-转换序列结束后自动进入低耗电模式

-可编程采样时间

-转化结果可选择左对齐或右对齐

-外部触发控制

-转换序列结束后产生中断

•模拟输入的16个通道为复用方式

•可以选择VRH、VRL、(VRL+VRH)/2特殊转换方式

•转换序列长度1到16

-可选择连续转换方式

-多通道扫描

•任何AD通道均可配置外部触发功能,并且可选择4种额外的触发输入。

4种额外的触发输入可以为芯片内部或外部触发。

具体根据使用用途选择何种触发方式。

-当选用多通道采样方式时可配置从哪个通道开始先采样。

10.1.2选择方式

10.1.2.1转换模式

可编程转换模式,可选择单通道,多通道,单序列和多序列连续转换模式。

10.1.2.2MCU选择模式

-停止模式

—ICLKSTP=0(inATDCTL2register)

进入订制模式会终止当前转换序列。

如果转换序列取消,退出停止模式后重新开始转换序列。

这与向控制寄存器ATDCTL5写入新值时重新开始新的转换序列具有相同的效果。

—ICLKSTP=1(inATDCTL2register)

AD转换序列在停止模式下继续执行,其时钟使用通用时钟ICLK作为AD转换

时钟。

当转换模式从运行到停止模式转换时,对于这时产生的转换结果或阀值比较结果将不存入结果寄存器。

CCF标志位置位,比较结束。

当在停止模式中转换时,如果要退出停止模式时,AD转换须有一个停止恢复时间tATDSTPRC将总线时钟切回到AD时钟。

这段时间内不要更改AD转换寄存器。

等待模式

ADC12B16在停止模式时,与在正常转换模式时功能相同。

等待模式为省电模式,进入等待模式时需要停止当前转换序列。

-冻结模式

进入冻结模式是,ADC23B16C会有继续转换,结束和停止AD转换三种方式,具体取决丁FRZ1和FRZ0控制位的设置。

冻结模式有助丁调试与仿真。

10.1.3结构图(略见MC9S12XS256RMV1第270页)

10.2信号描述

以下列出的是ADC12B16C模块的全部输入引脚。

10.2.1.1ANx(x=15~0)

这些引脚为模拟输入引脚,也可以配置为数字端口或ATD的外部触发引脚。

10.2.1.2ETRIG3,ETRIG2,ETRIG1,ETRIG0

可配置为ATD的外部触发信号。

根据具体情况选择。

10.2.1.3VRH,VRL

模拟转换参考电压

10.2.1.4VDDA,VSSA

为ADC12B16C的电源

10.3存贮器页面和寄存器定义

此部分介绍了ADC12B16C的全部寄存器

10.3.1内存图(略见271页)10.3.2寄存器描述

读操作:

任何时候

写操作:

任何时候,特殊模式下Bit7总置0。

274Mo

ADC12B16C

WRAP[3-0]循环转换起始通道控制位,具体配置见

10.3.2.2AD转换控制寄存器1(ATDCTL1)

写入时会终止当前转换序列

读操作:

任何时候

写操作:

任何时候

ModuleBase十DxDDDI

76

5

4

321

0

R

W

ETRJGSEL

SRES1

SRESD

SMP_DIS

ETRIGCH3

ETRIGCH2

ETRIGCHI

ETRIGCHD

冶t

0

a

1

1

1

1

1

 

Frgure10-4.AIDControlRegister1(ATDCTL1)

控制位

描述

ETRIGSEL

这个控制位用于选择外部触发源为AD专换通道之一或是

ETRIG3-0之一。

外部触发选择位具体见276页的表10-5

SRES[1:

0]

AD专换精度选择位见275页表10-4

SMP_DIS

采样前放电控制位

0米样前不放电

1内部米样电容在采电。

此操作会占用物个ATD寸钟周期。

ETRIGCH[3:

0]

这三个位控制AD专换通道或ETRIG3-0的其中某个输入作为外部

触发信号,

具体见表10-5

表10-3ATDCTL1控制寄存器描述

10.3.2.3AD转换控制寄存器2(ATDCTL2)

写入时会终止当前转换序列

Modube十0x0002

7

fl

9

4

3

2

1

0

a

AFFC

►CLKSTP

ETR1GLE

ETRIGP

ETRIGE

ASCIE

ACMPIE

0

0

a

0

0

0

0

UnimplementedorRi&gerved

Fioure105.ATDControlRegister2(ATDCTL2)

读操作:

任何时候

写操作:

任何时候

控制位

描述

AFFC

0CCF[N]清零后个为零

1将所有ATD专换结束标志改变为快速清零模式

ICLKSTP

这个位控制AD专换进入停止模式。

0如果AD专换序列正在停止模式进行时,实际的转换序列将自动停

止并且

当退出停止模式是复位

1AD转换在停止模式是继续转换

ETRIGLE

此位控制转换灵敏度见表10-7

ETRGP

同上

ETRGE

0外部触发禁止

1允许外部触发

ASGIE

0当有中断请求时停止转换

1当SCF=1时AD转换允许在有中断请求时进行

ACMPIE

如果序列自动比较启动,这个控制位将比较中断使能。

0AD比较在有中断时禁止

1AD比较在有中断时允许

表10-6ATDCTL2控制寄存器描述

10.3.2.4AD转换控制寄存器3(ATDCTL3)

写入时会终止当前转换序列

读操作:

任何时候

写操作:

任何时候

 

控制位

描述

DJM

0输出序列选择左对齐

1输出序列选择右对齐

S8C,S4C

这四位是控制具体哪一个通道作为转换通道见表

10-10

S2C,S1C

如果这个位置0,即无先进先出,AD专换结果将存入相应转换通道的结构寄存器。

如果该位置1,则转换序列结果存入第一个转换通道对

FIFO应的结果寄存器之中。

0转换结果放置在的转换通道相对应的结果寄存器中

1转换结果放置在循环方式下指定的第一个结果寄存器中

FRZ[1:

0]这两位控制AD专换是否在冻结模式下继续转换,详细设置看表10-11

表10-8ATDCTL3控制寄存器描述

10.3.2.5AD转换控制寄存器4(ATDCTL4)

写入时会终止当前转换序列

读操作:

任何时候

写操作:

任何时候

ModuleBase+OaOOM

7

e

s

-一坦

2

1

D

R

W

SMP2

SMP1

SMPD

PRS[4fl]

Rewt

0

0

0

0

0

1

D

1

Fiaure10-7.AIDControlRefbter4(ATDCTL4J

 

控制位

描述

SMP[2:

0]

这三位控制AD专换序列所占转换周期的长度,见表10-13

PRS[4:

0]

这五位用来计算AD专换频率的公式见表10-12

表10-12ATDCTL4控制寄存器描述

10.3.2.6AD转换控制寄存器5(ATDCTL5)

写入时会终止当前转换序列

读操作:

任何时候

写操作:

任何时候

ModuleBase*

T854|3Z

0

&C

SCAN

IVtULT

CD

cc

ce

CA

ResetD□0D□DD0

FiguretO-B.AIDControlRegister5(ATDCTL5)

控制位

描述

SC

0特殊通道转换禁止

1特殊通道转换允许

SCAN

0单独转换序列

1扫描模式中转换序列为连续转换

MULT

0单一通道转换

1多通道转换

cdcccb,ca

这几个位是用来选择具体哪一个通道作为转换通道,具体见表

10-15

表10-14ATDCTL5控制寄存器描述

10.3.2.7AD状态寄存器0(ATDSTAT0)

写入时会终止当前转换序列

读操作:

任何时候

写操作:

任何时候(对CCF[3:

0]无意义)

ModuleBase+0x0006

7S

5

4

321

0

RQ

CCJCC2CC1

cco

oLr

rir

W

0Q

0

0

0QQ

0

=UnimpiementedorReserved

 

Figure10-9.ATDStatusRegister0(ATDSTATO)

描述

SCF

0表小转换序列没有兀成

1转换序列完成

ETORF

0没有外部触发溢出错误

1外部触发有溢出错误

FIFOR

0没有溢出发生

1又溢出放生

CC[3:

0]

这四个位为二进制的转换计数器,它们只指向结果寄存器

6

表10-16ATDSTAT0状态寄存器描述

10.3.2.8ATDCompareEnableRegister(ATDCMPE)

写入时会终止当前转换序列

读操作:

任何时候

写操作:

任何时候

Module*■OxDDOB

15

13

11

w

1

S

7

9

5

4

3

2

1

D

R

W

CMPE[15:

0]

Reset

D

0

D

0

0

0

0

Q

0

0

0

b

0

Figure10d0BATDCompareEnableRegister(ATDCMPE)

控制位

描述

CMPE[15:

0]

0没有自动比较

1和转换序列结果进行自动比较

表10-17ATDCMPE寄存器描述

10.3.2.9ATDStatusRegister2(ATDSTAT2)

写入时会终止当前转换序列

读操作:

任何时候

写操作:

任何时候(对转换序列无影响)

ModuleBase+OxDOTi

15

13

11

10

a

B

7

6

5

32

1

0

CCF

[15^

0

Q

0

0

D

0

0

0

0

°

00

D

0

hUnwnplemBntHiorReserwd

Figure10-11.ATDStatusRegister2(ATD5TAT2]

这16个位是是转换结束标志,当转换结束时置1,否则为0

10.3.2.10AD中断允许寄存器(ATDDIEN)

写入时会终止当前转换序列

读操作:

任何时候

写操作:

任何时候

ModuleBass+OxOOOC

15

14

13

12|1110V«7(55J

3

2

T

0

R

W

IEN[15:

0]

Re&ef

0

0

aIdodaoa□□

a

D

Q

Figure10-12,ATDtnputEnableRegister(ATDDAEN)

这16个位是控制相应通道数字中断是否有效,置1时允许数字中断输入,置0

时不允许数字中断输入。

一般使用时这16个位均置0。

10.3.2.11AD转换结果寄存器(ATDDRn)

写入时会终止当前转换序列

读操作:

任何时候

写操作:

任何时候

AD转换结果依次存放在16个结果寄存器中。

结果总为无符号的数据。

左,右对齐分别由ATDCTL3寄存器中的DJM位控制。

如果转换序列自动比较允许的话,这些结果寄存器中存放比较结果。

存放格式根据DJM位来选择。

在这种模式下,ATDDRn寄存器被用作比较结果锁存器,这些值在转换序列结束时丢失。

汪息:

当转换序列没有使用自动比较时,结果会按照寄存器顺序依次存放在与通道

相对应的结果寄存器中。

在这种情况下,如果向ATDDRn中写入初始值时,AD结果可能会溢出。

10.3.2.12.1左对齐输出结果(DJM=0)

15

13

12

11

10

9

e

7

e

5

4

3

2

1

0

由1:

&it9

Bita

Bit7

Bite

Brt5

Bit4

Bits

Btt2

Bit1

BitO

0

a

0

0

0

0

0

0

0

0

0

D

D

Q

0

0

0

0

Frflure10-1电LeftjustifiedATDconversionresuJTregister(ATDDRn}

可见,当选择左对齐输出结果时,输出结果按照由低向高排列放入结果寄存器中

10.3.2.12.2RightJustifiedResultData(DJM=1)

15141312

11WBB

7654

3210

D

0

0

Sit11

Sit10

Bit9

BttB

Bit?

Bii6

Bits

BH3

Bit2

Bi11

QiiO

0000

0000

0D00

00D0

Figure10-15.RightjustifiedATDconversionresultregister(ATDDRn)

右对齐时,输出结果从低位开始排列。

#include/*commondefinesandmacros*/

#include"derivative.h"/*derivative-specificdefinitions*/

intLED[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

voidCLK_init(void);

voidAD_init(void);

unsignedcharGetATD0(unsignedcharch);

voiddelay(intdelaytime)

{//软件延时,24M总线频率时延时时间约为10us

inti;unsignedcharj;

for(i=0;i

for(j=0;j<24;j++)

;

}

voidlongdelay(intdelaytime)

{//软件延时,24M总线频率时延时时间约为1ms

inti;

for(i=0;i

delay

(1);

}

voidCLK_init(void)

{

CLKSEL=0x00;//初始时还没有PLL

PLLCTL=0xe1;//时钟监控使能,PLL允许,VCOCLK调频2%,禁止快速苏醒,禁止自给时钟,伪停止下禁止实时中断和看门狗

SYNR=2;

REFDV=1;//PLLCLK=2*OSCCLK*(SYNR+1/((REFDV+1))=48M;

asmNOP;asmNOP;asmNOP;//等待锁相环稳定

while(!

(CRGFLG&0x08));//锁相环稳定标志位

CLKSEL=0x80;〃时钟选择寄存器,BusClock=PLLCLK/2,停止模式下振荡器、系统时钟、锁

相环、内核时钟、看门狗继续工作

//AD转换序列长度为4

〃允许指定AD口做外部触发输入口,8位结果,采样前采样电容不放

//标志寄存器不快速清零,停止模式不运行,禁止外部触发,禁止转换

〃结果右对齐,非FIFO模式,冻结模式继续转换转换长度4

ATD0CTL4=0x44;〃第二阶段采用8个AD周期(第一阶段2个AD周期),f=fbus/2*(4+1),

4.16ms转换一次

ATD0CTL5=0x30;

ATD0DIEN=0x00;

〃连续多通道转换,从通道0开始

〃禁用数字输入缓冲?

/*ATD0CTL0=0x00;//AD转换序列长度为16

ATD0CTL1=0x00;〃允许指定AD口做外部触发输入口,8位结果,采样前采样电容不放

电1

ATD0CTL2=0x40;//标志寄存器快速清零,停止模式不运行,禁止外部触发,禁止转换完

成中断和比较成功中断

ATD0CTL3=0xc0;

ATD0CTL4=0x44;

4.16ms转换一次

ATD0CTL5=0x38;

ATD0DIEN=0x00;

〃结果右对齐,非FIFO模式,冻结模式继续转换转换长度8

〃第二阶段采用8个AD周期(第一阶段2个AD周期),f=fbus/2*(4+1),

〃连续多通道转换,从通道8开始

〃禁用数字输入缓冲区*/

}

voidIOinit(void)

{

DDRB=0xff;

PORTB=0x00;

DDR0AD0=0x00;

}

unsignedcharGetATD0(unsignedcharch)

{

bytead=0;

while(!

ATD0STAT0_SCF);

switch(ch)

{

case0:

ad=ATD0DR0L;

break;

case1:

ad=ATD0DR1L;

break;

case2:

ad=ATD0DR2L;

break;

case3:

ad=ATD0DR3L;

break;

case4:

ad=ATD0DR4L;

break;

case5:

ad=ATD0DR5L;

break;

case6:

ad=ATD0DR6L;

break;

case7:

ad=ATD0DR7L;

break;

}

returnad;

}voidmain(void)

{

intADdata[8];

inti1,i2,i3,i4,i5,i6,i7,i8;

unsignedchari;

CLK_init();

AD_init();

DisableInterrupts;

while

(1)

{

/*for(i=0;i<8;i++)

{

PORTB=LED[i];

ADdata[i]=GetATD0(i);

}

i1=ADdata[0];

i2=ADdata[1];

i3=ADdata[2];

i4=ADdata[3];

i5=ADdata[4];

i6=ADdata[5];

i7=ADdata[6];

i8=ADdata[7];*/

i1=GetATD0(7);

ATD0STAT0_SCF=1;if(i1)(

PORTB=0x01;

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

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

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