飞思卡尔MC9S12XS128AD转换.docx
- 文档编号:25353834
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:20
- 大小:55.24KB
飞思卡尔MC9S12XS128AD转换.docx
《飞思卡尔MC9S12XS128AD转换.docx》由会员分享,可在线阅读,更多相关《飞思卡尔MC9S12XS128AD转换.docx(20页珍藏版)》请在冰豆网上搜索。
飞思卡尔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 #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; } } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 卡尔 MC9S12XS128AD 转换