TMS320C2000系列DSP寄存器及初始化
TMS320LF240X系列DSP使用时,在掌握了其工作原理和过程之后,就要熟练使用DSP自带的一些资源如:IO口、DSRM、SRAM、EVA、,EVB、SCI、SPI、ADC和WD等等;对这些资源的使用很重要的一点就是对其合理配置和初始化,初始化的关键就是对其相关寄存器的设置,设置寄存器必须了解各位的含义,记住每位的含义是不大现实的;为此,我们专门设计了DSP初始化子程序,注明每个模块所用到的寄存器以及每位的含义,以方便设计。
=================================================
DSP系统初始化
=================================================
ARB---辅助寄存器指针缓冲器:当ARP被加载到ST0,除了使用LST指令外,原有的ARP值被复制到ARB中当通
过LST#1指令加载ARB时,也把相同的ARB值复制到ARP
ARP---辅助寄存器指针:ARP选择间接寻址时当前的辅助寄存器AR当ARP被加载时,原有的ARP值被复制到ARB
寄存器中在间接寻址时,ARP可由存储器相关指令改变,也可由LARP,MAR,和LST指令改 变当执行LST#1指令时,ARP也可加载每ARB相同的值
C---- 进位位:此位在加法结果产生进位时被置为1,或在减法结果产生借位时被清0否则,除了执行带有16 位
移位的ADD或SUB指令外,C在加法后被清除或在减法后被设置在ADD或USB指令时,ADD仅可对进位位进行置位而SUB仅可对进位位进行清除,而不会对进位位产生其他影响移1位和循环指令也可影响进位位C,以及SETC、CLRC和LST指令也可影响C条件转移、调用和返回指令可以根据C的状态进行执行复位时C被置1
CNF---片内DARAM配置位:若CNF=0,可配置的双口RAM区被映射到数据存储空间若CNF=I,可配置的双口RAM
区被映射到程序存储空间CNF位可通过SETC CNF,CLRC CNF和LST指令修改R/S/复位时CNF置为0
DP----数据存储器页指针:9位的DP寄存器与一个指令字的低七位一起形成一个16位的直接寻址地址INTM---中断模式位:当INTM被置为0时,所有的未屏蔽中断使能当它被置1,所有可屏蔽中断禁止
OV----溢出标志位:该位保存一个被锁存的值,用以指示CALU中是否有溢出发生一旦发生溢出,OV位保持为1
直到下列条件中的一个发生时才能被清除
OVM---溢出方式位:当OVM=0时,累加器中结果正常溢出当OVM=1时,根据遇到溢出的情况,累加器被设置为它
的最大正值或负值SETC指令和CLRC指令分别对该位进行置位和复位 PM----乘积移位方式:
若PM=00,乘法器的32位乘积结果不移位直接装入CALU 若PM=01,PREG输出左移1位后装入CALU,最低位LSB以0填充 若PM=10,PREG输出左移4位后装入CALU,最低位LSB以0填充 若PM=11,时PREG输出进行符号扩展右移六位
SXM----符号扩展方式位:当SXM=1时,数据通过定标移位器传送到累加器时将产生符号扩展SXM=0将抑制符号扩
展SXM位对某些指令没有影响
TC---- 测试/控制标志位:在下述情况之一,TC位被置1:由BIT或BITT指令测试的位为1当利用NORM指令测
试时,累加器的两个最高有效位\"异或\"功能为真条件转移、调用和返回指令可根据TC位的条件来执行BIT、
1
BITT、CMPR、LST和NORM指令影响TC位
XF---- XF引脚状态位:该位决定XF引脚的状态SETCXF指令可对位XF进行置位,而CLRCXF指令可对其进行清0
复位时XF置1
SCSR1--系统控制和状态寄存器1---地址7018H
D15---保留位
D14---CLKSRC。CLKOUT引脚源选择位 0 CLKOUT引脚输出CPU时钟 1 CLKOUT 引脚输出WDCLK时钟 D13---12 LPM(1:0)。低功耗模式选择位 00 CPU 进入IDLE1(LPM0)
01 CPU 进入IDLE2(LPM1) 1x CPU 进入HALT(LPM2)
D11-9---PLL时钟预定标选择位,这三位对输入时钟选择PLL倍频系数。
sCLKPS1 CLIPS0 系统时钟频率 0 0 0 4*fin
1 0 0 0.8*fin 0 0 1 2*fin 1 0 1 0.66*fin
0 1 0 1.33*fin
1 1 0 0.57*fin 0 1 1 1*fin
1 1 1 0.5*fin
D8---保留位
D7---ADC CLKEN。ADC模块时钟使能控制位。
0 禁止ADC模块的时钟(即:关断ADC模块以节约能量) 1 使能ADC模块的时钟,且正常运行 D6---SCI CLKEN。SCI模块时钟使能控制位。
0 禁止SCI模块的时钟(即:关断SCI模块以节约能量) 1 使能SCI模块的时钟,且正常运行 D5---SPI CLKEN。SPI模块时钟使能控制位。
0 禁止SPI模块的时钟(即:关断SPI模块以节约能量) 1 使能SPI模块的时钟,且正常运行 D4---CAN CLKEN。CAN模块时钟使能控制位。
0 禁止CAN模块的时钟(即:关断CAN模块以节约能量) 1 使能CAN模块的时钟,且正常运行 D3---EVB CLKEN。EVB模块时钟使能控制位。
0 禁止EVB模块的时钟(即:关断EVB模块以节约能量) 1 使能EVB模块的时钟,且正常运行 D2---EVA CLKEN。EVA模块时钟使能控制位。
0 禁止EVA模块的时钟(即:关断EVA模块以节约能量) 1 使能EVA模块的时钟,且正常运行 D1---保留位
D0---ILLADR位。无效地址检测位。
SCSR2------系统控制和状态寄存器2---7019h
D15-7:保留位
2
D6---I/P QUAL,时钟输入限定,它限定输入到LF240x的CAP1-6、XINT1-2、ADCSOC、PDPINTA*/PDPINTB*引脚上的最
小脉冲宽度。脉冲宽度只有达到 这个宽度之后,内部的输入状态才会改变。 0-锁存脉冲至少需要5个时钟周期
1-锁存脉冲至少需要11个时钟周期。 如这些引脚作I/O使用,则不使用输入时钟限定电路。
D5---WD保护位,该位可用来禁止WD工作。该位是一个只能清除的位,复位后=1。通过向该位写1对其清0。 0-保护WD,防止WD被软件禁止。 1-复位时的默认值,禁止WD工作。
D4---XMIF HI-Z。该位控制外部存储器接口信号(XMIF)。 0-所有XMIF信号为正常驱动模式(非高阻态)。
1-所有XMIF信号处于高阻态。 注意:该位仅对LF2407/ LF2407A型号有效,对其它型号为保留位 D3---(使能位)。这位反映了BOOTEN*引脚在复位时的状态。
0-使能引导ROM。地址0000h-00FFh被片内引导 ROM块占用。禁止用FLash存储器。 1-禁止引导ROM。LF2407片内Flash程序存储器映 射地址范围为0000h-7FFFh。 D2---MP/MC* (微处理器/微控制器选择)。
0:DSP设置为微控制器方式,片内FLASH映射到程序存 储器空间,地址为0000h-7FFFh。
1:DSP设置为微处理器方式,程序空间0000h-7FFFh被映射到片外程序存储器空间(必须外扩外部程序存储器) D1-0---SARAM的程序/数据空间选择
00-地址空间不被映射,该空间被分配到外部存储器
IMR------中断屏蔽寄存器
D15~6 保留位。这些位读出时始终为0。 D5---INT6 mask中断6的屏蔽位。 0 中断INT6级被屏蔽 1 中断INT6级被使能 D4---INT5 mask中断5的屏蔽位。。 0 中断INT5级被屏蔽 1 中断INT5级被使能 D3---INT4 mask中断4的屏蔽位。 0 中断INT4级被屏蔽 1 中断INT4级被使能
D2---INT3 mask中断3的屏蔽位。
0 中断INT3级被屏蔽
1 中断INT3级被使能 D1---INT2 mask中断2的屏蔽位。
0 中断INT2级被屏蔽 1 中断INT2级被使能 D0---INT1 mask中断1的屏蔽位。
0 中断INT1级被屏蔽 1 中断INT1级被使能
IFR------中断标志寄存器
D15~6 保留位。这些位读出时始终为0。
D5---INT6 flag中断6标志位。该位用作连至第6级中断INT6的所有中断标志。 0 无INT6级的中断挂起
1 至少一个INT6级的中断挂起,向该位写1可将该位清除为0,即清除中断请求。 D4---INT5 FLAG 中断5标志位。该位用作连至第5级中断INT5的所有中断标志。 0 无INT5级的中断挂起
1 至少一个INT5级的中断挂起,向该位写1可将该位清除为0,即清除中断请求。 D3---INT4 FLAG 中断4标志位。该位用作连至第4级中断INT4的所有中断标志。 0 无INT4级的中断挂起
1 至少一个INT4级的中断挂起,向该位写1可将该位清除为0,即清除中断请求。 D2---INT3 FLAG 中断3标志位。该位用作连至第3级中断INT3的所有中断标志。 0 无INT3级的中断挂起
3
1 至少一个INT3级的中断挂起,向该位写1可将该位清除为0,即清除中断请求。 D1---INT2 FLAG 中断2标志位。该位用作连至第2级中断INT2的所有中断标志。 0 无INT2级的中断挂起
1 至少一个INT2级的中断挂起,向该位写1可将该位清除为0,即清除中断请求。 D0---INT1 FLAG 中断1标志位。该位用作连至第1级中断INT1的所有中断标志。 0 无INT1级的中断挂起
1 至少一个INT1级的中断挂起,向该位写1可将该位清除为0,即清除中断请求。
外设中断寄存器包括如下几种: 外设中断请求寄存器0(PIRQR0) 外设中断请求寄存器1(PIRQR1) 外设中断请求寄存器2(PIRQR2) 外设中断应答寄存器0(PIACKR0) 外设中断应答寄存器1(PIACKR1) 外设中断应答寄存器2(PIACKR2)
外设中断请求寄存器和外设中断应答寄存器都属于外设中断扩展模块用来向CPU产生INT1-INT6中断请求的内部寄存器。这些寄存器用户只能对其读。
PIVR-----外设中断向量寄存器---701Eh
该寄存器的16位V15-V0,为最近 一次被应答的外设中断的地址向量。
PIRQR0------外设中断请求寄存器0---7010h
D15-0 :外设请求标志位IRQ0.15-IRQ0.0 0 无相应外设的中断请求 1 相应外设的中断请求被挂起
注:写入1会发出一个中断请求到DSP核,写入0无影响。
PIRQR1------外设中断请求寄存器1---7011h
D15: 保留位,读出为0,写入无影响。 D14-0 :外设请求标志位IRQ1.14-IRQ1.0 0 无相应外设的中断请求 1 相应外设的中断请求被挂起
注:写入1会发出一个中断请求到DSP核,写入0无影响。
PIRQR2------外设中断请求寄存器2---7012h
D15: 保留位
D14-0 :外设请求标志位IRQ2.14-IRQ2.0 0 无相应外设的中断请求
1 相应外设的中断请求被挂起
注:写1会发出一个中断请求到DSP核,写0无影响。
PIACKR0------外设中断应答寄存器0---7014h PIACKR1------外设中断应答寄存器1---7015h PIACKR2------外设中断应答寄存器2---7016h
XINT1CR------外部中断1控制寄存器---7070h
寄存器位 对应功能 4
D15:XINT1标志位。 D14-3:保留位 D2:XINT1极性 D1:XINT1优先级 D0:XINTl使能位
0 没有检测到跳变 1 检测到跳变 0 在下降沿产生中断 1 在上升沿产生中断 0 高优先级 1 低优先级 0 屏蔽中断 1 使能中断 XINT2CR------外部中断2控制寄存器---7071h 寄存器位 对应功能 当XINT2的中断请求被应 答时,该位被自动清0。 D15:XINT2中断请求标志位 0-没有检测到跳变 1-检测到跳变 软件向该位写1(写0无效)或器件复位时,该位也被清0 D14-3:保留位 该位决定XINT2引脚信号的上升沿还是下降沿产生中断。 D2:XINT2极性 0 在下降沿产生中断 1 在上升沿产生中断 D1:XINT2的中断优先级 D0:XINT2的中断使能位
0 高优先级 1 低优先级 0 屏蔽该中断 1 使能该中断 中断相关代码
setc intm 关闭所有可屏蔽中断 clrc sxm clrc ovm
clrc cnf B0 被配置为数据存储空间 ldp #DP_PF1 splk #85feh, SCSR1 splk #0e8h, WDCR不使能WDT ldp #0
splk #0000h, IMR 关闭中断 splk #0ffffh, IFR 清全部中断标志 LDP #0E0H
SPLK #81FEH, SCSR1 CLKIN=6 M,CLKOUT=24 M SPLK #0E8H, WDCR 不使能WDT
5
==========================================================
GPIO----初始化
==========================================================
7090h MCRA I/O复用控制寄存器A 709Ch PCDATDIR I/O端口C数据和方向寄存器 7092h MCRB I/O复用控制寄存器B 709Eh PDDATDIR I/O端口D数据和方向寄存器 7094h MCRC I/O复用控制寄存器C
7095h PEDATDIR I/O端口E数据和方向寄存器 7098h PADATDIR I/O端口A数据和方向寄存器 7096h PFDATDIR I/O端口F数据和方向寄存器
709Ah PBDATDIR I/O端口B数据和方向寄存器
MCRA----I/O口复用控制寄存器A---7090H
MCRB----I/O口复用控制寄存器B---7092H
------------------------------------------- ------------------------------------------- MCRA.n=1(基本功能) MCRA.n=0(一般I/O口) MCRB.n=1(基本功能) MCRB.n=0(一般I/O口) ------------------------------------------- -------------------------------------------0 MCRA. 0 SCITXD IOPA0 0 MCRB. 0 W/R IOPC0 1 MCRA. 1 SCIRXD IOPA1 1 MCRB. 1 BIO IOPC1 2 MCRA. 2 XINT1 IOPA2 2 MCRB. 2 SPISIMO IOPC2 3 MCRA. 3 CAP1/QEP1 IOPA3 3 MCRB. 3 SPISOMI IOPC3 4 MCRA. 4 CAP2/QEP2 IOPA4 4 MCRB. 4 SPICLK IOPC4 5 MCRA. 5 CAP3 IOPA5 5 MCRB. 5 SPISTE IOPC5 6 MCRA. 6 PWM1 IOPA6 6 MCRB. 6 CANTX IOPC6 7 MCRA. 7 PWM2 IOPA7 7 MCRB. 7 CANRX IOPC7 8 MCRA. 8 PWM3 IOPB0 8 MCRB. 8 XINT2/ADCSOC IOPD0 9 MCRA. 9 PWM4 IOPB1 9 MCRB. 9 EMU0 Reserved 10 MCRA.10 PWM5 IOPB2 10 MCRB.10 EMU1 Reserved 11 MCRA.11 PWM6 IOPB3 11 MCRB.11 TCK Reserved 12 MCRA.12 T1PWM/T1CMP IOPB4 12 MCRB.12 TDI Reserved 13 MCRA.13 T2PWM/T2CMP IOPB5 13 MCRB.13 TDO Reserved 14 MCRA.14 TDIRA IOPB6 14 MCRB.14 TMS Reserved 15 MCRA.15 TCLKINA IOPB7 15 MCRB.15 TMS2 Reserved
MCRC------I/O口复用控制寄存器A---7094H
----------------------------------------------
MCRC.n=1(基本功能) MCRC.n=0(一般I/O口) ----------------------------------------------
0 MCRC. 0 CLKOUT IOPE0 8 MCRC. 8 CAP5/QEP4 IOPF0 1 MCRC. 1 PWM7 IOPE1 9 MCRC. 9 CAP6 IOPF1 2 MCRC. 2 PWM8 IOPE2 10 MCRC.10 T3PWM/T3CMP IOPF2 3 MCRC. 3 PWM9 IOPE3 11 MCRC.11 T4PWM/T4CMP IOPF3 4 MCRC. 4 PWM10 IOPE4 12 MCRC.12 TDIRB IOPF4 5 MCRC. 5 PWM11 IOPE5 13 MCRC.13 TCLKINB IOPF5 6 MCRC. 6 PWM12 IOPE6 14 MCRC.14 Reserved IOPF6 7 MCRC. 7 CAP4/QEP3 IOPE7
15 MCRC.15 Reserved Reserved
-
6
注意: 保留位是不可操作的,读出为0,写入对它无影响。当复用I/O脚无论是被配置为外设功能还是为通用I/O时,引脚的状态都可通过读I/O数据寄存器来获取。如果I/O端口用作通用I/O,则必须对数据和方向寄存器进行初始化设置,规定其为输入端口还是输出端口。
PADATDIR---I/O端口A数据和方向控制寄存器---7098h PA7-PA0的数据方向 D15-8---AnDIR 0-相应引脚配置为输入 1-相应引脚配置为输出 PBDATDIR----I/O端口B数据和方向控制寄存器---709Ah PB7-PB0的数据方向 D15-8:BnDIR 0-相应引脚配置为输入 1-相应引脚配置为输出 如果BnDIR=0,引脚配置为输入方式。 如果AnDIR=0,引脚配置为输入: 0-相应引脚的电平读为低电平 D7-0---IOPAn 1-相应引脚的电平读为高电平 如果AnDIR=1,引脚配置为输出: 0-设置相应引脚,使其输出信号为低电平 1-设置相应引脚,使其输出信号为高电平 D7-0:IOPBn 0-相应引脚的电平读为低电平 1-相应引脚的电平读为高电平 如果BnDIR=1,引脚配置为输出 0-设置相应引脚,使其输出信号为低电平时有效 1-设置相应引脚,使其输出信号为高电平时有效
PCDATDIR------I/O端口C数据和方向控制寄存器---709Ch
D15-8:CnDIR PC7-PC0的数据方向 0-相应引脚配置为输入 1-相应引脚配置为输出 D7-0:IOPC7-IOPC0
如果CnDIR=0,引脚配置为输入。 0-相应引脚的电平读为低电平 1-相应引脚的电平读为高电平
如果BnDIR=1,引脚配置为输出
0-设置相应引脚,使其输出信号为低电平 1-设置相应引脚,使其输出信号为高电平
PDDATDIR------I/O端口D数据和方向控制寄存器---709Eh
D15-9:保留位 D8: D0DIR
0-相应引脚配置为输入 1-相应引脚配置为输出 D7-1:保留 D0: IOPD0
如果D0DIR=0,引脚配置为输入。 0-相应引脚的电平读为低电平 1-相应引脚的电平读为高电平 如果D0DIR=1,引脚配置为输出
0-设置相应引脚,使其输出信号为低电平时有效 1-设置相应引脚,使其输出信号为高电平时有效
7
PEDATDIR------I/O端口E数据和方向控制寄存器---7095h
D15-8:EnDIR
0-相应引脚配置为输入 1-相应引脚配置为输出 D7-0:IOPEn
如果EnDIR=0,引脚配置为输入。 0-相应引脚的电平读为低电平 1-相应引脚的电平读为高电平 PFDATDIR------I/O端口F数据和方向控制寄存器---7096h
D15:保留位 D14-8:EnDIR
0-相应引脚配置为输入 1-相应引脚配置为输出 D7-0:IOPFn
如果FnDIR=0,引脚配置为输入。 0-相应引脚的电平读为低电平 如果EnDIR=1,引脚配置为输出
0-设置相应引脚,使其输出信号为低电平时有效 1-设置相应引脚,使其输出信号为高电平时有效
IO相关代码
ldp #DP_PF2 splk #0ff00h, MCRB
lacl MCRC
and #0ff00h IOPE口配置为一般I/O功能 sacl MCRC lacl PEDATDIR
or #0ff00h IOPE 设置为输出方式 sacl PEDATDIR
-相应引脚的电平读为高电平 如果FnDIR=1,引脚配置为输出
-设置相应引脚,使输出为低电平有效-设置相应引脚,使输出为高电平有效8
1 0 1
==================================================
EVA/B----初始化
==================================================
事件管理器A的引脚 事件管理器B的引脚 --------------------------------------------
CAP1/QEP1 捕捉单元1输入,QEP电路输入1 CAP4/QEP3 捕捉单元4输入,QEP电路 输入3 CAP2/QEP2 捕捉单元2输入,QEP电路 输入2 CAP5/QEP4 捕捉单元5输入,QEP电路 输入4 CAP3 捕捉单元3输入 CAP6 捕捉单元6输入 PWM1 比较单元1输出1 PWM7 比较单元4输出1 PWM2 比较单元1输出2 PWM8 比较单元4输出2 PWM3 比较单元2输出1 PWM9 比较单元5输出1 PWM4 比较单元2输出2 PWM10 比较单元5输出2 PWM5 比较单元3输出1 PWM11 比较单元6输出1 PWM6 比较单元3输出2 PWM12 比较单元6输出2
T1CMP/T1PWM 定时器1比较/PWM输出 T3CMP/T3PWM 定时器3比较/PWM输出 T2CMP/T2PWM 定时器2比较/PWM输出 T4CMP/T4PWM 定时器4比较/PWM输出 TCLKINA EVA定时器的外部时钟输入 TCLKINB EVB定时器的外部时钟输入 TDIRA EVA定时器的计数方向输入 TDIRB EVB定时器的计数方向输入
------------------------------------------------- EV寄存器及地址 EVA定时器寄存器地址
-------------------------------------------------
地址 寄存器 名称 说明
7400h GPTCONA 定时器控制寄存器A EVA 7401h T1CNT 定时器1的计数寄存器 定时器1 7402h T1CMPR 定时器1的比较寄存器 7403h T1PR 定时器1的周期寄存器 7404h T1CON 定时器1的控制寄存器
7405h T2CNT 定时器2的计数寄存器 定时器2 7406h T2CMPR 定时器2的比较寄存器 7407h T2PR 定时器2的周期寄存器 7408h T2CON 定时器2的控制寄存器 7500h GPTCONB 定时器控制寄存器B EVB 7501h T3CNT 定时器1的计数寄存器 定时器3 7502h T3CMPR 定时器1的比较寄存器 7503h T3PR 定时器1的周期寄存器 7504h T3CON 定时器1的控制寄存器
7505h T4CNT 定时器2的计数寄存器 定时器4 7506h T4CMPR 定时器2的比较寄存器 7507h T4PR 定时器2的周期寄存器 7508h T4CON 定时器2的控制寄存器
9
EVA比较控制寄存器地址
-------------------------------------
7411h COMCONA 比较控制寄存器A EVA 7413h ACTRA 比较动作控制寄存器A 7415h DBTCONA 死区时间控制寄存器A 7417h CMPR1 比较寄存器1 7418h CMPR2 比较寄存器2 7419h CMPR3 比较寄存器3
EVA捕捉控制寄存器地址
-------------------------------------
7420h CAPCONA 捕捉控制寄存器A EVA 7422h CAPFIFOA 捕捉FIFO状态寄存器A 7423h CAP1FIFO 两级深度的捕捉FIFO堆栈1 7424h CAP2FIFO 两级深度的捕捉FIFO堆栈2 7425h CAP3FIFO 两级深度的捕捉FIFO堆栈3
EVB比较控制寄存器地址
-------------------------------------
7511h COMCONB 比较控制寄存器B EVB 7513h ACTRB 比较动作控制寄存器B 7515h DBTCONB 死区时间控制寄存器B 7517h CMPR4 比较寄存器4 7518h CMPR5 比较寄存器5 7519h CMPR6 比较寄存器6
EVB捕捉控制寄存器地址
------------------------------------------- 7520h CAPCONB 捕捉控制寄存器B EVB 7522h CAPFIFOB 捕捉FIFO状态寄存器B 7523h CAP4FIFO 两级深度的捕捉FIFO堆栈4 7524h CAP5FIFO 两级深度的捕捉FIFO堆栈5 7525h CAP6FIFO 两级深度的捕捉FIFO堆栈6
FIFO堆栈的底部寄存器,允许读取最近的捕捉值
------------------------------------------------- 7427h CAP1FBOT EVA 7428h CAP2FBOT 7429h CAP3FBOT
7527h CAP4FBOT EVB 7428h CAP5FBOT 7429h CAP6FBOT
EV中断寄存器地址
-------------------------------------------------
742Ch EVAIMRA EVA的中断屏蔽寄存器A EVA 742Dh EVAIMRB EVA的中断屏蔽寄存器B 742Eh EVAIMRC EVA的中断屏蔽寄存器C 742Fh EVAIFRA EVA的中断标志寄存器A 7430h EVAIFRB EVA的中断标志寄存器B 7431h EVAIFRC EVA的中断标志寄存器C 752Ch EVBIMRA EVB的中断屏蔽寄存器A EVB 752Dh EVBIMRB EVB的中断屏蔽寄存器B 752Eh EVBIMRC EVB的中断屏蔽寄存器C 752Fh EVBIFRA EVB的中断标志寄存器A 7530h EVBIFRB EVB的中断标志寄存器B 7431h EVBIFRC EVB的中断标志寄存器C
10
事件管理器中断标志寄存器
------------------------------------------
EVAIFRA---EVA中断标志寄存器A--742FH
-------------------------------------------------
D15~11 保留位
D10 T1OFINT FLAG。通用定时器1上溢中断标志 READ: 0标志被复位 WRITE:0 无效 1标志被置位 1复位标志位 D9 T1UFINT FLAG。通用定时器1下溢中断标志 READ: 0标志被复位 WRITE:0 无效 1 标志被置位 1 复位标志位 D8: T1CINT FLAG。通用定时器1比较中断标志位。 READ: 0 标志被复位 WRITE:0 无效 1 标志被置位 1 复位标志位 D7: T1PINT FLAG。通用定时器1周期中断标志位。 READ: 0 标志被复位 WRITE:0 无效 1 标志被置位 1 复位标志位
D6~4 保留位
D3: CMP3INT。比较单元3中断标志位。 READ: 0 标志被复位 WRITE:0 无效 1 标志被置位 1 复位标志位 D2: CMP2INT。比较单元2中断标志位 READ: 0 标志被复位 WRITE:0 无效 1 标志被置位 1 复位标志位 D1: CPP1INT。比较单元1中断标志位 READ: 0 标志被复位 WRITE:0 无效 1 标志被置位 1 复位标志位 D0: PDPINTA。功率驱动保护中断标志。 READ: 0 标志被复位 WRITE:0 无效 1 标志被置位 1 复位标志位
EVAIFRB---- EVA中断标志寄存器B----7430H
-------------------------------------------------------
D15~4 保留位
D3: T2OFINT FLAG。通用定时器2上溢中断标志位。 READ: 0 标志被复位 WRITE:0 无效 1 标志被置位 1 复位标志位 D2: T2OFINT FLAG。通用定时器2上溢中断标志位 READ: 0 标志被复位 WRITE:0 无效 1 标志被置位 1 复位标志位
D1: T2CINT FLAG。通用定时器2比较中断标志位。 READ: 0 标志被复位 WRITE:0 无效 1 标志被置位 1 复位标志位 D2: T2PINT FLAG。通用定时器2周期中断标志位。 READ: 0 标志被复位 WRITE:0 无效 1 标志被置位 1 复位标志位
EVAIFRC----EVA中断标志寄存器C----7431H
------------------------------------------------------- D15~3 保留位
D2 CAP3INT FLAG。捕获单元3中断标志位 READ: 0 标志被复位 WRITE:0 无效 1 标志被置位 1 复位标志位 D1 CAP2INT FLAG。捕获单元2中断标志位
READ: 0 标志被复位 WRITE:0 无效 1 标志被置位 1 复位标志位 D0 CAP1INT FLAG 。捕获单元1中断标志位 READ: 0 标志被复位 WRITE: 0 无效 1 标志被置位 1 复位标志位
EVAIMRA----EVA中断屏蔽寄存器A----742CH
--------------------------------------------------------- D15~11 保留位
D10 T1OFINT ENABLE。通用定时器1上溢中断使能位。 0 禁止 1 使能
D9 T1UFINT ENABLE。通用定时器1下溢中断使能位。 0 禁止 1 使能
D8 TICINT ENABLE。通用定时器1比较中断使能位。
0 禁止 1 使能
D7 TIPINT ENABILE。通用定时器1周期中断使能位。
11
0 禁止 1 使能 D6~4 保留位。
D3 CMP3INT ENABILE。比较单元3中断使能位。
0 禁止 1 使能
D2 CMP2INT ENABLE。比较单元2中断使能位。
0 禁止 1 使能
D1 CMPIINT ENABLE。比较单元1中断使能位。 0 禁止 1 使能
D0 PDPINTA ENABLE。功率驱动保护中断使能位 0 禁止 1 使能
EVAIMRB----EVA中断屏蔽寄存器B--地址742Dh
------------------------------------------------------- D15~4 保留位
D3 T2OFINT ENABILE。通用定时器2上溢中断使能位。
0 禁止 1 使能
D2 T2UFINT ENABLE。通用定时器2下溢中断使能位。
0 禁止 1 使能
D1 T2CINT ENABLE。通用定时器2比较中断使能位。
0 禁止 1 使能
D0 T2PINT ENABLE。通用定时器2周期中断使能位。
0 禁止 1 使能
EVAIMRC----EVA中断屏蔽寄存器--地址742Eh
------------------------------------------------------- D15~3 保留位
D2 CAP3INT ENABLE。捕获单元3中断使能位。 0 禁止 1 使能
D1 CAP2IINT ENABLE。捕获单元2中断使能位。
0 禁止 1 使能
D0 CAP1INT ENABLE。捕获单元1中断使能位。 0 禁止 1 使能
EVBIFRA---EVB中断标志寄存器A----752FH EVBIFRB---EVB中断标志寄存器B----7530H EVBIFRC---EVB中断标志寄存器C----7531H EVBIMRA---EVB中断屏蔽寄存器A----752CH EVBIMRB---EVB中断屏蔽寄存器B----752DH EVBIMRC---EVB中断屏蔽寄存器C----752EH
12
=============================================
定时器初始化
==============================================
TxCON------定时器X控制寄存器---x=1,2,3,4;7404H,7408H,7504H,7508H
仿真控制位 00 一旦仿真挂起,立即停止 D15~14 Free SOFt 01 一旦仿真挂起,在当前定时器周期结束后停止 10 操作不受仿真挂起的影响 11 操作不受仿真挂起的影响 D13 保留位 读为0,写无影响 记数模式选择 D12~11 TMODE1/TMODE0 00 停止/保持 01 连续增/减计数模式 10 连续增计数模式 11定向增计数模式 输入时钟预定标系数 D10~8 TPS2/TPS0 000 X/1 001 X/2 010 X/4 011 X/8 100 X/16 101 X/32 110 X/ 111 X/128 X=CPU时钟频率 定时器2、4周期寄存器选择位。 D7 T2SWT1/T4SWT1 0 定时器2、4使用自身的周期寄存器 1 使用T1CON、T3CON中的定时器使能位来使能或禁止响应操作, 从而忽略了自身的定时器使能位 定时器使能位 D6 TENABLE 0 禁止定时器操作,即定时器被置于保持状态且预定标器被复位 1 使能定时器操作 时钟源选择。 D5 ~4 TCLKS1/TCLKS0 00 内部时钟 01 外部时钟 10 保留 11 正交编码脉冲电路----只适用于定时器2和定时器4,在定时器1、3中保留,这种操作只在SELT1PR=0时有效 定时器比较寄存器(如果有效)的重装载条件。 D3~2 TCLD1/TCLD0 00 当计数值是0时重装载 01 当计数值是0或等于周期寄存器值时重装载 10 立即重装载 11 保留 D1 TECMPR 定时器比较使能位。 0 禁止定时器比较操作 1 使能定时器比较操作 周期寄存器选择,在定时器2、4中有效,定时器1、3中保留 D0 SELT1PR 0 使能自身的周期寄存器 1 使用T1PR(在 EVA模块)或T3PR(在EVB模块)作为周期寄存器,而忽略自身的周期寄存器
- 13 -
GPTCONA------全局通用定时器控制寄存器---7400H
D15 保留位 D14 T2STAT 通用定时器2的状态,只读。 0 减计数 1 增计数 通用定时器1的状态,只读 0 减计数 1增计数 保留位 通用定时器2启动模数转换事件。 00 无事件启动模数转换 D10~9 T2TOADC 01 设置由下溢中断标志来启动模数转换 10 设置由周期中断标志在启动模数转换 11 设置由比较中断标志来启动模数转换 通用定时器1启动模数转换事件。 00 无事件启动模数转换 D8~7 T1 TOADC 01 设置由下溢中断标志来启动模数转换 10 置由周期中断标志在启动模数转换 11 设置由比较中断标志来启动模数转换 比较输出允许,如果PDPINTx有效,则该位设置为0。 D6 TCOMPOE 0 禁止所有通用定时器比较输出(所有比较输出都置成高阻态)、 1 使能所有通用定时器比较输出 D5~4 D3~2 T2PIN 保留位 通用定时器2比较输出极性。 00 强制低 01 低有效 10 高有效 11 强制高 通用定时器1比较输出极性。 00 强制低 01 低有效 10 高有效 11 强制高 D13 T1STAT D12 ~11 D1~0 T1PIN
GPTCONB------全局通用定时器控制寄存器B---7500H D15 D14 T2STAT 保留位 通用定时器4的状态,只读。 0 减计数 1 增计数 通用定时器3的状态,只读。 0 减计数 1 增计数 保留位 通用定时器4启动模数转换事件。 00 无事件启动模数转换 D10~9 T2TOADC 01 设置由下溢中断标志来启动模数转换 10 设置由周期中断标志在启动模数转换 11 设置由比较中断标志来启动模数转换 通用定时器3启动模数转换事件。 00 无事件启动模数转换 D8~7 T1 TOADC 01 设置由下溢中断标志来启动模数转换 10 置由周期中断标志在启动模数转换 11 设置由比较中断标志来启动模数转换 D6 TCOMPOE
比较输出允许,如果PDPINTx有效,则该位设置为0。 - 14 -
D13 T1STAT D12 ~11
0 禁止所有通用定时器比较输出(所有比较输出都置成高阻态)、 1 使能所有通用定时器比较输出 D5~4 D3~2 T2PIN 保留位 通用定时器4比较输出极性。 00 强制低 01 低有效 10 高有效 11 强制高 通用定时器3比较输出极性。 00 强制低 01 低有效 10 高有效 11 强制高 D1~0 T1PIN
COMCONA------比较控制寄存器A---7411H
比较使能位 D15 CENABLE 0 禁止比较操作,CMPRX和ACTRA寄存器的影子寄存器为透明 1 使能比较操作 比较寄存器CMPRX重载条件。 D14 ~13 CLD1/CLD0 00 当T1CNT=0时(即下溢) 01 当T1CNT=0或T1CNT=T1PR时(即下溢或周期匹配) 10 立即 11 保留 D12 SVENABLE 空间矢量PWM模式矢量位。 0 禁止空间矢量PWM模式 1 使能空间矢量PWM模式 方式控制寄存器重载条件。 D11~10 ACTRLD1/ACTRLD0 00 当T1CNT=0时(即下溢) 01 当T1CNT=0或T1CNT=T1PR时(即下溢或周期匹配) 10 立即 11 保留 D9 FCOMPOE D8 PDPINTA STATUS D7~0
比较输出使能位。有效的PDPINTA将此位清零 这一位反映了当前PDPINTA引脚的状态。 (该位只在240XA系列中应用,在240X系列中为保留位) 保留位 ACTRA---比较方式控制寄存器---7413H D15 SVRDIR D14~12 D2/D0 D11~10 CMP6ACT1/0 空间矢量PWM旋转方向位,仅用于空间矢量PWM的产生。 0 正向(CCW) 1 负向(CW) 基本的空间矢量位,仅用于空间矢量PWM输出的产生 引脚PWM6/IOPB3上的比较输出方式选择位 00 强制低 01 低有效 10 高有效 11强制高 引脚PWM5/IOPB2上的比较输出方式选择位 00 强制低 01 低有效 10 高有效 11 强制高 引脚PWM4/IOPB1上的比较输出方式选择位 00 强制低 01 低有效 10 高有效 11 强制高 引脚PWM3/IOPB0上的比较输出方式选择位 00 强制低 01 低有效 10 高有效 11 强制高 引脚PWM2/IOPA7上的比较输出方式选择位 00 强制低 01 低有效 10 高有效 11 强制高 引脚PWM1/IOPA6上的比较输出方式选择位 00 强制低 01 低有效 10 高有效 11 强制高 D9~8 CMP5ACTR1/0 D7~6 CMP4ACTR1/0 D5~4 CMP3ACTR1/0 D3~2 CMP2ACTR1/0 D1~0 CMP1ACTR1/0
- 15 -
DBTCONA------死区控制寄存器A---7415H
D15~12 D11~8 DBT3~DBT0 D7 EDBT3 保留位 死区定时器3使能位,这些位决定了3个4位死区定时器的周期值 死区定时器3使能位(对比较单元3的引脚PWM5和PWM6而言)。 0 禁止 1 使能 死区定时器2使能位(对比较单元2的引脚PWM3和PWM4而言)。 0 禁止 1 使能 死区定时器1使能位(对比较单元1的引脚PWM1和PWM2而言)。 0 禁止 1 使能 死区定时器的预分频器 D4~2 DBTPS2~DBTPS0 000 X/1 001 X/2 010 X/4 011 X/8 100 X/16 101 X/32 000 X/32 001 X/32 D1~0 保留位 D6 EDBT2 D5 EDBT1
CAPFlFOA------捕捉FlFO状态寄存器A---7422h D15-14 保留位 捕捉单元3的FlFO状态位 D13-12 CAP3FlFO 00 空 01 有一个输入 10 有两个输入 11 有两个输入并又捕捉到一个,第一个输入已丢失 捕捉单元2的FlFO状态位 D11-10 CAP2FlFO 00 空 01 有一个输入 10 有两个输入 11 有两个输入并又捕捉到一个,第一个输入已丢失 捕捉单元1的FlFO状态位 D9-8 CAP1FlFO 00 空 01 有一个输入 10 有两个输入 11 有两个输入并又捕捉到一个,第一个输入已丢失 D7-0 保留位 捕捉FlFO状态寄存器B(CAPFlFOB)---7522h,与CAPFlFOA各位的意义相同。
EVAIFRA------以EVA中断标志寄存器A---742Fh D15-11 保留位。 读返回0,写无效 通用定时器1的上溢中断标志 D10 T1OFINT FLAG 读 0:标志被复位 1:标志被置位 写 0:无效 1:复位标志位 通用定时器1的下溢中断标志 D9 T1UFINT FLAG 读 0:标志被复位 1:标志被置位 写 0:无效 1:复位标志位 通用定时器1的比较中断标志 D8 T1CINT FLAG 读 0:标志被复位 1:标志被置位 写 0:无效 1:复位标志位 通用定时器1的周期中断标志 D7 T1PINT FLAG D6-4 D3 CMP3INT FLAG
读 0:标志被复位 1:标志被置位 写 0:无效 1:复位标志位 保留位。读返回0,写无效 比较单元3中断标志 - 16 -
读 0:标志被复位 1:标志被置位 写 0:无效 1:复位标志位 比较单元2中断标志 D2 CMP2INT FLAG 读 0:标志被复位 1:标志被置位 写 0:无效 1:复位标志位 比较单元1中断标志 D1 CMP1INT FLAG 读 0:标志被复位 1:标志被置位 写 0:无效 1:复位标志位 功率驱动保护中断标志 D0 PDPINTA FLAG 读 0:标志被复位 1:标志被置位 写 0:无效 1:复位标志位 EVAIFRB、EVAIFRC各位意义与上述类似!
EVAIFRA------EVA中断屏蔽寄存器A---742Ch
D15-11 D10 T1OFINT ENABLE 保留位。读返回0,写无效 通用定时器1的上溢中断使能 0:禁止 1:使能 通用定时器1的下溢中断使能 0:禁止 1:使能 通用定时器1的比较中断使能 0:禁止 1:使能 通用定时器1的周期中断使能 0:禁止 1:使能 读返回0,写无效 比较单元3中断使能 0:禁止 1:使能 比较单元2中断使能 0:禁止 1:使能 比较单元1中断使能 0:禁止 1:使能 功率驱动保护中断使能 0:禁止 1:使能 D9 T1UFINT ENABLE D8 T1CINT ENABLE D7 T1PINT ENABLE D6-4 保留位 D3 CMP3INT ENABLE D2 CMP2INT ENABLE D1 CMP1INT ENABLE D0 PDPINTA ENABLE EVAIMRB、EVAIMRC各位意义与上述类似!
比较单元操作所要求的寄存器设置顺序
EVA模块 EVB模块 设置T1PR 设置T3PR 设置ACTRA 设置ACTRB 初始化CMPRx 初始化CMPRx 设置COMCONA 设置COMCONB 设置T1CON 设置T3CON
- 17 -
==========================================================
ADC----初始化
==========================================================
ADCTRL1------ADC控制寄存器1---70A0H D15 D14 复位位 保留位 ADC模块软件复位位 0 无影响 1 复位整个ADC模拟 SOFT FREE D13~12 SOFT位和FREE位 0 0 一旦仿真悬挂,ADC模块立即停止 1 0 仿真悬挂时,ADC模块完成当前转换后停止 X 1 自由运行,继续运行而不管仿真悬挂 ACQ PS3-ACQPS0。这几位决定了ADC时钟的预定标系数 CPU时钟为30MHz时ADC模块的预定标系数 # ACQ-PS3 ACQ-PS2 ACQ-PS1 ACQ-PS0 预定标因子 信号源阻抗(CPS=0)信号源阻抗(CPS=1) 0 0 0 0 0 1 2*TCLK 67 385 1 0 0 0 1 2 4*TCLK 385 1020 2 0 0 1 0 3 6*TCLK 702 1655 3 0 0 1 1 4 8*TCLK 1020 2290 4 0 1 0 0 5 10*TCLK 1337 2925 D11~8 采样时间选择位 5 0 1 0 1 6 12*TCLK 1655 3560 6 0 1 1 0 7 14*TCLK 1972 4194 7 0 1 1 1 8 16*TCLK 2290 4829 8 1 0 0 0 9 18*TCLK 9 1 0 0 1 10 20*TCLK 10 1 0 1 0 11 22*TCLK 11 1 0 1 1 12 24*TCLK 12 1 1 0 0 13 26*TCLK 13 1 1 0 1 14 28*TCLK 14 1 1 1 0 15 30*TCLK 15 1 1 1 1 16 32*TCLK 1) TCLK的周期取决于\"转换时钟预定标因子\"位(BIT7),例如: 2) CPS=0:TCLK=1/CLK(例对于CLK=40MHz,TCLK=25ns) 3) CPS=0:TCLK=1/CLK/2对于CLK=40MHz,TCLK=50ns) 转换时钟预定标位。这一位决定了ADC转换逻辑时钟的预定标 D7 CPS位 0 FCLK= CLK/1 1 FCLK= CLK/2 其中CLK为CPU时钟频率 这一位决定排序器工作在连续转换模式或者启动/停止模式。 用户可以在当前转换序列正被执行时向这一位写数,但是只有在当前转换序列完 D6 连续转换位CONT RUN 成之后才生效,在连续模式下,用户不用对排序器复位,而在启动/停止模式下, 排序器必须被复位以使排序器指针指到CONV00。 0 启动/停止模式 1 连续转换模式。 D5 ADC中断请求优先级位 INT PRI D4 级连排序器工作方式位 SEQ 0 双排序器工作模式。SEQ1 和SEQ2作为两个最多可选择8个转换通道的排序器 0 高优先级 1 低优先级 - 18 -
ACSC D3 偏差校准使能位 CAL ENA 1 级连模式。SEQ1和SEQ2级连起来作为一个最多可选择16个转换通道的排序器SEQ 0 禁止校准模式 1 使能校准模式 BRG ENA HI/LO CAL ENA=1 0 0 VREFLO VREFLO 0 1 VREFHI VREFHI 1 0 |(VREFHI- VREFLO)/2 | VREFLO 1 1 |(VREFLO- VREFHI)/2 | VREFHI 0 满的参考电压被接到ADC输入 1 参考的中点电压被接到ADC输入 D2桥使能位 BRG ENA D1 VREFHI和VREFLO选择位HI/LO D0 自测试使能位STEST ENA
0 用VREFLO作为ADC输入的值 1 用VREFHI作为ADC输入的值 0 禁止自测试模式 1 使能自测试模式 ADCTRL2------ADC控制寄存器2---70A1H D15 EVB SOC SEQ EVB的SOC信号为级连排序器使能位。 0 不起作用 1 允许级连的排序器SEQ 被事件管理器B的信号启动 复位排序器1/启动校准转换方式位。 D14 RST SEQ1/STRT CAL 在校准转换方式被禁止的情况下: 0 不起作用 1 启动校准转换方式 启动SEQ1转换位,以下触发源可以引起这一位被置一: S/W 软件向这一位写1 EVA 事件管理器A EVB事件管理器B(仅在级连模式下) EXT 外部引脚(即ADC SOC引脚) 当一个触发源到来时有3种情况可能发生: D13 SOC SEQ1 ⑴SEQ1 处于空闲状态且SOC位被清0时,SEQ1立即启动 (在判优仲裁控制下),该位被置1后立即被清0,允许后来的触发源被悬挂。 ⑵SEQ1处于忙状态但SOC位为0时,该位被置1以表示一个触发源请求正被悬挂。当SEQ1 完成当前的转换又从新开始时,该位被清0。 ⑶SEQ1处于忙状态且SOC位已经被置1时,此时来到的触发源被忽略。 0 清除一个悬挂的SOC请求 1 软件触发启动SEQ1 D12 SEQ1 BSY SEQ1忙状态位 0 SEQ1 处于空闲状态 1 SEQ1处于忙状态,一个转换序列正在进行 D11 D10 中断方式说明 0 0 中断不使能 0 1 中断模式1 在中断标志位(INT FLAG SEQ1)置1时立即申请中断 D11~10 对SEQ1的中断方式使能控制位 1 0 中断模式2 仅当INT FLAG SEQ1 标志以经设置时,产生中断请求,如果清除了+,INT FLAG SEQ1被置1,中断请求被屏蔽。 1 1 保留 + 表示如果有两个排序通道要求申请中断,则最后完成的排序通道将具有较高的优先级 D9 INT FLAG SEQ1位 ADC模块SEQ1的中断标志位。 0 无中断事件发生 1 发生过中断事件 事件管理器A对SEQ1产生SOC信号的屏蔽位。 0 SEQ1 不能被EVA的触发源启动 1 允许SEQ1/SEQ被EVA的触发源启动 外部信号对SEQ1的启动转换位 - 19 -
D8 EVA SOC SEQ1位 D7 EXT SOC SEQ1 位
0 不起作用 1 允许一个来自ADCSOC引脚上信号启动ADC自动转换序列 D6 RST SEQ2 复位排序器2 0 不起作用 1 立即复位排序器使排序器指针指到CONV00 启动SEQ2转换位(仅适用于双排序器模式) 以下触发塬可以引起这一位被置1: S/W 软件写1 EVB 事件管理器B SEQ2忙状态位。 0 SEQ2 处于空闲状态 1 SEQ2 处于忙状态,一个转换序列正在进行 D3 D2 中断方式说明 0 0 中断不使能 D3~2 对SEQ2的中断方式使能控制位 0 1 中断模式1 在中断标志位(INT FLAG SEQ2)置1时立即申请中断 1 0 中断模式2 仅当INT FLAG SEQ2 标志以经设置时,产生中断请求, 如果清除了+,INT FLAG SEQ2被置1,中断请求被屏蔽。 1 1 保留 D1 INT FLAG SE Q2位 ADC模块SEQ2的中断标志位。 0 无中断事件发生 1 发生过中断事件 事件管理器B对SEQ2产生SOC信号的屏蔽位。 0 SEQ2 不能被EVB的触发源启动 1 允许SEQ2被EVB的触发源启动 D5 SOC SEQ2 D4 SEQ2 BSY D0 EVB SOC SEQ2位
MAXCONV------最大转换通道寄存器---70A2H
D15~7 保留位 这个位域决定了一次自动转换最多转换的通道的个数。该位域和他们的操作随着排序器工作模式的变化而变化。MAXCONV1的定义和转换个数之间的关系如表8.5所示 ,如果需要进行5个转换,则MAX CONV设置为4。在双排序器模式下使用SEQ1或者在级连模式下使用SEQ时,排序器指针依次从CONV00指到CONV04,并且这5个转换结果依次被存在转换结果寄存器00~04。在双排序器模式下使用SEQ2时,排序器指针依次从CONV08指到CONV12,并且这5个转换结果依次被存放在转换结果寄存器08~12中,当SEQ1工作在双排序器模式下,写入D6~0 MAXCONVn位域 MAXCONV1中的值超过7时,SEQ CNTRn超过7之后继续记数,使得排序器指针从新指到CONV00并继续转换,表MAX CONV1的位定义和转换个数之间的关系 MAX CONV1.3~0 转换个数 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 10 1010 11 1011 12 1100 13 1101 14 1110 15 1111 16 对SEQ1操作,使用位域MAX CONV1_2~0 对SEQ2操作,使用位域MAX CONV2_2~0 对SEQ操作, 使用位域MAX CONV1_3~0
CHSELSEQn------ADC输入通道选择排序器控制寄存器 CHSELSEQ1---70A3H CONV03 CONV02 CONV01 CONV00 15~12 11~8 7~4 3~0 CONV07 COV06 CONV05 CONV04 15~12 11~8 7~4 3~0 CONV11 CONV10 CONV09 CONV08 15~12 11~8 7~4 3~0 CONV15 CONV14 CONV13 CONV12 15~12 11~8 7~4 3~0 - 20 -
CHSELSEQ2---70A4H CHSELSEQ3---70A5H CHSELSEQ4---70A6H
ADC输入通道选择定义 CONVnn值 ADC输入通道选择 0000 通道0 0001 通道1 0010 通道2 0011 通道3 0100 通道4 0101 通道5 1000 通道8 1001 通道9 1010 通道10 1011 通道11 1100 通道12 1101 通道13 0110 通道6 0111 通道7
通道14 通道15
- 21 -
1110 1111
==========================================================
SPI----初始化
==========================================================
SPI模块中有9个寄存器用于控制该模块的操作:
(1)SPICCR: SPI配置控制寄存器。 (2)SPICTL: SPI操作控制寄存器。 (3)SPISTS: SPI状态寄存器。 (4)SPIBRR: SPI波特率寄存器。 (5)SPIRXEMU:SPI仿真缓冲寄存器。 (6)SPIRXBUF:SPI串行输入缓冲寄存器。 (7)SPITXBUF:SPI串行发送缓冲寄存器。 (8)SPIDAT: SPI串行数据寄存器。 (9)SPIPRI: SPI优先级控制。
SPICCR---串行外设接口配置控制寄存器----7040H SPI软件复位位。用户在改变配置前,应把该位清0, D7 SPI SW RESET 并在复位操作前把该位置1. O 初始化串行外设接口操作标志位至复位条件 1 串行外设接口准备发送或接收下一个字符。 移位时钟极性位,该位控制SPICILK信号的极性。见下表: SPI CHAR3 SPI CHAR2 SPI CHAR1 SPI CHAR0 字符长度 0 0 0 0 1 1 0 0 0 9 0 0 0 1 2 1 0 0 1 10 0 0 1 0 3 1 0 1 0 10 0 0 1 1 4 1 0 1 1 12 D6 CLOCK POLARITY 0 1 0 0 5 1 1 0 0 13 *********** 0 1 1 0 7 1 1 1 0 15 0 1 1 1 8 1 1 1 1 16 0 在SPICLK信号的上升沿输出数据,在下降沿输入数据。当无数据发送时,SPICLK保持低电平 1 在SPICLK信号的下降沿输出数据,在上升沿输人数据。当无数据发送时,SPICLK保持高电平。 D5~D4 D3~D0 SPI CHAR3-SPI CHAR0
保留位 数据长度选择位,具体如上表 SPICTL---串行外设接口操作控制寄存器----7041H D7~D5 D4 OVERRUN INT ENA 保留位 超时中断使能位。 - 22 -
0 禁止超时中断 1 使能超时中断 D3 CLOCK PHASE SPI时钟相位选择位。 0 正常的SPI时钟方式 1 延迟半个周期的SPICLK信号 SPI主从工作方式选择位。 0 从方式模式 1 主工作方式 TALK 主/从工作方式下发送允许位 0 禁止发送 1 允许发送 D1 在从工作方式下:若以前没有被配置成一般的I/O功能,则引脚SPISOMI将置成高阻态在主工作方式下:若以前没有被配置成一般的I/O功能,则引脚SPISOMO将置成高阻态 D0 SPI INT ENA
SPI中断使能位。 0 禁止中断 1 允许中断 D2 MASTER/SLAVE SPISTS---串行外设接口状态寄存器----7042H SPI接收过冲标志位,该位为只读只清除标志位。在前一个数据从缓冲器中读出之前又完成了下一个数据的接收或发送操作,则SPI硬件将设置该位。该位表明最后一个接收到的数据已经被覆盖写入,并因此而丢失。如果OVERRUN INT ENA位已被置1,则该位每次置位时,SPI就发生一次中断请求。该位可由以下3种操作来清除:写l到该位写0到SPI SW RESET位系统复位。 OVERRUN INT ENA位被置位,则SPI将在第一次RECEIVER OVER RUN FLAG置位时产生一次中断请求。如果在该标志位仍置位时又发生了接收过冲事件,则SPI将不会再次申请D7 RECEIVER OVERRUN FLAG 中断请求。这就使得在每次发生接收过冲事件后,必须向SPI SW RESET位写0来清除该标志位,使下一次发生接收过冲事件时,又能产生过冲中断请求。换句话说,如果RECEIVER o-VERRUN FLAG标志位由中断服务子程序保留设置(未被清除),则当中断服务子程序退出时,将不会立即产生另一个过冲中断。无论如何,在中断服务子程序期间应清除RECEIVER OVERRUN FLAG标志位。因为RECEIV-ER OVERRUN FLAG标志位和SPI INT FLAG标志位共用相同的中断向量。在接收下一个数据时这将减少关于中断源的任何可能疑问。 0 无中断请求 1 中断请求 D6 SPI INT FLAG SPI中断标志位。 0 无中断请求 1 有中断请求 SPI发送缓冲器满标志位。当向SPITXBUF寄存器写入数据时,将置位该位。当D5 TX BUF FULL FLAG SPITXBUF寄存器中的数据移人到SPIDAT寄存器中后,将自动清除该位。 0 发送缓冲器空 1 发送缓冲器中有数据 D4~D0
SPIBRR ---串行外设接口波特率设置寄存器----7044H D7 D6~D0 SPI BIT RATE6一sPI BIT RATE0
保留位 SPI波特率设置位 保留位 SPIRXEMU ---串行外设接口仿真接收缓冲寄存器----7046H 仿真缓冲器接收的数据。SPIRXEMU寄存器的功能与SPIRXBUF基本相同,只D15~D0 ERXB 15~ERXB0 是读SPIRXEMU时,不会清除SPIR INT FLAG标志位。一旦SPIDAT已经接收到完整的数据。该数据被传送到SPIRXEMU和SPIRXBUF寄存器中,在这
- 23 -
两个寄存器中的数据可被读取:与此同时SPIR INT FLAG标志位置位。创建该镜像寄存器是为了支持仿真,读SPIRXBUF时将清除SPIR INT FLAG标志位。在仿真器的正常操作中,靠读取控制寄存器来不断的更新这些寄存器显示在屏幕上的内容。对于SPI在仿真器读取SPIRXEMU中的值来更新其显示在屏幕上的内容。SPIRXEMU允许仿真器更准确的模拟SPI的真实操作,因此建议在正常的仿真器工作下读取SPIRXEMU寄存器中的值
SPIRXBUF ---串行外设接口接收缓冲寄存器----7047H
接收到的数据。一旦SPIDAT已经接收到完整的数据,该数据就被传送到D15~D0 RXB 15~RXB0 SPIRXBUF寄存器,供CPU读取,同时SPIR INT FLAG标志被置位。因为数据首先被移位到SPI的最高有效位中,所以数据在该寄存器中采用右对齐方式存储
SPITXBUF ---串行外设接口发送缓冲寄存器----7048H D15~D0 TXB 15~TXB0
发送的数据 SPIDAT ---串行外设接口发送/接收缓冲寄存器----7049H
串行外设接口发送/接收移位寄存器(SPIDAT),当SPIDAT寄存器中的数据在连续个SPI一CLK周期中被移出去(最高位)。移出的SPI的每一位(最高位)的同时,将有一位移人到移位寄存器的最低位。
串行数据 写入SPIDAT的操作可执行两种功能:如果TALK位被置位,则该寄存器提D15~D0 SDAT 15~SDAT0 供了将被输出到串行输出引脚的数据。当SPI处于主动工作方式时,数据开始发送。在主动工作方式下,将伪数据写入到SPIDAT用以启动接收器的排序功能,因为硬件不支持少于16位的数据进行对齐处理,所以发送的数据必须先进行左对齐,而接收的数据则用右对齐格式读取
SPIPRI ---串行外设接口中断优先级控制寄存器----704FH D7 D6 SPI PRIORITY 保留位 SPI中断优先级选择位。 0 高优先级中断请求 1 低优先级中断请求 SPI仿真挂起时的操作控制位。 00 一旦仿真挂起,立即停止。 D5~D4 SPI SUSP SOFT,SPI SUSP FREE 01 一旦仿真挂起在当前的接收或发送完成后才停止。 10 SPI操作与仿真挂起无关。 11 SPI操作与仿真挂起无关 D3~D0
保留位 - 24 -
==========================================================
SCI----初始化
==========================================================
SCI模块中有几个寄存器用于控制该模块的操作
7050h SCICCR SCI通信控制寄存器 7051h SCICTRL1 SCI控制寄存器1
7052h SCIBAUD 波特率选择寄存器高8位 7053h SCIBAUD 波特率选择寄存器低8位 70h SCICTRL2 SCI控制寄存器2
7055h SCIRXST SCI接收器状态寄存器 7056h SCIRXEMU SCI仿真数据缓冲寄存器 7057h SCIRXBUF SCI接收器数据缓冲寄存器 7059h SCITXBUF SCI发送数据缓冲寄存器 705Fh SCIPRI SCI优先级控制寄存器
SCICCR------通信控制寄存器-----7050h
D7 SCI停止位选择位 0 一个停止位 1 两个停止位 SCI奇/偶校验选择位,如果PARITY ENABLE被置位,则校验才有效,即判定发送和接收的D6 字符中1的位数为奇数或偶数。 0 奇校验 1 偶校验 D5 SCI奇/偶校验使能位。 0 禁止奇/偶校验 1 使能奇/偶校验 自测试模式使能位,如果该位使能,则发送引脚与接收音节在系统内部连接在一起。 0 禁止自测试模式 1 使能自测试模式 SCI多处理器模式选择位 0 选择空闲线多处理器模式1 选择地址位多处理器模式 选择字符长度(1-8位) 000 1位 100 5位 D2~D0 001 2位 101 6位 010 3位 110 7位 011 4位 111 8位
D4 D3 SCICTL1----串行通信接口控制寄存器1----7051H D7 保留位 SCI接收错误中断使能位。 D6 如果置位了该位,当接收发生错误时RX ERROR位被置位,并且发出接收错误中断。 0 禁止接收错误中断 1 使能接收错误中断 SCI软件复位位(低有效) D5 将0写入该位来初始化SCI状态机和操作标志至复位条件。SW RESET位并不影响其他任何配置位。所有起作用的逻辑都保持确定的复位态直至将1写入SW RESET位。 因此,系
- 25 -
统复位后,应将该位置为1来重新使能SCI。当接收间断检测发生后,将清除SW RESET位。SW RESET影响串行通信接口的操作标志,但不影响配置位,也不恢复复位位,一旦置位了SW RESET,标志位就被不再改变直到该位被清0。 RESET位影响的标志位 SCI标志 寄存器的位 SW复位后的值 TXRDY SCICTL2.7 1 TX EMPTY SCICTL2.6 1 RXWAKE SCIRXST.1 0 PE SCIRXST.2 0 OE SCIRXST.3 0 FE SCIRXST.4 0 BRKDT SCIRXST.5 0 RXRDY SCIRXST.6 0 RX ERROR SCIRXST.7 0 D4 保留位 SCI发送器唤醒方法选择位。 0 没有选定的发送特征 D3 TXWAKE 1 选定的发送特征取决由空闲线模式或地址位模式。 在空闲线模式下:写1到TXWAKE,然后将数据写入SCITXBUF寄存器来产生一个11位数据位的空闲周期。在地址位模式下:写1到TXWAKE,然后将数据写入SCITXBUF寄存器并设置该帧的地址位为1 D2 SLEEP SCI休眠位。 0 禁止休眠方式 1 使能休眠方式 SCI发送使能位。 D1 TXENA 仅当TXENA置位时,数据才能从SCITXD引脚上发送出去。如果复位,则把已写入到SCITXBUF寄存器中的数据发送完后才停止发送。 0 禁止发送 1 使能发送 SCI接收使能位。 从SCIRXD引脚上接收到的数据送到接收移位寄存器,然后再送到接收缓冲器。该位使能或禁止接收(传送到缓冲器)。 0 禁止将接收到的数据传送到SCIRXBUF和SCIRXEMU接收缓冲器 D0 RXENA 1 发送将接收到的数据传送到SCIRXBUF和SCIRXEMU接收缓冲器。 清除RXENA即停止将接收到的数据传送到两个接收缓冲器的操作?并将停止接收中断的产生。但是,接收移位寄存器(RXSHF)仍可以继续接收SCIR-XD引脚上的数据。因此,如果在接收字符期间置位RXENA,则已接收到的数据将被传送到接收缓冲器SCIRXBUF和SCIRXEMU中
SCICTL2----串行通信接口控制寄存器2-----70H
发送缓冲寄存器准备好标志位。写数据到SCITXBUF寄存器的操作将自动清除该位。如D7 TXRDY 果TX INT ENA位被置位,则当TXRDY置位时,该标志位使能发送器中断请求。通过使能SW RESET位或系统复位来将该TXRDY复位。 0 SCITXBUF满 1 SCITXBUF空,准备接收下一个数据 D6 TXEMPTY 发送器标志位。 0 SCITXBUF寄存器、TXSHF寄存器或两者都装入了数据 - 26 -
1 SCITXBUF寄存器和TXSHF寄存器都空 D5~D2 保留位 接收缓冲器/间断中断使能位。该位控制着由RXRDY或RBKDT标志位置位引起的中断请求。D1 RX/BK INT ENA 然而,Rx/BK INT ENA并不阻止这些标志位置位。 0 禁止RXRDY/BRKDT中断 1 使能RXRDY/BRKDT中断 发送缓冲器(SCITXBUF)中断使能位。该位控制着TXRDY标志位引起的中断,但并不阻止TXRDYD0 TX INT ENA 标志位的置位。 0 禁止TXRDY中断 1 使能TXRDY中断
SCIHBAUD----串行通信接口波特率选择高字节寄存器--7052H
SCILBAUD----串行通信接口波特率选择低字节寄存器--7053H
SCILBAUD15~0 BAUDl5~BAUD0。串行通信接口16位波特率选择位。 SCIHBAUD(高字节)和SCILBAUD(低字节)连接在一起形成16位波特率值。
SCIRXST------串行通信接口接收状态寄存器------7055H SCI接收器错误标志位。RX ERROR标志位,表明接收状态寄存器中的一个错误标志位被置D7 RX ERROR 位。RX ERROR是间断检测、帧错误、过冲和校验允许标志的逻辑或。该错误标志位不能被直接清除,它由有效的SW RESET或系统复位来清除。 0 无接收错误标志被置位 1 有接收错误标志被置位 SCI接收器准备好标志位。当准备将新数据读入SCIRXBUF中时,接收器置位该位。如果RXD6 RXRDY /BK INT ENA位是1,将产生接收中断。RXRDY位的清除可通过读SCIRXBUF寄存器、有效的SW RESET或系统复位来清除。 0 SCIRXBUF中元新数据 1 准备从SCIRXBUF中读取新数据 SCI间断检测标志位。产生间断条件时SCI置位该位。 当SCI的接收数据引脚SCIRXD在从失去第1个停止位开始后,连续保持低电平至少10位时,即满足间断条件。如果RXD5 BRKDT /BK INT ENA位是1,将产生接收中断。但是这并不会影响接收器缓冲器的装入操作。即使接收器的SLEEP位置为1?也将产生BRKDT中断。该位可通过有效的SW RESET或系统复位来清除。 0 不满足间断条件 1 满足间断条件 SCI帧错误标志位。当没有找到预期的停止位时.串行通信接口将设置该位。只检测到第一D4 FE 个停止位。丢失的停止位表明启始位的同步性已丢失?数据帧格式错误,该位可通过有效的SW RESET或系统复位来清除。 0 未检测到帧错误 1 检测到帧错误 SCI超时错误标志位。当前一个数据被CPU或DMAC完成读取前,下一个数据又传送 到D3 OE CSIRXEMU和SCIRXBUF寄存器中,串行通信接口将设置该位。表明以前的数据被重写并丢失。该位可通过有效的SW RESET或系统复位来清除。 0 未检测到超时错误 1 检测到超时错误 SCI奇/偶校验错误标志位。当收到的数据中1的数目与它的奇/ 偶校验不匹配时,该标志D2 PE 位被置位。地址位包括在计算之内。如果奇/偶校验位的产生和检测未被使能时,则PE标志位禁止并读出总为0。该位可通过有效的SWRESET或系统复位来清除。 0 未检测到奇/偶校验错误 1 检测到超时错误 SCI接收器唤醒检测标志位。该位为1表明检测到接收器唤醒条件,在地址位多处理器模式D1 RXWAKE 中,RXWAKE反映了保存SCIRXBUF寄存器中的地址位的值。在空闲线多处理器模式中,如果检测到SCIRXD数据线空闲就置位RXWAKE。该位可通过下列方式之一清除:在地址字节送至
- 27 -
SCIRXBUF后传送第一个字节。读SCIRXBUF寄存器。有效的SW RESET.系统复位 D0 保留位
SCIRXEMU----串行通信接口接收数据缓冲寄存器----7056H SCIRXBUF----串行通信接口接收数据缓冲寄存器----7057H SCIRXBUF----串行通信接口发送数据缓冲寄存器----7059H SCIPRI----串行通信接口优先级控制寄存器----705FH
D7 D6 SCITX PRIORITY 保留位 SCI发送中断优先级选择位。 0 高优先级中断请求 l 低优先级中断请求 SCI接收中断优先级选择位。 0 高优先级中断请求 1 低优先级中断请求 SCI仿真挂起选择位。 00 一旦仿真挂起,立即停止 D4~D3 SCI SOFT和FREE 10 一旦仿真挂起,在完成当前的接收/发送操作后停止 01 操作不受仿真挂起影响 11 操作不受仿真挂起影响。 D2~D0
保留位 D5 SCIRX PRIORITY - 28 -
==========================================================
CAN----初始化
==========================================================
寄存器 邮箱 保留位 ---------------------------------------- MBOX0 MBOX1 MBOX2 MBOX3 MBOX4 MBOX5 ---------------------------------------- MSG IDnL 7200 7208 7210 7218 7220 7228 MSG IDnL 7201 7209 7211 7219 7221 7229 MSG IDnL 7202 720A 7212 721A 7222 722A ----------------------------------------
---------------------------------------- MBXnA 7204 720C 7214 721C 7224 722C MBXnB 7205 720D 7215 721D 7225 722D MBXnC 7206 720E 7216 721E 7226 722E MBXnD 7207 7207 720F 7217 7227 722F ----------------------------------------
MSGIGnH----邮箱标识符高位寄存器----其中n=0~5 D15 IDE 标识符扩展位 0 用标准标识符 1 用扩展标识符 接收屏蔽使能位。这一位只与接收邮箱有关,对发送邮箱无影响。 D14 AME 0 禁止相应的标识符屏蔽,即接收邮箱的标识符必须与被接收的邮箱标识符 相符才能接收信息。 1 使能相应的标识符屏蔽,即接收邮箱可以接收与它的标识符不符的信息 接受屏蔽使能位。这一位只与接收邮箱有关,对发送邮箱无影响。 D13 AAM 0 邮箱不自动应答远程帧请求 1 如果接收到一个标识符匹配的远程帧,则CAN外设将发送邮箱中的数据 D12~0 IDH[28~26]
标识符。相对于扩展信息帧的高13位标识符IDH[28~14]即MSGIDnH[12~0]位相对于标准信息帧的11位标识符 MSGIGnL----邮箱标识符高位寄存器----其中n=0~5 D15~0 IDL[15~0]
标识符。相对于扩展信息帧的低16位标识符与 标准信息帧无关 MSGCTRLn----邮箱控制寄存器----其中n=0~5
D15~5 D4 RTR 保留位 远程发送请求位。 0 数据帧 1 远程帧 数据长度选择位。对于发送邮箱来说这几位决定发送数据的字节数对于接收邮箱则无效,D3~0 DLC[3~0] 即接收数据的字节数由被接收的信息决定。 0001 1字节 0010 2字节 0011 3字节 0100 4字节 0101 5字节 0110 6字节 0111 7字节 1000 8字节
MDER -----邮箱方向/使能控制寄存器------7100H
D15~8 D7 MD3
保留位 邮箱3发送/接收配置位。上电时该位复位为0 - 29 -
0 配置成发送邮箱 1 配置成接收邮箱 D6 MD2 邮箱2发送/接收配置位。上电时该位复位为0。 0 配置成发送邮箱 1 配置成接收邮箱 邮箱使能位。每个邮箱对应一个使能位,在初始化时必须禁止相应邮箱的使能位。 0 禁止邮箱 1 使能邮箱 D5~0 ME5~ME0
TCR -----发送控制寄存器------7101H 发送应答位。 D15~12 TA5~TA2 如果邮箱n(n=5~2)发送信息帧成功,则Tan被置位1,并且置位邮箱中断标志位MIFn,在相应中断使能的情况下将产生中断。向该位写1则复位,写入0无影响 忽略应答位。 D11~8 AA5~AA2 如果发送的信息帧被忽略,则AA n被置位,并且置位邮箱忽略应答中断标志位AAIFn,在相应中断使能的情况下将产生邮箱错误中断。向该位写1则复位,写入0无影响 邮箱发送请求位。 当TRSn位被置位1时,CAN控制器将发送相应发送邮箱的信息帧。当该位被置位1后,D7~4 TRS5~TRS2 则拒绝对邮箱n的信息帧进行更新,直到该位被复位。CAN控制器允许不同的邮箱同时设置该位。当TRSn位被置位1时,对邮箱n进行写操作无效,并且产生WDIF中断。当发送成功或发送被忽略时,就自动复位该位。 发送请求复位位。 用户程序将设置该位,中断逻辑将清除该位,用户程序向该位写1将设置该位,写0D3~0 TRR~TRR2 无影响。当TRRn位被置位1时,对邮箱n进行写操作无效,并且会产生WDIF中断,当成功发送后,则产生邮箱中断(在相应中断使能的条件下)。当信息成功发送、发送忽略丢失数据和侦测到CAN总线错误时,将复位该位。当TRSn处于复位时,该位不起作用,因为当TRSn复位,TRRn也立即复位
RCR -----接收控制寄存器------7102H 远程请求悬挂位。 无论何时CAN外设接收到远程帧请求时将把相应接收邮箱n的RFPn置位。如果用户D15~12 RFP3~RFP0 程序要清除该位,同时CAN外设要设置该位,则该位被清除。如果MSGIDnH寄存器中的AAM位没有被置位(即不具有自动发送应答信号功能),则用户程序必须在远程请求悬挂事件发生后清除该位。如果信息被成功发送,则CAN外设清除该位。在发送过程中不能产生远程请求中断 接收到的信息丢失标志位。 当接收邮箱孢的旧信息被新接收到的信息覆盖时,该位将置位。如果覆盖保护控制位OPCn为1,则不发生信息覆盖,且新的信息将丢失。该位只能由用户程序复位,并且由D11~8 RML3~RML0 中断逻辑置位。当写1到RMPn位,将清除该位。 如果用户程序要清除该位,同时CAN外设要置位该位,则该位被置位。 如果1个或多个RMLn位被置位,同时将置位CAN中断标志寄存器(CAN_IFR)中的RMLIF标志位。CAN中断屏蔽寄存器(CAN_IMR)中的RMLIM使能,则将产生中断 接收信息悬挂位。 如果被接收的信息帧存储到接收邮箱n中,将把RMPn置位。该位只能由用户程序复D7~4 RMP3~RMP0 位,并且由中断逻辑置位。当写1到RMPn位,将清除RMPn和RLMn位。如果用户程序要清除该位,同时CAN外设要置位该位,则该位被置位。 如果OPCn位为0,则新信息将覆盖旧信息,并且相应的RMLn位被置位。
- 30 -
如果CAN中断使能且相应的中断没有被屏蔽,则RMLn位被置位的同时将产生中断 信息覆盖保护使能位。 D3~0 OPc3~OPC0 如果OPCn位为1,则邮箱n中的旧信息被保护,即不能被新信息覆盖。从而查找下一个标识符匹配的接收邮箱,如不匹配则信息丢失。 如果OPCn位为O,则邮箱n中的旧信息被覆盖
MCR -----主控制寄存器------7103H D15~14 保留位 仿真挂起操作选择位。这一位对接收邮箱无效。 D13 SUSP 0 Solt模式,即一旦仿真挂起,就把当前的信息完全发送完毕才关闭CAN外设 1 Free模式,即CAN外设继续运行不受仿真挂起影响 改变配置请求位。 当CAN控制器处于脱离CAN总线状态或ABO位为0时,将把该位自动置位。当CAN控制器恢复总线时,该位被清除。 D12 CCR 0 CAN控制器处于正常工作方式 1 CAN控制器处于复位工作方式,即在GSR寄存器的CCE位为1时,允许对位定时器(BcRn)进行配置,此时CAN控制器处于脱离CAN总线状态,因此当配置完位定时器后,应将该位清0,使CAN控制器恢复总线 低功耗模式请求位。 在进入休眠模式之前,用户程序必须将该位置为1,当相应的应答位PDA被置位后,CAND11 PDR 控制器就进入休眠模式。 0 禁止低功耗模式(CAN控制器处于正常工作模式) 1 使能低功耗模式 数据字节次序。 D10 DBO 0 接收或发送的数据排列成以下的次序:3-2-1-O-7-6-5-4 1 接收或发送的数据排列成以下的次序:0-1-2-3-4-5-6-7 总线唤醒位。 D9 WUBA 0 只有在用户程序把PDR位清0后,CAN控制器退出低功耗模式 1 当检测到(\"AN总线上任何有效信息时,CAN控制器就退出低功耗模式 数据域改变请求位。当要改变邮箱的数据域时应把该位置为1,CAN控制器就允许对数据D8 CDR 域进行更改,并且在此期间发送被禁止,所以更新完数据域后应将该位清0。 0 CAN控制器处于正常工作模式 1 数据域改变请求使能 自动恢复总线位。 D7 ABO 0 在CCR位被复位后和在总线上产生连续128×11个隐性位后,CAN控制器恢复总线 1 在CAN控制器脱离总线后的连续128×11个隐性位之后,cAN控制器恢复总线。 自测试模式使能位。 0 CAN控制器处于正常工作模式 D6 STM 1 CAN控制器处于自测试模式,在这种模式下CAN控制器能自己产生应答信号,因此不需要与CAN总线相连,信息帧没有真正发送出去,但是信息帧能被相应的邮箱接收,在自测试模式下,不能进行远程帧悬挂自动应答,也不能接收被接收的信息帧的标识符 D5~2 D1~0 MBNR
- 31 -
保留位 邮箱2和邮箱3选择位。对邮箱2或3的数据域进行写操作及配置远程帧悬挂。 00 无效 01 无效 10 选择邮箱2 11 选择邮箱3
BCR2 -----位配置寄存器2------7104H
D15~8 保留位 波特率预分频位。 D7~0 BRP[7~0] BRP[7~0]决定着CAN控制器的时间片(TQ),TQ定义为:TQ=(BRP+1)/ICLK(这里ICLK为CAN控制器的系统时钟,也就是DSP的系统时钟)
BCR1 -----位配置寄存器1------7105H D15~11 S 边沿重同步方式选择位。 D10 SBG 0 CAN控制器仅在下降沿时发生重新同步 1 CAN控制器在上升沿和下降沿时发生重新同步 同步跳转宽度选择位。 D9~8 SJW[1~0] 为了补偿在不同总线控制器的时钟振荡器之间的相位偏移,任何总线控制器必须在当前传送的相关信号边沿重新同步。同步跳转宽度定义了每一位周期可以被重新同步缩短或延长的时钟周期的最大数目,同步跳转宽度可设置为1~4个TQ值 采样次数选择位。 D7 SAM 0 CAN控制器仅采样1次 1 CAN控制器采样3次,并以多数为准 时间段1。 D6~3 TSEG1[3~0] 其包含传播延时时间段(PROG SEG)和相位延时时间段1(PHASE SEG1)。TSEG1[3~0]决定时间段1有多少个TQ时间片,时间段1的值可编程为3到16个TQ时间片,且时间段1必须大于或等于时间段2 时间段2。 D2~0 TSEG2[2~0] 其决定着相位延时时间段2(PHASE SEG2)的长度。在下降沿时发生重新同步(即SBG=0)时,时间段2的最小值为:TSEG2min=1+SJW因此时间段2的值可编程为2~8个TQ时间片,且满足以下条件:(SJW+BSG+1)≤TSEG2≤8TSEG2≤TSEG1
ESR -----错误状态寄存器------7106H D15~9 保留位 形式错误。 D8 FER 0 CAN控制器进行正确的发送和接收 1 总线上存在一种形式错误,即固定格式的位场中出现1位或多位非法位时,就产生一个形式错误 位错误。 D7 BEF 0 CAN控制器进行正确的发送和接收 1 在仲裁域外接收到的位和发送的位不匹配,或在发送仲裁期间一个显性位被发送,但接收到的是一个隐性位 显性保留错误。 D6 SAl 0 CAN控制器检测到一个隐性位 1 CAN控制器没有检测到一个隐性位,当硬件复位、软件复位或总线关闭时SAl置为1 D5 CRCE CRC错误。 0 CAN控制器没有发生CRC错误 1 CAN控制器发生了CRC错误 填充错误。 0 无填充位错误 1 违反了填充位规则,即发生了填充错误 - 32 -
D4 SEG
D3 ACKE 应答错误。 0 CAN控制器接收到应答信号 1 CAN控制器没有接收到应答信号 总线关闭状态。 0 操作正常,即在线 D2 BO 1 CAN总线发生错误,当发生错误计数器的值达到256时,就发生了总线关闭。在总线关闭期间CAN控制器不能进行发送和接收操作。清除CCR位或设置ABO位将恢复总线,一旦总线恢复,该位自动 清0 D1 EP 消极错误状态。 0 CAN控制器不在消极错误模式 1 CAN控制器处于消极错误模式 警告状态。 0 接收和发送错误计数器的值都小于96 1 至少有一个错误计数器的值达到96 D1 EW
GSR -----全局状态寄存器------7107H D15~6 D5 SMA 保留位 悬挂模式应答。 0 CAN控制器不处于悬挂模式 1 CAN控制器处于悬挂模式 改变配置使能位。 0 禁止对配置寄存器进行写操作 1 允许对配置寄存器进行写操作 低功耗模式应答。 0 正常工作模式 1 ClAN控制器已进入低功耗模式 保留位 CAN控制器处于接收模式。这一位反映CAN控制器的实际操作与邮箱的配置无关。 0 CAN控制器没有接收信息 1 CAN控制器正在接收信息 CAN控制器处于发送模式。这一位反映CAN控制器的实际与邮箱的配置无关。 0 CAN控制器没有接收信息 1 CAN控制器正在接收信息 D4 CCE D3 PDA D2 D1 RM D0 TM
CEC -----错误计数寄存器------7108H
CAN_IFR ----- CAN中断标志寄存器------7109H D15~14 D13~8 MIF5~MIF0 D7 D6 RMLIF 保留位 邮箱5~0中断标志位(接收或发送)。 0 没有信息被发送或接收 1 相应的邮箱成功地发送或接收了信息 保留位 接收丢失中断标志位。 0 没有信息丢失 1 至少一个接收邮箱发生了接收上溢 忽略应答中断标志位。 0 发送操作没有忽略 1 发送操作被忽略 写拒绝中断标志。 0 CAN控制器处于休眠模式或正常工作模式 1 CAN控制器离开休眠模式 唤醒中断标志位。 0 CAN控制器处于休眠模式或正常工作模式 1 CAN控制器离开休眠模式 总线关闭中断标志位。 0 CAN控制器处于在线状态 1 CAN控制器进入总线关闭状态 消极错误中断标志位。 0 CAN控制器不处于消极错误模式 1 CAN控制器进入消极错误模式 - 33 -
D5 AAIF D4 WDIF D3 WUIF D2 BOIF D1 EPIF
错误警告中断标志位。 D0 WLIF 0 错误计数器的值没有达到错误警告值 1 至少一个错误计数器的值达到错误警告值
CAN_IMR ----- CAN中断屏蔽寄存器------710AH
D15 MIL D14 D13~8 MIM5~MIM0D 邮箱中断优先级选择位(对于邮箱5~0的中断标志位MIF5~MIF0) 0 高中断优先级 1 低中断优先级 保留位 邮箱5~0中断屏蔽位。 0 禁止中断 1 使能中断 错误中断优先级选择位。 0 高中断优先级 1 低中断优先级 接收丢失中断屏蔽位。 0 禁止中断 1 使能中断 忽略应答中断屏蔽位。 0 禁止中断 1 使能中断 写拒绝中断屏蔽位。 0 禁止中断 1 使能中断 唤醒中断屏蔽位。 0 禁止中断 1 使能中断 总线关闭中断屏蔽位。 0 禁止中断 1 使能中断 消极错误中断屏蔽位。 0 禁止中断 1 使能中断 错误警告中断屏蔽位。 0 禁止中断 1 使能中断 D7 ElL D6 RMLIM D5 AAIM D4 WDIM D3 WUIM D2 BOIM D1 EPIM D0 WLIM
LAMn_H ----- 局部接收屏蔽高位寄存器n------710BH、710DH 局部接收屏蔽标识符扩充位。 0 接收邮箱是接收标准信息帧还是扩展信息帧由被接收信息的这一位(LAMl)决定 D15 LAMI 1 标准信息帧和扩展信息帧都可以接收,当接收到扩展信息帧时,接收到29位标识符都可以进行滤波处理,当接收到标准信息帧时,接收到11位标识符只与局部接收屏蔽高位寄存器中的LAMn-H[12~2]位进行滤波处理 D14~13 保留位 高13位局部接收屏蔽位。 D12~0 LAMn[28~16] 0 相应接收标识符的位值必须相符才能被接收,即接收严格匹配的标识位 1 相应接收标识符的位值不相符也能接收,即可接收0或1 LAMn_L -----局部接收屏蔽低位寄存器n ------710CH、710EH 低16位局部接收屏蔽位。 D15~0 LAMn[15~0] 0 相应接收标识符的位值必须相符才能被接收,即接收严格匹配的标识位 1 相应接收标识符的位值不相符也能接收,即可接收0或1
- 34 -
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- haog.cn 版权所有 赣ICP备2024042798号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务