CortexM3寄存器总汇Word格式.docx
《CortexM3寄存器总汇Word格式.docx》由会员分享,可在线阅读,更多相关《CortexM3寄存器总汇Word格式.docx(207页珍藏版)》请在冰豆网上搜索。
3]
[2]
SYSRESETREQ
W
让信号在外部系统有效,表示请求复位。
[1]
VECTCLRACTIVE
清除有效向量位:
1=清除活动NMI、故障和中断的所有状态信息
0=不清除
[0]
VECTRESET
系统复位位。
将系统复位,调试元件除外:
1=复位系统
0=不复位系统
注:
LPC1752支持32个优先级,在周立功程序中不对优先级分组,即无子优先级,只有抢占优先级。
2、LR异常返回值:
EXC_RETURN
4]
0XFFFFFFF
[3]
处理模式:
0:
返回后进入Handler模式;
1:
返回后进入线程模式
堆栈标志位:
从主堆栈中做出栈操作,返回后使用MSP;
从进程堆栈中做出栈操作,返回后使用PSP
保留,必须为0
处理器状态位:
返回到ARM状态;
返回到Thumb状态。
在Cortex-M3中必须为1
3、复位源标识寄存器RSID(0x400FC180)
RSID-地址0x400FC180
POR
上电复位(POR)信号有效时该位置位。
并清零该寄存器中其它所有的位。
但是如果上电复位信号撤销后另外一个复位信号(如外部复位)仍然保持有效,则这个复位信号对应的位置位。
POR位不受其它任何复位源的复位影响。
当VDD(3V3)引脚电平超过门限值(1V左右)时POR信号有效。
EXTR
RESET信号有效时该位置位。
该位由上电复位来清零,但不受WDT或掉电检测(BOD)复位的影响
WDTR
当看门狗定时器溢出和看门狗模式寄存器的WDTRESET位为1时,该位置位。
该位可由其它任何一个复位源清零
BODR
当的电源降到低于时,该位置位;
如果VDD电压从降低到然后又回升,则该位置位;
如果VDD(3V3)电压从降低到,接着再下降到POR有效的电压(通常为1V),则该位清零;
如果VDD(3V3)电压继续从1V以下上升到以上,则该位也将置位;
该位不受外部复位或看门狗复位影响;
只有在复位发生且位POR=0时,BODR位才指示VDD(3V3)电压是否
-
保留。
用户软件不要向其写入1。
从保留位读出的值未被定义
上述这些标志位通过写"
1"
清除。
上电复位的优先级最高,可清除其它复位标志;
面看门狗复位优先级最低,其它任何一类复位都可清除它的标志。
掉电复位和外部复位优先级相同,因而不能清除对方标志。
4、系统控制和状态寄存器SCS-(0x400FC1A0)
系统控制和状态寄存器SCS–地址0x400FC1A0
位
符号
值
访问
3:
保留,用户软件不要向其写入1。
NA
4
OSCRANGE
1
主振荡器范围选择
主振荡器的频率范围为1MHz~20MHz;
主振荡器的频率范围为15MHz~24MHz
5
OSCEN
主振荡器使能:
主振荡器被禁能;
主振荡器被使能,且在正确的外部电路连接到XTAL1和XTAL2引脚的情况下启动。
6
OSCSTAT
主振荡器状态:
主振荡器不稳定,不能用作时钟源;
主振荡器已稳定,能够用作时钟源;
主振荡器必须通过OSCEN位使能。
RO
31:
7
5、时钟源选择寄存器CLKSRCSEL–(0x400FC10C)
时钟源选择寄存器CLKSRCSEL地址0x400FC10C
1:
CLKSRC
00
01
10
11
如下选择PLL0的时钟源:
00:
选择内部RC振荡器作为PLL0时钟源(默认)
01:
选择主振荡器作为PLL0时钟源
10:
选择RTC振荡器作为PLL0时钟源
11:
保留,不使用该值
不适当地设置该值,或改变该值的不正确序列都会导致器件不能正确地操作
7:
2
只有在PLL断开连接时,才可更换PLL输入时钟
6、PLL0STAT状态寄存器对应关系图:
7、PLL0控制寄存器PLL0CON–(0x400FC080)
PLL0控制寄存器PLL0CON–地址0x400FC080
PLLE0
PLL0使能。
当该位为1并且在有效的PLL0馈送之后,该位将激活PLL0并允许其锁定到指定的频率。
(见上图中的振荡器CCO)
PLLC0
PLL0连接。
在使能和锁定PLL0,即PLLE0和PLLC0都设为1,并后面跟随有效的PLL0馈送序列后,使PLL0作为CPU时钟源、AHB外设的时钟源,以及APB外设的时钟源。
PLL0输出可以用来计时USB子系统(如果频率为48MHz)。
(见上图中的切换开关)
31:
PLL0中的电流控制振荡器CCO的输出为:
275~550MHz
8、PLL0配置寄存器PLL0CFG–(0x400FC084)
PLL0配置寄存器PLL0CFG–地址0x400FC084
14:
MSEL0
PLL0倍频器值。
在PLL0频率计算中提供“M”值。
存储在这里的值为M-1。
支持的M值有从6~512的整数值,以及如表所示的值
有些M值硬件并不支持。
有关MSEL0正确值的选取,见“PLL0频率计算”
只有执行正确的PLL馈送序列后生效
15
NA
23:
16
NSEL0
PLL0预分频器值。
在PLL0频率计算中提供“N”值。
存储在这里的值为N-1,支持的N值范围是1~32
有关NSEL0正确值的选取,见“PLL0频率计算”。
24
9、PLL0状态寄存器PLL0STAT–(0x400FC088)
PLL0状态寄存器PLL0STAT–地址0x400FC088
读回PLL0倍频器值。
这是PLL0当前使用的值,它比实际的倍频器值少1
读回PLL0预分频器值。
这是PLL0当前使用的值,它比实际的分频器值少1
PLLE0_STAT
读回PLL0使能位。
当该位为1时,PLL0处于激活状态;
当该位为0时,PLL0关闭。
当进入掉电模式时,该位自动清零
25
PLLC0_STAT
读回PLL0连接位。
当PLLC0和PLLE0都为1时,PLL0作为LPC1700系列Cortex-M3微控制器的时钟源被连接;
当PLLC0或PLLE0位为0时,PLL0被旁路,当进入掉电模式时,该位自动清零
26
PLOCK0
反映PLL0的锁定状态。
当该位为0时,PLL0未锁定;
当该位为1时,PLL0锁定到指定的频率。
当使能PLL0或改变参数时,PLL0在新的条件下需要一些时间来完成锁定,可通过监控PLOCK0位来确定连接PLL0的时间。
27
10、PLLE0和PLLC0的组合表
PLL功能
PLL0被关闭并断开连接。
PLL0的输出时钟与输入时钟相同
PLL0被激活但是尚未连接。
PLL0可在PLOCK0有效后连接
与00组合相同。
这样消除了PLL0已被连接但没有使能的可能性
PLL0被激活且已被连接作为系统时钟源
11、PLL0馈送寄存器PLL0FEED–(0x400FC08C)
PLL0馈送寄存器PLL0FEED–地址0x400FC08C
PLL0FEED
PLL0馈送序列必须写入该寄存器才能使PLL0配置和控制寄存器的更改生效
0x00
8
11、PLL1控制寄存器PLL1CON–(0x400FC0A0)
PLL0控制寄存器PLL0CON–地址0x400FC0A0
PLLE1
PLL1使能。
当该位为1并且在有效的PLL1馈送之后,该位将激活PLL1并允许其锁定到指定的频率。
PLLC1
PLL1连接。
在使能和锁定PLL1,即PLLE1和PLLC1都设为1,并后面跟随有效的PLL1馈送序列后,使PLL1作为USB子系统的时钟源
PLL1中的电流控制振荡器CCO的输出为:
156~320MHz
12、PLL1配置寄存器PLL1CFG–(0x400FC0A4)
PLL1配置寄存器PLL1CFG–地址0x400FC0A4
4:
MSEL1
PLL1倍频器值。
在PLL1频率计算中提供“M”值
00000时M=100001时M=200010时M=3……11110时M=3111111时M=32
6:
PSEL1
PLL1分频器值。
在PLL1频率计算中提供“P”值
00时P=101时P=210时P=411时P=8
0
13、PLL1状态寄存器PLL1STAT–(0x400FC0A8)
PLL1状态寄存器PLL1STAT–地址0x400FC0A8
读回PLL1倍频器值。
这是PLL1当前使用的值
读回PLL1分频器值。
PLLE1_STAT
读回PLL1使能位。
当该位为1时,PLL1处于激活状态;
当该位为0时,PLL1关闭。
9
PLLC1_STAT
读回PLL1连接位。
当PLLC和PLLE都为1时,PLL1作为微控制器的时钟源被连接;
当PLLC或PLLE位为0时,PLL1被旁路,微控制器直接使用振荡器时钟。
PLOCK1
反映PLL1的锁定状态。
当该位为0时,PLL1未锁定;
当该位为1时,PLL1锁定为指定的频率
14、PLLE1和PLLC1的组合表
PLL1被关闭并断开连接。
PLL1的输出时钟与输入时钟相同
PLL1被激活但是尚未连接。
PLL1可在PLOCK1有效后连接
这样消除了PLL1已被连接但没有使能的可能性
PLL1被激活且连接。
PLL1作为USB子系统的时钟源
15、PLL1馈送寄存器PLL1FEED–(0x400FC0AC)
PLL1馈送寄存器PLL1FEED–地址0x400FC0AC
PLL1FEED
PLL1馈送序列必须写入该寄存器才能使PLL1配置和控制寄存器的更改生效
16、CPU时钟配置寄存器CCLKCFG–(0x400FC104)
PU时钟配置寄存器CCLKCFG–地址0x400FC104
CCLKSEL
从PLL0输出中选择建立CPU时钟(CCLK)的分频值
分频值只能是0和奇数值(1、3、5…,255)并且可以在编程CCLKSEL位时使用
当置位CCLKSEL位时使用偶数值(2、4、6…,254)可能会导致操作错误
不允许,由于CPU时钟频率不能大于100MHz(注:
CCO为255~550MHz)
2:
对PLL0输出进行3分频,产生CUP时钟(CCLK)
对PLL0输出进行4分频,产生CUP时钟(CCLK)
………
255:
对PLL0输出进行256分频,产生CUP时钟(CCLK)
PLL0输出经过分频后可供CPU或USB子系统使用,如果使能PLL1,那么PLL1就作为USB子系统时钟源。
17、USB时钟配置寄存器USBCLKCFG–(0x400FC108)
USB时钟配置寄存器USBCLKCFG–地址0x400FC108
USBSEL
该寄存器仅在PLL1禁止时使用。
如果PLL1使能,则其输出自动用作USB时钟源,且必须配置PLL1为USB子系统提供正确的48MHz时钟
从PLL0输出中选择建立精确48MHz的USB时钟的分频值,仅有下面所列值班为可用的PLL0输出分频值:
值为5时:
6分频PLL0输出,此时PLL0输出为288MHz
值为7时:
8分频PLL0输出,此时PLL0输出为384MHz
值为9时:
10分频PLL0输出,此时PLL0输出为480MHz
18、IRC调整寄存器IRCTRIM–(0x400FC1A4)
IRC调整寄存器IRCTRIM–地址0x400FC1A4
IRCtrim
IRC调整值。
它控制片内4MHz的IRC频率
0xA0
15:
软件必须写0到这些位
19、外设时钟选择寄存器PCLKSEL0–(0x400FC1A8)
外设时钟选择寄存器PCLKSEL0–地址0x400FC1A8
PCLK_WDT
WDT的外设时钟选择
PCLK_TIMER0
TIMER0的外设时钟选择
5:
PCLK_TIMER1
TIMER1的外设时钟选择
PCLK_UART0
UART0的外设时钟选择
9:
PCLK_UART1
UART1的外设时钟选择
11:
13:
12
PCLK_PWM1
PWM1的外设时钟选择
14
PCLK_IC0
IC0的外设时钟选择
17:
PCLK_SPI
SPI的外设时钟选择
19:
18
21:
20
PCLK_SSP1
SSP1的外设时钟选择
22
PCLK_DAC
DAC的外设时钟选择
25:
PCLK_ADC
ADC的外设时钟选择
27:
PCLK_CAN1
CAN1的外设时钟选择
29:
28
PCLK_CAN2
CAN2的外设时钟选择
30
PCLK_ACF
CAN滤波器的外设时钟选择
位为00时PCLK_perpheral=CCLK/4;
位为01时PCLK_perpheral=CCLK
位为10时PCLK_perpheral=CCLK/2;
位为11时PCLK_perpheral=CCLK/8
CAN1、CAN2和CAN滤波部件除外,当选择“11”时,PCLK_CAN1/PCLK1_CAN2/PCLK_ACF=CCLK/6
20、外设时钟选择寄存器PCLKSEL1–(0x400FC1AC)
外设时钟选择寄存器PCLKSEL1–地址0x400FC1AC
PCLK_QEI
正交编码器接口的外设时钟选择
PCLK_GPIOINT
GPIO中断的外设时钟选择
PCLK_PCB
引脚连接模块的外设时钟选择
PCLK_IC1
IC1的外设时钟选择
PCLK_SSP0
SSP0的外设时钟选择
PCLK_TIMER2
TIMER2的外设时钟选择
PCLK_TIMER3
TIMER3的外设时钟选择
PCLK_UART2
UART2的外设时钟选择
PCLK_UART3
UART3的外设时钟选择
PCLK_IC2
IC2的外设时钟选择
PCLK_IS
IS的外设时钟选择
PCLK_RIT
重复中断定时器的外设时钟选择
PCLK_SYSCON
系统控制模块的外设时钟选择
PCLK_MC
电机控制PWM的外设时钟选择
21、系统控制寄存器SCR–(0xE000ED10)
系统控制寄存器SCR–地址0xE000ED10
-
不能向该位写1
SLEEPONEXIT
从处理模式到线程模式是否进入退出睡眠模式。
此位置1使能中断避免应用程序返回空的mian函数
在线程模式中不睡眠
当从ISR返回到线程模式进入睡眠模式或深度睡眠模式
SLEEPDEEP
在低功耗模式下选择处理器使用睡眠模式还是深度睡眠模式
睡眠
1
深度睡眠
3
SEVONPEND
发送中断信号。
当有中断进入等待中断模式,中断信号可将CPU从WFE中唤醒。
如果CPU没有等待中断,但是中断信号已经有效,将会在下一个WFE指令后生效。
当然执行SEV指令也可将CPU唤醒
只有使能的中断才可以将CPU唤醒,没有使能的中断将被忽略
所有的中断,包括使能和没有使能的中断都可以将CPU唤醒
5
不能向这些位写1
0x00
21、功率模式控制寄存器PCON–(0x400FC0C0)
功率模式控制寄存器PCON–地址0x400FC0C0
PM0
功率模式控制位0。
该位控制进入掉电模式。
详细内容见“低功耗模式的编码”。
PM1
功率模式控制位1。
该位控制进入深度掉电模式。
BODRPM
掉电低功耗模式。
当BODRPM为1时,掉电检测电路将在芯片进入掉电模式或深度睡眠模式时关断,使功耗进一步降低。
此时,不能使用掉电检测作为掉电模式的唤醒源。
当该位为0时,掉电检测功能在掉电模式和深度睡眠模式中保持有效。
有关掉电检测的详细内容请见“系统控制模块”。
3
BOGD
掉电全局禁能。
当BOGD为1时,掉电检测电路一直被完全禁止,且不消耗功率。
当该位为0时,掉电检测电路被使能。
BORD
掉电复位禁能。
当BORD为1时,低压检测的第二阶段()将不会导致芯片复位。
当BORD为0时,复位被使能。
低压检测的第一阶段()Brown-out中断不受影响。
7:
从保留位读出的值未被定义。
SMFLAG
睡眠模式进入标志。
当成功进入睡眠模式时该位置位。
通过向该位写入1由软件将其清零。
DSFLAG
深度睡眠进入标志。
当成功进入深度睡眠模式时该位置位。
PDFLAG
掉电进入标志。
当成功进入掉电模式时该位置位。
DPDFLAG
深度掉电进入标志。
当成功进入深度掉电模式时该位置位。
低功耗模式的编码
1、00:
正如Cortex-M3系统控制寄存器的SLEEPDEEP位所定义,执行WFI或WFE进入睡眠或深度睡眠模式
2、01:
如果Cortex-M3系统控制寄存器的SLEEPDEEP位为1,