飞思卡尔寄存器使用
- 格式:doc
- 大小:281.50 KB
- 文档页数:17
飞思卡尔寄存器使⽤PLLSEL:选定锁环位 1 选定锁相环时钟0 选定外部时钟PSTP:选定伪停⽌位伪停⽌模式下振荡器(⼯作1)/(停⽌0)SYSWAI:选定时钟停⽌位等待模式下系统时钟(停⽌1)/(继续⼯作0)ROAWAI:等待模式下降低振荡器放⼤倍数位1 等待模式下降低振荡器放⼤倍数0 等待模式下振荡器正常放⼤倍数PLLWAI:等待模式下锁相环停⽌⼯作位1等待模式下锁相环停⽌⼯作0等待模式下锁相环正常⼯作CWAI:等待模式下内核时钟停⽌⼯作位1 等待模式下内核时钟停⽌⼯作0 等待模式下内核时钟正常⼯作RTIWAI:等待模式下实时时钟停⽌⼯作位1 等待模式下实时时钟停⽌⼯作0 等待模式下实时时钟正常⼯作COPWAI:等待模式下看门狗时钟停⽌⼯作位1 等待模式下看门狗时钟停⽌⼯作0 等待模式下看门狗时钟正常⼯作CME:时钟监控使能位。
PLLON:锁相环电路使能位。
AUTO:⾃动带宽控制位 1 选择⾼频带宽控制0 选择低频带宽控制ACQ:⾃动带宽控制滤波器选择位(当AUTO=1时,该位⽆意义)。
PRE:CPU 伪停⽌状态时,实时中断(RT1)允许位。
PCE:CPU 虚拟停⽌时,看门狗(COP)允许位。
SCEM:⾃给时钟⽅式使能位,默认为1,探测到外部晶振停振时进⼊⾃给时钟模式,为0时,禁⽌⾃给时钟模式,探测到外部晶振停振时复位。
时钟合成寄存器SYNR读写Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0Read 0 0SYN5 SYN4 SYN3 SYN2 SYN1 SYN0 WriteVCOFRQ[1:0](BIT7 BIT6)控制压控振动器VCO的增益,默认值为00,VCO的频率与VCOFRQ[1:0]对应表如下所⽰:读写Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Read/Write REFFRQ1 REFFRQ0 REFDV5 REFDV4 REFDV3 REFDV2 REFDV1 REFDV0 REFFRQ[1:0]默认值为00,表⽰参考时钟频率在1~2MHZ之间,要求的参考时钟频率与REFFRQ[1:0]的设置值如下表如⽰:读写Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0ReadRTIF PORF 0LOCKIFLOCK TRACKSCMIFSCMWriteRTIF:实时中断(RTI)标志位 1 发⽣实时中断0 未发⽣实时中断PROF:上电复位标志位 1 发⽣上电复位0 未发⽣上电复位LOCKIF:锁相环中断标志位1 锁相环锁定位发⽣变化时,产⽣中断请求0 锁相环锁定位未发⽣变化LOCK:锁相环频率锁定标志,为1表⽰时钟频率已稳定,锁相环频率已锁定。
/*----------------------------------------------------------------------------------------------------------------------------- 桂林电子科技大学物联网工程Editor:JaceLin Date:2014.2.5-------------------------------------------------------------------------------------------------------------------------------- 一、DMA特性1)k60有16个DMA通道二、寄存器1)控制寄存器:DMA_CR31-18 reserved17 CX 取消转移,0正常操作,1取消剩下数据转移16 ECX 错误取消转移,0正常操作,1取消转移15-8 reserved14 EMLM 使能副循环映射0 禁止,TCDn.word2 为32位1 使能,TCDn.word被重新定义6 CLM 持续连接模式,0当副循环结束后,再次激活DMA要通过裁决,1不用裁决5 HALT 停止DMA操作,0正常模式,1停止DMA操作4 HOE 错误时停止,0正常操作,1当有错误时HALT=1,也就是DMA停止3 reserved2 ERCA 使能循环通道裁决,1 EDBG 使能调试,写0,调试也用DMA,写1,调试时DMA不可用0 reserved2)错误状态寄存器DMA_ES31 VLD 所有错误状态位逻辑或,0没有错误,1表示至少有1个错误没有清除30-17 保留16 ECX 转移被取消0没有被取消的转移,1最后一次记录是被取消的转移15 保留14 CPE 通道优先错误,0没有通道优先错误,1有13-12 保留11-8 ERRXHN 错误通道位/被取消的位(最多16位)7 SAE 源地址错误,0没有源地址配置错误,1有错误6 SOE 源偏移错误,0没有源偏移配置错误,1有偏移配置错误5 DAE 目标地址错误,0没有错,1有错误4 DOE 目标偏移错误,0没有错误,1有3 NCE NBYTES/CITER配置错误,0没有,1有2 SGE Scatter/Gather配置错误,0没有,1有1 SBE 源总线错误,0没有错误,1有0 DBE 目标总线错误,0没有,1有3)使能请求寄存器DMA_ERQ (16个通道的请求信号寄存器)以下都是0禁止,1使能:31-16 保留15-0 ERQ15-ERQ04)使能错误中断寄存器DMA_EEI (16个通道的错误中断寄存器)以下都是0禁止,1使能:31-16 保留15-0 EEI15-EEI05)清除使能中断寄存器DMA_CEEI(清除EEI的使能中断)7 NOP 0正常操作,1没有操作,这个寄存器所有脱下可以忽略6 CAEE 清除所有使能错误中断,写0清除特定EEI,写1清除所有EEI5-4 保留3-0 清除使能错误中断(一共16位,写相应位表示选定,通过CAEE清除)6)设置使能错误中断寄存器DMA_SEEI7 NOP 0正常操作,1没有操作,这个寄存器所有脱下可以忽略6 SAEE 设置所有使能错误中断,写0设置特定EEI,写1设置所有EEI5-4 保留3-0 设置使能错误中断(一共16位,写相应位表示选定,通过SAEE设置)7)清除使能请求寄存器DMA_CERQ(清除ERQ的请求中断)7 NOP 0正常操作,1没有操作,这个寄存器所有脱下可以忽略6 CAER 清除所有使能请求,写0清除特定ERQ,写1清除所有ERQ5-4 保留3-0 清除使能请求中断(一共16位,写相应位表示选定,通过CAER清除)8)设置使能请求寄存器DMA_SERQ7 NOP 0正常操作,1没有操作,这个寄存器所有脱下可以忽略6 SAER 设置所有使能请求,写0设置特定ERQ,写1设置所有ERQ5-4 保留3-0 设置使能请求(一共16位,写相应位表示选定,通过SAER设置)9)清除完成状态位寄存器DMA_CDNE7 NOP 0正常操作,1没有操作,这个寄存器所有脱下可以忽略6 CADN 清除所有完成位,0清除特定位,1清除所有位5-4 保留3-0 CDNE 清除(特定完成位,共16位)10)设置状态位寄存器DMA_SSRT7 NOP 0正常操作,1没有操作,这个寄存器所有脱下可以忽略6 SAST 配置所有完成位,0设置特定位,1设置所有位5-4 保留3-0 SSRT 设置(特定完成位,共16位)11)清除错误寄存器DMA_CERR7 NOP 0正常操作,1没有操作,这个寄存器所有脱下可以忽略6 CAEI 清除所有完成位,0清除特定位,1清除所有位5-4 保留3-0 CERR 清除(特定位,共16位)12)清除中断请求寄存器DMA_CINT7 NOP 0正常操作,1没有操作,这个寄存器所有脱下可以忽略6 CAIR 清除所有中断请求位,0清除特定位,1清除所有位5-4 保留3-0 CINT 清除(特定位,共16位)13)中断请求寄存器DMA_INT (16个通道)以下都是0禁止,1使能:31-16 保留15-0 INT15-INT014)错误寄存器DMA_CRR (16个通道)以下都是0禁止,1使能:31-16 保留15-0 ERR1-ERR015)硬件请求状态寄存器DMA_HRS(16个通道)以下都是0禁止,1使能:31-16 保留15-0 HRS15-HRS016)通道n优先级寄存器DMA_DCHPIn7 ECP 使能通道优先权写0不支持高优先级,写1支持高优先级6 DPA 禁止优先级功能写0支持低优先级,写1不支持任何优先级5 5-4 保留3-0 CHPRI 通道n优先级设定,共16个优先级-----------------------------------------------------------------------------17)TCD源地址(DMA_TCD_SADDR)31-0 SADDR 源地址18)TCD信号源地址偏移(DMA_TCD_SOFF),表示下一个数据的存储地址15-0 SOFF 源地址信号偏移19)TCD传输属性(DMA_TCD_ATTR)15-11 SMOD 源地址模数10-8 SSIZE 源数据转换大小000 8位001 16位010 32位011 保留100 16字节其它保留7-3 DMOM 目标地址模数详见SMOD定义2-0 DSIZE 目标数据转换大小详见SSIZE定义20)TCD副循环计数器(DMA_TCD_NBYTES_MLNO)31-0 NBYTES 副循环转换计数,也就是副循环每次传输的字节数,21)TCD有符号副环路偏移(DMA_NBYTES_MLOFFNO)31 SMLOE 副循环源地址使能0没有应用SADDR,1应用于SADDR32 DMLOE 副循环目标地址偏移使能0没有应用DADDR,1应用于DADDR29-0 NBYTES 副循环偏移计算---- 22)TCD有符号副循环偏移(DMA_NBYTES_MLOFFYES)31 SMLOE 源副循环偏移使能0没有应用SADDR,1应用于SADDR32 DMLOE 目标副循环偏移使能0没有应用SADDR,1应用于SADDR29-10 MLOFF 当SMOE和DMOE为1,这里是偏移量,或者说是下次数据地址9-0 NBYTES 副循环字节转换计算23)TCD末尾(结束)源地址调整(DMA_TCD_SLAST)31-0 SLAST 末尾(结束)源地址调整24)TCD目标地址(DMA_TCD_DADDR)31-0 DADDR 目标地址25)TCD有符号目标地址偏移(DMA_TCD_DOFF),每次传输完存储目标地址增量15-0 DOFF 目标地址偏移* 26)TCD当前副循环连接(主循环计数)DAM_TCD_CITER_ELINKYES* 15 ENLINK 当副循环结束时,是否使能通道连接,0禁用,1使能* 14-13 保留* 12-9 LINKCH LINKCH连接通道号* 8-0 CITER 当前主循环迭代计数器,用于对主循环总次数计算(也就是副循环循环次数)** 27)TCD当前副循环连接(主循环计数)DMA_TCD_CITER_ELINKNO15 ELINK 使能通道对通道最小循环0不用,1使能14-0 CITER 循环数28)TCD末尾(结束)目标地址调整(DMA_TCD_DLASTSGA)31-0 SLASTSGA29)TCD控制与状态(DMA_TCD_CSR)15-14 BWC 带宽控制00 没有DMA 引擎停止01 保留10 DMA每读写一次停止4个周期11 DMA每读写一次停止8个周期13-12 保留11-8 MAJORLINKCH 连接通道号(16位)7 DONE 通道完成,该位标志DMA主循环完成,6 ACTIVE 通道执行,该位标志通道已经执行5 MAORELINK 使能通道对通道连接在一个主循环完成后0禁止通道连接,1使能通道连接4 ESG 使能散/聚模式0禁用,1使能3 DREQ 禁止请求,0通道ERQ位不作用,1通道ERQ位清除当主循环完成后2 INTHALF 使能一个中断当主计数完成一半时0禁止,1使能1 INTMAJOR 使能一个中断当主循环计数完成时0禁止,1使能0 START 通道开始,0没有开始,1开始* 30)TCD起始副循环连接(DMA_TCD_BITER_ELINKYES)** 15 ELINK 使能通道对通道连接当副循环完成时0禁止,1使能* 14-13 保留* 12-9 LIMKCH 连接通道号* 8-0 BITER 开始主循环计数,该值必须和CITER相同** 31)TCD起始副循环连接(DMA_TCD_BITER_ELINKNO)15 ELINK 使能通道对通道连接当副循环完成时0禁止,1使能14-0 BITER开始主循环计数------------------------------------------------------------------------------1)通道配置寄存器(DMAMUX_CHCFGn)7 ENBL DMA通道使能6 TRIG DMA通道触发使能0触发禁止,1触发使能5-0 source DMA通道源(64个DMA源,可映射16个中任何一个DMA通道)------------------------------------------------------------------------------DMA 请求复用配置---DMA request multiplexer configuration这个选项总结了这个DMA模块是怎么配置的,-------------------------------------------------------------------------*/。
一、输入输出端口寄存器I/O接口包括PORTA、B、E、K、T、S、M、P、H、J、AD。
其中PORTA、B、E、K属于复用扩展总线接口,单片机在扩展方式下工作时,作为总线信号。
1、PORTT、S、M、P、H、JI/O寄存器PTx如果对应位数据方向寄存器DDRx为“0”,输入,读取该寄存器返回引脚值;“1”,输出,读取该寄存器返回I/O寄存器的内容。
数据方向寄存器DDRx决定对应引脚为输出还是输入,“0”为输入,“1”为输出,复位后,默认为输入。
上拉/下拉使能寄存器PERx选择使用内置上拉/下拉器件,“1”允许,“0”禁用。
中断使能寄存器PIExPORTP、H、J三个端口具有中断功能。
“1”对应引脚允许中断,“0”禁止,复位后,所有端口中断关闭。
中断标志寄存器PIFxPORTP、H、J三个端口具有中断功能。
“1”对应引脚允许中断,“0”禁止,复位后,所有端口中断关闭。
2、PORTA、B、E、KI/O寄存器Px若某端口的引脚被定义为输出,写入I/O寄存器中的数值会从对应引脚输出;输入,通过I/O寄存器读取对应引脚电平。
数据方向寄存器DDRx决定对应引脚为输出还是输入,“0”为输入,“1”为输出,复位后,默认为输入。
PORTE最低两位只能为输入。
上拉电阻控制寄存器PERx第7、4、1、0位分别控制K、E、B、A端口,“1”允许使用对应端口的上拉电阻,“0”禁止,复位后,PK、PE端口使能,PB、PA禁止。
二、中断系统中断控制寄存器INTCR第7位IRQE,中断电平/边沿有效选择,0为低电平有效,1为下降沿有效;第6位IRQEN,外部中断IRQ中断请求使能,0关闭,1允许。
三、PWM模块PWM允许寄存器PWME对应每一位PWMEx,1启动输出,0停止输出,读写任意时刻。
PWM预分频时钟选择寄存器PWMPRCLK为Clock A和B选择独立的预分频因子,读写任意时刻。
Clock B对应6、5、4三位,Clock A对应2、1、0三位,分别可以实现2、4、8、16、32、64、128分频。
S12的输入/输入端口(I/O口)I/O端口功能可设置为通用I/O口、驱动、内部上拉/下拉、中断输入等功能。
设置I/O口工作方式的寄存器有:DDR、IO、RDR、PE、IE和PS。
DDR:设定I/O口的数据方向。
IO :设定输出电平的高低。
RDR:选择I/O口的驱动能力。
PE:选择上拉/下拉。
IE:允许或禁止端口中断。
PS:1、中断允许位置位时,选择上升沿/下降沿触发中断;2、中断禁止时且PE有效时,用于选择上拉还是下拉。
I/O端口设置1、A口、B口、E口寄存器(1)数据方向寄存器DDRA、DDRB、DDREDDRA、DDRB、DDRE均为8位寄存器,复位后其值均为0。
当DDRA=0、DDRB=0、DDRE=0 时A口、B口和E口均为输入口。
否则,A口、B口、E口为输出口。
当DDRA、DDRB、DDRE的任何一位置1时,则该位对应的引脚被设置为输出。
例如,将A口设置为输出口,则其C语言程序的语句为:DDRA=0xff;(2)A口、B口、E口上拉控制寄存器PUCRPUCR为8位寄存器,复位后的值为0。
当PUPAE、PUPBE、PUPEE被设置为1时,A口、B口、E口具有内部上拉功能;为0时,上拉无效。
当A口、B口、E口为地址/数据总线时,PUPAE和PUPBE无效。
(3)A口、B口、E口降功率驱动控制寄存器RDRIVRDRIV为8位寄存器,复位后的值为0,此时,A口、B口、E口驱动保持全功率;当RDPA、RDPB、RDPE为1时,A口、B口、E口输出引脚的驱动功率下降(4)数据寄存器PORTA、PORTB、PORTEPORTA、PORTB、PORTE均为8位寄存器,复位后的值为0,端口引脚输出低电平;要使引脚输出高电平,相应端口对应位应该置1。
由于PE0是/XIRQ、PE1是IRQ,因此,PE0和PE1只能设置为输入。
2、H口寄存器(1)H口I/O寄存器PTH任意时间读/写。
当某一引脚对就的数据方向位设置为1时,读操作返回的是这个端口寄存器的值;否则,读的是引脚的值。
目前接触到的单片机中都有看门狗模块,不过写过的程序也比较简单,程序能够稳定运行,所以就不怎么理会这看门狗,因此也不知道看门狗是怎么回事。
DABAO最近写了个超声波测距的程序,运行过程中程序老是会无故停止,就是死机了。
因此不得不重新面对看门狗,经过两天的奋斗,终于让看门狗顺利工作了。
下面记一下XS128的看门狗的相关寄存器及用法。
看门狗模块用于检测程序的正常运行,启动看门狗后,必须在看门狗复位之前向ARMCOP中依次写入0X55和0XAA ,这样看门狗就会重新启动计时。
如果在规定时间内没有完成向ARMCOP中依次写入0X55和0XAA的操作,就会引起看门狗复位。
这样可以使程序重新运行,减小程序跑死的危害。
看门狗的设置比较简单,只要配置好寄存器COPCTL即可用。
COPCTL的第七位为:WCOP。
若写入COPCTL_WCOP=1,则看门狗行运在窗口模式下,必须在看门狗周期的后25%时间内向ARMCOP 依次写入0X55和0XAA。
若在其他时间写入,或写入其他值,都会让看门狗溢出,使单片机复位。
若写入COPCTL_WCOP=0,则看门狗运行在正常模式下。
当看门狗使能后,只要在看门狗溢出周期内依次向ARMCOP写入0X55和0XAA,使看门狗计数复零,即可。
第六位为:RSBCK,BDM模式下的COP和RTI 停止位。
若COPCTL_RSBCK=1,则只要进入BDM模式,就停止COP和RTI(实时中断)计数。
若COPCTL_RSBCK=0,则在BDM模式下允许COP和RTI 运行。
低三位为:CR2、CR1、CR0。
这三位是看门狗时钟分频位。
当CR[2:0]=000时,看门狗COP不可用。
只要CR[2:0]不为000,看门狗就开启了。
当CR[2:0]=001时,分频值为(2的14次方)。
当CR[2:0]=010时,分频值为(2的16次方)。
当CR[2:0]=011时,分频值为(2的18次方)。
当CR[2:0]=100时,分频值为(2的20次方)。
S12的输入/输入端口(I/O 口)I/O端口功能可设置为通用I/O 口、驱动、内部上拉/下拉、中断输入等功能。
设置I/O口工作方式的寄存器有:DDR、10、RDR、PE、IE 和 PS。
DDR :设定I/O 口的数据方向。
IO :设定输出电平的高低。
RDR :选择I/O 口的驱动能力。
PE:选择上拉/下拉。
IE:允许或禁止端口中断。
PS: 1、中断允许位置位时,选择上升沿/下降沿触发中断;2、中断禁止时且PE有效时,用于选择上拉还是下拉。
I/O端口设置1、A 口、B 口、E 口寄存器(1)数据方向寄存器 DDRA、DDRB、DDREDDRA、DDRB、DDRE均为8位寄存器,复位后其值均为 0。
当 DDRA=0、DDRB=0、 DDRE=0 时 A 口、B 口和 E 口均为输入口。
否则,A 口、B口、E 口为输出口。
当 DDRA、DDRB、DDRE的任何一位置1时,则该位对应的引脚被设置为输出。
例如,将A 口设置为输出口,则其 C语言程序的语句为:DDRA=0xff ;(2) A 口、B 口、E 口上拉控制寄存器PUCRPUCR 初:PUPKE —— ----- --------- -——RUPEE ——-————-——PUPBE PUR\EWrite: | | |PUCR为8位寄存器,复位后的值为 0。
当PUPAE、PUPBE、PUPEE被设置为1时,A 口、B 口、E 口具有内部上拉功能;为0时,上拉无效。
当A 口、 B 口、E 口为地址/数据总线时,PUPAE和PUPBE无效。
(3)A 口、B 口、E 口降功率驱动控制寄存器RDRIVRDRIV 篇眾?RDPK 口| | 良DPE 口口| 嵐DPB RDPARDRIV为8位寄存器,复位后的值为 0,此时,A 口、B 口、E 口驱动保持全功率;当 RDPA、RDPB、RDPE为1时,A 口、B 口、E 口输出引脚的驱动功率下降(4)数据寄存器PORTA、PORTB、PORTEPORTA、PORTB、PORTE均为8位寄存器,复位后的值为 0,端口引脚输出低电平;要使引脚输出高电平,相应端口对应位应该置1。
PLLSEL:选定锁环位 1 选定锁相环时钟0 选定外部时钟PSTP:选定伪停止位伪停止模式下振荡器(工作1)/(停止0)SYSWAI:选定时钟停止位等待模式下系统时钟(停止1)/(继续工作0)ROAWAI:等待模式下降低振荡器放大倍数位1 等待模式下降低振荡器放大倍数0 等待模式下振荡器正常放大倍数PLLWAI:等待模式下锁相环停止工作位1等待模式下锁相环停止工作0等待模式下锁相环正常工作CWAI:等待模式下内核时钟停止工作位1 等待模式下内核时钟停止工作0 等待模式下内核时钟正常工作RTIWAI:等待模式下实时时钟停止工作位1 等待模式下实时时钟停止工作0 等待模式下实时时钟正常工作COPWAI:等待模式下看门狗时钟停止工作位1 等待模式下看门狗时钟停止工作0 等待模式下看门狗时钟正常工作CME:时钟监控使能位。
PLLON:锁相环电路使能位。
AUTO:自动带宽控制位 1 选择高频带宽控制0 选择低频带宽控制ACQ:自动带宽控制滤波器选择位(当AUTO=1时,该位无意义)。
PRE:CPU 伪停止状态时,实时中断(RT1)允许位。
PCE:CPU 虚拟停止时,看门狗(COP)允许位。
SCEM:自给时钟方式使能位,默认为1,探测到外部晶振停振时进入自给时钟模式,为0时,禁止自给时钟模式,探测到外部晶振停振时复位。
时钟合成寄存器SYNR读写Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0Read 0 0SYN5 SYN4 SYN3 SYN2 SYN1 SYN0 WriteVCOFRQ[1:0](BIT7 BIT6)控制压控振动器VCO的增益,默认值为00,VCO的频率与VCOFRQ[1:0]对应表如下所示:读写Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Read/Write REFFRQ1 REFFRQ0 REFDV5 REFDV4 REFDV3 REFDV2 REFDV1 REFDV0 REFFRQ[1:0]默认值为00,表示参考时钟频率在1~2MHZ之间,要求的参考时钟频率与REFFRQ[1:0]的设置值如下表如示:读写Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0ReadRTIF PORF 0LOCKIFLOCK TRACKSCMIFSCMWriteRTIF:实时中断(RTI)标志位 1 发生实时中断0 未发生实时中断PROF:上电复位标志位 1 发生上电复位0 未发生上电复位LOCKIF:锁相环中断标志位1 锁相环锁定位发生变化时,产生中断请求0 锁相环锁定位未发生变化LOCK:锁相环频率锁定标志,为1表示时钟频率已稳定,锁相环频率已锁定。
TRACK:锁相环跟踪模式位 1 系统处于跟踪模式下0 系统处于正常模式下SCMIF:自给时钟中断标志位 1 SCM位发生变化0 SCM位未发生变化SCM:自给时钟状态位1 外部晶振停止工作,系统靠自给时钟工作0 系统靠外部晶振正常工作SCIBDH和SCIBDL一起构成了一个16位的波特率控制寄存器。
SBR12~SBR0为波特率常数。
寄存器名:SCIBDH、SCIBDL;地址:$00C0、$00C1;复位默认值:00000000B、00000100B 读操作:任意;写操作:SBR12~SBR0任意,低位字节写入后生效。
SBR13~SBR15未定义SCI的波特率由下述公式决定:波特率:MCLK/(16×BR)其中BR是波特率常数,设定时写入到SBRl2~SBR0。
复位后,在SCICR2寄存器中的TE、RE位第一次置1前,波特率发生器是关闭的,而且,当SBRl2~SBR0=0时,波特率发生器也会被关闭。
通常选用波特率为9600。
BTST、BSPL和BRLD保留用于检测功能。
LOOPS:SCI回送模式/单线模式允许位,接收器的输入由RSRC位选择确定,发送器的输出受相应的DDRS位(S口I/O方向控制位)控制。
要使用回送或者单线模式,发送、接收器必须同时允许工作。
在LOOPS=1期间,如果与TxD引脚对应的方向控制位被置1,那么TxD引脚就输出SCI的信号;如果方向控制位被清0,那么这时若RSRC=0,TxD引脚就变成高电平(空闲状态),反之若RSRC=1,TxD引脚就变成高阻态。
0:SCI发送和接收部分正常工作。
1:SCI接收部分与RxD引脚断开,空出来的RxD引脚可以用作通用I/O。
SCISWAI:等待模式下SCI停止位0:在等待模式下允许SCI1:在等待模式下禁止SCIRSRC:接收器信号源选择位,当LOOPS=1时,RSRC决定接收器的内部反馈信号路径。
0:接收器的输入在内部连接到发送器输出(并非TxD引脚)。
1:接收器的输入连接到TxD引脚。
M:方式选择位(选择字符帧格式)。
0:1个起始位,8个数据位,1个停止位。
1:1个起始位,8个数据位,第9个数据位,1个停止位。
WAKE:唤醒选择位。
0:介质空闲唤醒。
I:地址标志(最后一个数据位为1)唤醒。
ILT:空闲检测方式选择位,该位在SCI接收器可以使用的两种空闲检测方式中选择一种。
0:快速检测,SCI在一个帧的开始位后立即开始对“1”计数,因此,停止位以及停止位前面的任何“1”均被计算在内,这样可以提前检测到空闲状态。
1:保守检测,SCI在停止位后才开始对“1”计数,因此最后一个字节的停止位以及该位以前的各个为“广的位,对检测的时间长短无影响。
PE:奇偶校验允许位。
0:禁止奇偶校验。
1:允许奇偶校验。
PT:奇/偶校验选择位,如果奇偶校验允许,该位决定收发器使用奇校验还是偶校验。
如果选择偶校验,当数据中有偶数个“广时,校验位置0,否则校验位置1。
0:选择偶校验。
1:选择奇校验。
TIE:发送中断允许位,清0时禁止TDRE产生中断,若置1则允许TDRE位置1时产生SCI 中断请求。
TCIE:发送结束中断允许位,清0时禁止TC产生中断,若置1则允许TC位置1时产生SCI 中断请求。
RIE:接收中断允许位,清0时禁止RDRF和OR产生中断,若置1则允许RDRF或OR置1时产生SCI中断请求。
ILIE:空闲中断允许位,清0时禁止IDLE产生中断,若置1则允许IDLE位置1时产生SCI 中断请求。
TE:发送允许位。
该位由0置1时可用来发送空闲报头。
0:发送器禁止。
1:允许SCI发送部分工作,TxD引脚(PSl/PS3)用于发送。
RE:接收允许位。
0:接收器禁止。
1;允许SCI接收器工作。
RWU:接收器唤醒控制位。
RWU:接收器唤醒控制位0:SCI接收器正常工作。
1:允许唤醒功能,禁止接收器中断。
通常,硬件通过自动清除该位来唤醒接收器。
SBK:中止符发送允许位。
只要该位保持为1,发送器就不停地发出“0”;如果变为0,当前的全“0”帧发送结束后,TxD引脚将变成空闲状态。
如果SBK开关一次,发送器将只发出10(11)个“0”,然后复原,处于空闲或发送数据状态。
0:中止符产生器关闭。
1:产生中止符,至少10或11个连续的“0”。
TDRE:发送保持器空标志位。
发送前必须读SCISR1,并确认TDRE=1,然后将新的数据写入发送保持器以开始发送过程。
复位后该位为1。
0:SC0DR处于忙状态。
1:发送保持器的数据已被传送到发送移位器,这时可以向发送保持器写入新的数据TC:发送结束标志。
该位在发送器空闲(无发送动作)时置位。
读SCISRl,然后写SCIDR将清除该位。
0:发送器忙。
1:发送器空闲。
RDRF:接收数据就绪标志。
当收到的字符已经在SCIDR中就绪时,RDRF置1,顺次读取SCISRl 和SCIDR将会自动清除RDRF。
该位被清除后,必须等到RxD线变为活动,然后重新变成空闲以后,IDLE位才会被再次置1。
0:SCIDR空。
1:SCIDR中数据已就绪。
IDLE:空闲标志。
检测到接收器RxD端空闲(收到10或者11个以上连续的“1”)。
当RWU位为1时,空闲状态不会使该位置1。
该位被清除后,必须等到RDRF置位(RxD线变为活动,然后重新变成空闲),IDLE位才会被再次置1。
0:RxD线活动。
1:RxD线空闲。
OR:重叠错误标志。
如果接收数据寄存器中的数据尚未读取(RDRF=1),接受移位寄存器又准备向其传送新的数据,则称为重叠错误,该位被置1。
必须清除该位,才能使新的数据进入接收数据寄存器。
0:无重叠。
1:出现重叠错误。
NF:噪声错误标志。
噪声错误出现时,该位与RDRF在同一个周器内置位,但如果同时或已经出现重叠错误,该位不置位。
0:采样结果一致。
1:在起始位、数据位或停止位接收期间检测到噪声。
FE:帧格式错误。
如果在应该出现停止位的时刻,检测到0,则该位置位。
顺次读取寄存器SCISRl和SCIDR将清除FE标志。
0:检测到停止位。
1:在预期的停止位处检测到0。
PF:奇偶错误标志。
指示收到数据的奇偶性与校验位是否一致。
奇偶校验允许(PE=1)时,该标志才有意义。
所要求的奇偶性由SC0CR1中的PT位决定。
0:奇偶校验正确。
1:奇偶校验错误。
BRK13:中止符长度控制位。
0:中止符长度为10或11位。
1:中止符长度为13或14位。
TXDIR:单线模式下发送管脚数据方向控制位。
0:单线模式下TxD脚用于输入。
1:单线模式下TxD脚用于输出。
RAF:接收器活动标志位。
反映接收器是否处于活动状态。
在搜索起始位的RT1期间该位置1,当接收器器检测到空闲状态或者出现一个伪起始位(通常由于噪声或波特率匹配错误引起)时,该位清0。
该位由接收器前端控制。
SCI内部分别设有发送和接收两个数据寄存器,其低位都通过SCIDRL访问,读操作返回接收数据寄存器RDR的内容,写操作数据置入发送数据寄存器TDR。
当M=1即运行在9位数据模式时,SCIDRL和SCIDRH形成9位的SCI数据字,这时必须先写入SCIDRH,以便与低位字节(SCIDRL)一起进入发送移位器。
如果M=0即SCI只用于7位或8位的数据传送,可以只访问SCIDRL。
当PE=1即奇偶校验允许时,奇偶校验位由硬件负责,无需软件干预。
R8:接收到的位8,该位写操作无效。
当SCI设置成9位数据运行模式时,该位是从串行数据流中接收到的第9位。
T8:发送位8,任何时候可写。
当SCI设置成9位数据模式时,该位是送到串行数据流的第9位。
该位不必为每个数据重新设置,每次发送可重复使用。
R7T7-R0T0:收/发数据位7-0,读操作返回只读寄存器RDR的内容,写操作写入只写寄存器TDR。
SPIE:SPI中断允许位。
0:禁止SPI中断。
1:每次SPRF或MODF状态标志置位时发出硬件中断请求。
SPE:SPI系统允许位。
当MODF=1时,SPE读取结果总是0,SPOCR1的写操作指令必须作为模式故障恢复序列的一部分嵌入其中。