MC9S12XS128_中文手册
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章端口整合模块
端口A,B和K为通用I/O接口
端口E整合了IRQ,XIRQ中断输入
端口T整合了1个定时模块
端口S整合了2个SCI模块和1个SPI模块
端口M整合了1个MSCAN
端口P整合了PWM模块,同时可用作外部中断源输入
端口H和J为通用I/O接口,同时可用作外部中断源输入
端口AD整合了1个16位通道ATD模块
大部分I/O引脚可由相应的寄存器位来配置选择数据方向、驱动能力,使能上拉或下拉式装置。
当用作通用IO口时,所有的端口都有数据寄存器和数据方向寄存器。
对于端口T,S,M,P,H,和J有基于每个针脚的上拉和下拉控制寄存器。
对于端口AD有基于每个针脚的上拉寄存器。
对于端口A、B、E和K,有一个基于端口的上拉控制寄存器。
对于端口T,S,M,P,H,J,和AD,有基于每个针脚的降额输出驱动控制寄存器。
对于端口A,B,E,和K,有一个基于端口的降额输出驱动控制寄存器。
对于端口S、M,有漏极开路(线或)控制寄存器。
对于端口P、H和J,有基于每个针脚的中断标志寄存器。
纯通用IO端口共计有41个,分别是:
PA[7:0]
PB[7:0]
PE[6:5]
PE[3:2]
PK[7,5:0]
PM[7:6]
PH[7:0](带中断输入)
PJ[7:6](带中断输入)
PJ[1:0](带中断输入)
第二章脉冲宽度调制模块
XS128具有8位8通道的PWM,相邻的两个通道可以级联组成16位的通道。
PWME::
PWME
PWM通道使能寄存器。
PWMEx=1将立即使能该通道PWM波形输出。
若两个通道级联组成一个16位通道,则低位通道(通道数大的)的使能寄存器成为该级联通道的使能寄存器,高位通道(通道数小的)的使能寄存器和高位的波形输出是无效的。
PWMPOL
PWMPOL::
PWM极性寄存器。
PPOLx=1,则该通道的周期初始输出为高电平,达到占空比后变为低电平;相反,若PPOLx=0,则初始输出为低电平,达到占空比后变为高电平。
PWMCLK::
PWMCLK
PWM时钟源选择寄存器。
0、1、4、5通道,PCLKx=0使用Clock A,PCLKx=1使用Clock SA;2、3、6、7通道,PCLKx=0使用Clock B,PCLKx=1使用Clock SB。
Clock A、Clock B由下面的PWMPRCLK设置。
PWMPRCLK::
PWMPRCLK
PWM预分频时钟源选择寄存器。
控制Clock A、Clock B的值。
PWMCAE::
PWMCAE
PWM中心对齐使能寄存器。
CAEx=1,该通道为中心对齐;CAEx=0,该通道为左对齐。
PWMCTL::
PWMCTL
PWM控制寄存器。
CONxx=1,则相应的两个通道级联使用,否则单独使用。
级联后,整个级联通道由低位通道(通道数大的)的各个寄存器控制,高位通道(通道数小的)不起作用。
级联模式下,向高位通道或低位通道计数器寄存器写值,等同于向16位级联计数器寄存器写值,也即重置为0。
PWMSCLA
PWMSCLA::
PWM标度A寄存器。
用于控制Clock SA的值,Clock SA=Clock A/(2 *PWMSCLA),当PWMSCLA=0x00时,相当于PWMSCLA=256。
PWMSCLB::
PWMSCLB
PWM标度B寄存器。
用于控制Clock SB的值,Clock SB=Clock A/(2 *PWMSCLB),当PWMSCLB=0x00时,相当于PWMSCLB=256。
PWMCNTx::
PWMCNTx
PWM通道计数寄存器。
每个通道都有一个独立的8位计数器,其计数速率由所选择的时钟源决定。
计数器的值可以随时读取而不影响计数器运行,也不影响PWM波形输出。
在左对齐模式时,计数器从0计数至周期寄存器的值减1;在中心对齐模式,计数器从0计数至周期寄存器的值,然后再倒计数至0。
向计数器写入任何值都将导致计数器复位至0、计数方向重置为向上。
在有效周期末,计数器同样会被清零。
只有当通道使能时计数器才进行计数。
改变计数器的值应该在该通道禁止时进行。
若某个通道正在执行PWM功能,使用PWMEx=0禁止该通道,则该通道的计数器将“冻结”,下次使能该通道时,计数器将接着上次停止的地方
继续计数,而不是重新从0开始。
若要开始一个新的PWM脉冲波形,则应在使能前写一次计数器。
PWMPERx
PWMPERx::
PWM通道周期寄存器。
每个通道都有一个独立的8位周期寄存器,它的值将间接决定该通道的PWM波形周期。
该寄存器采用双缓冲器设计,即写入的新值不立即生效,直到本次有效周期结束或者计数器寄存器清零或者该通道被禁止。
读该寄存器将返回最近一次写入的值(不一定是当前生效的值)。
复位将重置值为0xFF。
下面给出了如何由周期寄存器的值计算最终PWM输出波形的周期与频率:
左对齐输出:(CAEx=0)
PWMx Period=Clock(A,B,SA,or SB)*PWMPERx
PWMx Frequency=Clock(A,B,SA,or SB)/PWMPERx
中心对齐输出:(CAEx=1)
PWMx Period=Clock(A,B,SA,or SB)*(2*PWMPERx)
PWMx Frequency=Clock(A,B,SA,or SB)/(2*PWMPERx) PWMDTYx::
PWMDTYx
PWM占空寄存器。
每个通道都有一个独立的8位占空寄存器,它的值将间接决定该通道的PWM波形占空比。
该寄存器采用双缓冲器设计,即写入的新值不立即生效,直到本次有效周期结束或者计数器寄存器清零或者该通道被禁止。
读该寄存器将返回最近一次写入的值(不一定是当前生效的值)。
复位将重置值为0xFF。
下面给出了如何由占空寄存器的值计算最终PWM输出波形的占空比:Polarity=0(PPOLx=0)
Duty Cycle=[(PWMPERx-PWMDTYx)/PWMPERx]*100%
Polarity=1(PPOLx=1)
Duty Cycle=[PWMDTYx/PWMPERx]*100% PWMSDN::
PWMSDN
PWM紧急关断寄存器。
参考程序:
#include<hidef.h>/*common defines and macros*/
#include"derivative.h"/*derivative-specific definitions*/
void PWMinitial()
{
PWMPOL=0X01;//通道0输出波形开始极性为1output waveform which high first then low when the duty counter is reached
PWMCAE=0x00;//左对齐输出模式output left align waveform
PWMCLK=0X01;//PWM时钟源为
SAClock SA is the clock source for PWM channel0
PWMPRCLK=0X03;//时钟A8分频Clock A is8MHz/8=1MHz
PWMSCLA=0X80;//时钟SA为1MHz/128/2Clock SA is1MHz/128/2=4KHz
PWMPER0=255;//设定输出周期=通道时钟周期*256
PWMDTY0=150;//占空比初始为0Duty is 50%,and PWM waveform's frequent is16
PWME=0X01;//通道0使能
enable pwm channel0
}
void main(void)
{
PWMinitial();
EnableInterrupts;
for(;;)
{
_FEED_COP();/*feeds the dog*/
}
}
第三章定时器模块
基本的定时器模块由1个增强的可编程预分频器驱动的可编程计数器、8个输入捕捉/输出比较通道和1个脉冲累加器组成。
定时器模块一共有8个引脚,其中脉冲累加器与第7号通道的引脚是共用的。
TIOS::
TIOS
定时器输入捕捉/输出比较选择寄存器。
复位值为0x00。
IOSx=0,相应通道行使输入捕捉,输入捕捉用来获取当外部事件发生时定时器计数器(TCNT)的值,当预期的触发事件输入到该通道上,定时器将把定时器计数器中的当前值传送到该通道的TCx寄存器中,然后置位TFLG1中的CxF标志位,若TIE中的CxI=1,则将触发该通道输入捕捉中断请求;而当IOSx=1,相应通道行使输出比较,输出比较用来在相应引脚上产生可定制周期、频率和极性的脉冲,当定时器计数器中的值步进至与该通道TCx中的预设值相等时,若OCPDx=0,定时器将置位、清零或者触发该通道的引脚,然后置位TFLG1中的CxF标志位,若TIE中的CxI=1,则将触发钙通道输出比较中断请求。
CFORC::
CFORC
定时器比较强制寄存器。
复位值为0x00。
FOCx=1将强制该位对应通道产生输出比较成功动作,但CxF中断标志位不置位。
任何通道的强制比较成功动作若与普通比较成功动作同时发生,则强制比较成功动作优先发生,且CxF标志位不会置位。
被置位后瞬间将自动清除该位,所以任何时候对该寄存器的读动作都将返回0x00。
OC7M::
OC7M
输出比较通道7屏蔽寄存器。
复位值为0x00。
Setting the OC7Mx(x ranges from0to6)will set the corresponding port to be an output port when the corresponding TIOSx(x ranges from0to6)bit is set to be an output compare and the corresponding OCPDx(x ranges from0to6)bit is set to zero to enable the timer port.A successful channel7output compare overrides any channel6:0compares.For each OC7M bit that is set, the output compare action reflects the corresponding OC7D bit.
OC7D::
OC7D
输出比较7数据寄存器。
复位值为0x00。
A channel7output compare can cause bits in the output compare7data register to transfer to the timer port data register depending on the output compare7mask register.
TCNT
TCNT::
定时器计数寄存器。
复位值为0x0000。
这是一个16位的寄存器,注意要使用字访问,不要单独访问高位或低位。
该计数器向上计数至0xFFFF时将溢出至0x0000并触发定时器计数器溢出中断。
向该寄存器写入值是无意义或无效的。
TSCR1::
TSCR1
定时器系统控制寄存器1。
复位值为0x00。
TEN为定时器使能位,置位将启动主定时器模块,清零将关闭。
清零后不影响脉冲累加计数器模块在事件计数器模式单独工作。
TFFCA为定时器所有标志位快速清零位,置位时将在访问某些寄存器时才清零TFLG1、TFLG2、PAFLG中的相应标志位;清零时将正常执行清零动作。
该位默认是清零的。
PRNT确定定时器预分频器分频比从何选择。
PRNT=0,则预分频比由TSCR2中的PR0、PR1、PR2决定;若PRNT=1,则由PTPSR寄存器决定。
该寄存器在每次复位后只能写入一次。
TTOV::
TTOV
定时器溢出时触发寄存器。
该寄存器功能仅在相应通道行使输出比较功能时有效。
当相应位置位并且定时器计数器溢出时,将优先于CFORC寄存器(除通道7以外)触发相应引脚。
TCTL1/TCTL2::
TCTL1/TCTL2
定时器控制寄存器1/2。
这两个寄存器中,每两位确定一个输出比较通道在成功发生一次比较后采取何种输出动作,这两位分别是OMx、OLx。
他们的组合有四种,对应四种动作方式。
TCTL1控制4~7通道,TCTL2控制0~3通道。
To operate the16-bit pulse accumulator independently of input capture or output compare7and0respectively the user must set the corresponding bits IOSx=1,OMx=0and OLx=0.OC7M7in the OC7M register must also be cleared.
TCTL4::
TCTL3//TCTL4
TCTL3
定时器控制寄存器3/4。
这两个寄存器中,每两位确定一个输入捕捉通道的触发边缘类型,这两位分别是EDGxB、EDGxA。
他们的组合有四种,对应四种触发方式。
TCTL3控制4~7通道,TCTL4控制0~3通道。
TIE
TIE::
定时器输入捕捉/输出比较中断使能寄存器。
CxI=1将在TFLG1中的CxF=1时允许该通道的中断请求,否则将禁止相应通道的中断请求。
TSCR2
TSCR2::
定时器系统控制寄存器2。
TOI=0,忽略定时器计数器TCNT溢出中断请求;TOI=1,允许定时器计数器TCNT溢出中断请求,当TOF被置位时将触发定时器溢出中断。
TCRE位用来控制当通道7输出比较事件发生时是否重置TCNT,置位时使能。
若TC7=0x0000且TCRE=1,TCNT将一直处在0x0000,若TC7= 0xFFFF且TCRE=1,当TCNT从0xFFFF重置为0x0000时TOF将永远不会被置位。
PR2、PR1、PR0三位决定了定时器预分频比。
TFLG1::
TFLG1
定时器中断标志寄存器1。
若通道x发生输入捕捉/输出比较事件中断,则相应的CxF位被置位。
注意:清除该位的方法是向该位写1置位。
当TSCR中的TFFCA位置位时,读(写)该输入捕捉(输出比较)通道寄存器TCx,将会清除该通道的CxF标志位。
TFLG2::
TFLG2
定时器中断标志寄存器2。
该寄存器只有一个第8位TOF,当定时器计数器(TCNT寄存器)从0xFFFF溢出至0x0000时置位。
注意:清除该位的方法是向该位写1置位。
当TSCR中的TFFCA位置位时,任何对TCNT寄存器的访问将清除TFLG2寄存器,也即清除TOF标志位。
TCx
TCx::
定时器输入捕捉/输出比较寄存器。
这是由两个8位寄存器组成的16位寄存器,分别保存高字节和低字节,使用字访问。
根据TIOS寄存器对相应通道的设置,对于输入捕捉方式,当相应的输入捕捉边缘探测器探测到先前定义的转变时,寄存器将用来锁存此时自由运行计数器的值;对于输出比较方式,该寄存器的值将用来与TCNT 的值比较,为输出比较触发一个输出动作。
复位值0x0000。
行使输出比较功能时,任何时间均可写入;行使输入捕捉功能时,任何时间的写入均是无意义且无效的。
PACTL::
PACTL
脉冲累加器控制寄存器。
PAEN脉冲累加器使能位。
当脉冲累加器工作于事件计数器模式时,该位与TEN独立不受定时器模块是否使能的影响。
PAMOD脉冲累加器工作模式位。
PAMOD=0为事件计数器模式,PAMOD=1为电平时间累加模式。
PEDGE脉冲累加触发边缘控制位。
当PAMOD=0(即事件计数器模式),PEDGE=0为通道7下降沿触发PACNT寄存器增1,PEDGE=1为通道7上升
沿触发PACNT寄存器增1,当PAMOD=1(即电平时间累加模式),PEDGE=0为当通道7高电平时触发PACNT寄存器计数自增,自增频率为BusClock÷64,紧接着的下降沿将置位PAIF标志位。
PEDGE=1为当通道7低电平时触发PACNT寄存器计数自增,自增频率为BusClock÷64,紧接着的上升沿将置位PAIF标志位。
CLK0、CLK1时钟选择位。
该位将为定时器计数器选择计数时钟。
默认值为CLK0=0、CLK1=0。
PAOVI脉冲累加器溢出中断使能位。
置位时,若PAFLG中的PAVOF溢出标志位置位,将允许脉冲累加器溢出中断请求;清除时,将禁止脉冲累加器溢出中断请求。
PAI脉冲累加器输入中断使能位。
置位时,若PAFLG中的PAIF输入边缘标志位置位,将允许脉冲累加器输入中断请求;清除时,将禁止脉冲累加器输入中断请求。
PAFLG::
PAFLG
脉冲累加器标志寄存器。
PAOVF脉冲累加器溢出标志位,当脉冲累加器计数器PACNT从0xFFFF 溢出至0x0000时置位。
写1清除该标志位。
PAIF脉冲累加器输入边缘标志位,当通道7输入信号的边缘类型满足PAMOD位的预设边缘触发类型时置位。
当TSCR2中的TFFCA位置位时,任何对PACNT寄存器的访问将清除寄存器中所有标志位。
PACNT::
PACNT
脉冲累加器计数器寄存器。
该寄存器为16位寄存器,需要使用字访问。
在一个触发之后立即读该寄存器的值有可能丢失最近一个计数,因为其首先需要同总线时钟同步。
OCPD::
OCPD
输出比较引脚断路寄存器。
OCPDx=0,允许该通道上输出比较动作在该通道引脚上产生;OCPDx=1,禁止该通道上输出比较动作在该通道引脚上产生,但输出比较标志位仍然置位。
PTPSR::
PTPSR
精确定时器预分频器选择寄存器。
若TSCR1中的PRNT=1,PTPSR的值将决定主定时器预分频比。
参考实验程序:闪烁小灯
使用开发板上的PortB口上的8个LED,利用定时器计数器定时中断点亮不同位置的LED。
#include<hidef.h>/*common defines and macros*/
#include"derivative.h"/*derivative-specific definitions*/
int counter;
#pragma CODE_SEG NON_BANKED
/****定时器计数器溢出中断处理服务函数****/ void interrupt16TOI_ISR(void)
{
TFLG2=0x80;
counter++;
switch(counter)
{
case1:
PORTB=0x7e;
break;
case2:
PORTB=0xbd;
break;
case3:
PORTB=0xdb;
break;
case4:
PORTB=0xe7;
break;
case5:
PORTB=0xe7;
break;
case6:
PORTB=0xdb;
break;
case7:
PORTB=0xbd;
break;
case8:
PORTB=0x7e;
break;
}
}
#pragma CODE_SEG DEFAULT void main(void)
{
TSCR1=0x80;/*enable timer TCNT*/
TSCR2=0x85;/*TCNT prescaler setup*/ counter=0;
DDRB=0xff;/*PTB as output*/
PORTB=0xff;/*LEDs off*/
EnableInterrupts;
for(;;)
{
if(counter>=8)counter=0;
}
}
第四章模数转换器模块
ATDCTL0::
ATDCTL0
ATD控制寄存器0。
写该寄存器将导致当前转换序列终止。
当做多通道转换时,WRAPx[3:0]位选择转换哪一个通道后回绕(WRAP AROUND)到AN0通道。
ATDCTL11:
ATDCTL
ATD控制寄存器1。
写该寄存器将导致当前转换序列终止。
ETRIGSEL外部触发源选择位。
下表给出4种外部触发源与相应外部触发输入的关系。
功能参见ETRIGCH[3:0]位。
默认清零。
SRESx[1:0]AD分辨率选择位,见下表。
默认10-bit分辨率
SMP_DIS内部采样电容放电选择位。
置位时使能,在每次采样之前将先对采样电容放电(会增加2个ATD时钟周期的采样时间)。
默认清零。
ETRIGCH[3:0]外部触发通道选择位。
当ETRIGSEL=1时,由这四位指定ETRIG3-0中的一个作为触发源;当ETRIGSEL=0时,由这四位指定一个AD通道作为触发源。
默认值为1111,即由通道15作为默认触发源。
ETRIGSEL和ETRIGCH[3:0]的组合见下表。
ATDCTL2::
ATD控制寄存器2。
写该寄存器将导致当前转换序列终止。
AFFC ATD快速标志位清除选择位。
AFFC=0,向CCFx写1将清除相应标志位;AFFC=1,若CMPEx=0,则对某个通道的结果寄存器的一次读取操作将导致相应的CCFx标志位清零,若CMPEx=1,则对某个通道的结果寄存器的一次写入操作将导致相应的CCFx标志位清零。
ETRIGLE外部触发源触发方式选择位。
ETRIGLE=0,边缘触发;
ETRIGLE=1电平触发。
ETRIGP外部触发源触发极性选择位。
ETRIGP=0,下降沿或低电平触发;ETRIGP=1上升沿或高电平触发。
ETRIGE外部触发源模式使能选择位。
ETRIGE=0,禁止外部触发模式;ETRIGE=1,使能外部触发模式,若所选择的外部触发源是某个AD通道,该通道的数字输入缓冲器将被使能。
ASCIE ATD转换序列完成中断使能标志位。
ASCIE=0,禁止转换完成中断请求;ASCIE=1,当SCF被置位时将发出转换完成中断请求。
ACMPIE ATD比较中断使能标志位。
ACMPIE=0,禁止比较中断请求;ACMPIE=1,当某通道在转换序列中按顺序所对应的CMPE=1(对应的自动比较功能打开),如果此CMPE对应的CCF位被置位(即该通道发生一次成功的比较),该通道将发出比较中断请求。
复位值0x00。
ATDCTL
ATDCTL33:
ATD控制寄存器3。
写该寄存器将导致当前转换序列终止。
DJM结果寄存器数据对齐位。
DJM=0,左对齐结果寄存器数据;DJM=1,右对齐结果寄存器数据。
默认值为0,即左对齐。
S8C,S4C,S2C,S1C转换序列长度位。
这四位一同控制每一次转换序列长度。
复位后默认值0100,即默认转换长度为4。
组合表见下。
FIFO结果寄存器FIFO模式控制位。
FIFO=0,每个转换序列开始时,转换结果总是从ATDDR0结果寄存器开始存放(也即被使用的结果寄存器个数总是等于转换序列长度);FIFO=1,在结果寄存器中连续的存放转换结果(首尾相接队列,在尾端将发生回绕)。
默认为0。
ATDCTL44:
ATDCTL
ATD控制寄存器4。
写该寄存器将导致当前转换序列终止。
SMP[2:0]采样时间选择位这3位选择采样时间长度,单位是ATD转换时钟周期。
注意该ATD转换时钟周期是由此寄存器中的PRS[4:0]位控制的。
下表给出了可选的采样时间长度。
默认值000。
PRS[4:0]ATD时钟预分频选择位。
ATD转换时钟频率为
0.25MHz~8.3MHz。
默认值00101,即大约3.3MHz。
附计算公式如下:
ATDCTL5::
ATDCTL5
ATD控制寄存器5。
写该寄存器将导致当前转换序列终止,并启动一个新的转换序列。
SC特殊通道转换使能位。
SC=0,禁止特殊通道转换功能;SC=1,使能特殊通道转换功能,特殊通道使用CD、CC、CB、CA位指定。
SCAN连续转换序列模式选择位。
SCAN=0,单一转换序列,即对指定的转换序列仅执行一次转换;SCAN=1,连续转换序列(扫描模式),即循环执行指定的转换序列。
注意,置位该位在外部触发模式下是无效的,也即意味着外部触发转换总是单一执行的。
MULT多通道采样模式。
MULT=0,仅转换由CD、CC、CB、CA位指定的一个通道;MULT=1,转换多个通道形成一个转换序列,序列的第一个通道由CD、CC、CB、CA位指定,然后由该通道号递增形成序列中下一个要转换的通道号,总计需要转换的通道个数由转换序列长度位S8C、S4C、S2C、S1C指定,或者在到达转换序列长度之前发生回绕(Wrap around)到AN0。
CD、CC、CB、CA模拟输入通道选择位。
见上面的MULT位说明。
组合表如下。
复位值0x00。
ATDSTAT0::
ATDSTAT0
ATD状态寄存器0。
SCF序列转换完成标志位。
完成一个序列的转换,该位置位;若是连续转换,则在每一个序列转换完成后置位。
向该位写1可以清除该位,重写
ATDCTL5寄存器可以清除该位(开始了新的转换),或者若AFFC=1,对任意一个结果寄存器的一次读操作将清除该位。
ETORF外部触发超越标志位。
若使用外部触发模式时,在一个转换序列还未完成前,又来到一个新的外部触发,则该位置位。
向该位写1可以清除该位,重写ATDCTL0寄存器的0、1、2、3位、ATDCMPE、ATDCMPHT 寄存器可以清除该位(转换被终止),重写ATDCTL5寄存器可以清除该位(开始了新的转换)。
FIFOR结果寄存器超越标志位。
若CCF标志位处于被置位状态(没有手动清零或者没有读出结果寄存器的数据从而没有引发自动清零),再次写入结果寄存器将置位该位(标志着结果寄存器中上一次数据丢失)。
向该位写1可以清除该位,重写ATDCTL0寄存器的0、1、2、3位、ATDCMPE、ATDCMPHT寄存器可以清除该位(转换被终止),重写ATDCTL5寄存器可以清除该位(开始了新的转换)。
CC[3:0]转换计数器。
注意,这4位是只读的。
它们指出了当前转换完成的通道数据将写入哪一个结果寄存器。
若FIFO=0,即非FIFIO模式,转换计数器将在转换序列的开始和结束时被置零(也即总是从ATDDR0开始存放转换结果);若FIFO=1,即FIFO模式,转换得到的数据将依次按队列顺序存放(此时16个结果寄存器构成一个头尾相接的循环队列,ATDDR15写过之后下一个将会写入ATDDR0)。
终止一个转换序列或者启动一个新的转换
序列将会置零CC,即使FIFO=1。
ATDCMPE::
ATDCMPE
ATD比较使能寄存器。
CMPE[15:0]转换比较使能位。
CMPEx=0,禁止按转换序列顺序对应的通道比较;CMPEx=1使能按转换序列顺序对应的通道比较。
默认0x0000。
ATDSTAT2::
ATDSTAT2
ATD状态寄存器2。
CCF[15:0]转换完成标志位。
该位与结果寄存器是一一对应的。
在一个转换序列中,每当完成一个通道的转换,就置位当前结果寄存器对应的CCF (注意,不是置位该通道的CCF)。
如果AD工作于比较模式,则仅当比较成功后才会置位CCF。
若AFFC=0,向该位写1可以清除该位;重写ATDCTL5寄存器可以清除该位(开始了新的转换);若AFFC=1,且CMPE=0,对任意一个结果寄存器的一次读操作将清除该位;若AFFC=1,且CMPE=1,对任意一个结果寄存器的一次写操作将清除该位。
ATDDIEN::
ATDDIEN
ATD数字输入使能寄存器。
IEN[15:0]IENx=1将把该通道的作为一个IO口使用,而不是一个AD转换通道。
默认0x0000。
ATDCMPHT ATDCMPHT:
:ATD比较高于寄存器。
写该寄存器将导致当前转换序列终止。
CMPHT[15:0]比较操作高于使能位。
CMPHT=0,若按转换序列顺序某个通道的转换值小于或等于对应的ATDDR结果寄存器值,,则视为一次成功比较,并置位相应的CCF;CMPHT=1,若按转换序列顺序某个通道的转换值大于对应的ATDDR结果寄存器值,则视为一次成功比较,并置位相应的CCF。
ATDDR ATDDR[15:0][15:0][15:0]:
:ATD转换结果寄存器。
每一个结果寄存器是一个无符号16位寄存器(最少使用8位,最多使用12位)。
若ATD工作于非比较模式,转换结果将根据转换序列顺序存放在这些寄存器中;若ATD工作于比较模式,这些寄存器必须在初始化时填入比较值,以供和转换值进行比较。
根据DJM位的不同情况,ATDDR有不同的对齐存放方式,见下表。
中断:
所有可屏蔽中断在单片机复位后都具有相同的优先级,其值为1。
若相同优先级的中断同时到来,则具有较高中断向量地址的中断请求获得高优先级。
时钟产生器CRG:
SYNR:同步寄存器
VCOFRQ[1:0]
SYNDIV[5:0]
REFDV:参考分配寄存器
REFFRQ[1:0]
REFDIV[5:0]
POSTDIV:后分配寄存器
如果POSTDIV=0x00,那么fPPL=fVCO
CRGFLG:标志寄存器
RTIF:
Real Time Interrupt Flag—RTIF is set to1at the end of the RTI period.This flag can only be cleared by writing a1.Writing a0has no effect.If enabled(RTIE=1),RTIF causes an interrupt request.
0RTI time-out has not yet occurred.
1RTI time-out has occurred.
CRGINT:中断使能寄存器
RTIE:
Real Time Interrupt Enable Bit
0Interrupt requests from RTI are disabled.
1Interrupt will be requested whenever RTIF is set.
CLKSEL:时钟选择寄存器
PLLSEL
PLL Select Bit
Write:Anytime.
当lock位为0时写入1无效。
这可以保护不稳定的锁相环频率称为系统频率。
当mcu 进入内部震荡时钟时,停止模式等待模式,该位自动清除。
Writing a one when LOCK=0has no effect.This prevents the selection of an
unstable PLLCLK as SYSCLK.
PLLSEL bit is cleared when the MCU enters Self Clock Mode,Stop Mode or Wait Mode with PLLWAI bit set.
It is recommended to read back the PLLSEL bit to make sure PLLCLK has really been selected as SYSCLK,as LOCK status bit could theoretically change at the very moment writing the PLLSEL bit.
0System clocks are derived from OSCCLK(f BUS=f OSC/2).
1System clocks are derived from PLLCLK(f BUS=f PLL/2).。