5. 系统管理 (SYSCON)

5.1. 概述

系统管理为整个芯片提供时钟源,包括系统时钟切换、外设时钟门控、工作模式选择以及版本控制等功能。还可通过单独时钟的开或关,时钟源选择来进行功耗控制。

5.2. 特性

  • 时钟控制

  • 浅睡眠模式

  • 端口唤醒设置

  • 低电压复位LVR

  • 可编程电压检测PVD

  • UID

  • 复位控制及状态

5.3. 功能描述

5.3.1. 时钟控制

SWM221有4个时钟源可供使用:

  • 内部高频振荡器(HRC):内部高频振荡器为片内时钟源,无需连接任何外部器件。频率为 8MHz,通过 RCCR 寄存器进行切换,可提供较精确的固定频率时钟

  • 内部低频振荡器(LRC):内部低频振荡器为片内时钟源,无需连接任何外部器件。频率为 32KHz

  • 外部振荡器(XTAL):外部振荡器可接 8~24MHz 频率

  • 锁相环(PLL):时钟源可选 HRC 或 XTAL, 48MHz~72MHz

系统时钟结构如 图 4 所示。

../../_images/syscon_clk_tree.svg

图 4 时钟结构框图

对于主时钟选择,通过 CLKSEL 寄存器 SYSCLK 位,选择内部高频时钟或其他时钟。

CLKSEL 寄存器 SYSCLK 位,选择内部高频时钟(HRC),时钟源为 8MHz,此时 CLKSEL 寄存器 SRCDIV 位无效。

CLKSEL 寄存器 SYSCLK 位,选择 SRC_DIV_CLK,通过 SRCCLK 位可选择时钟源为片内 HRC 振荡器、片外高频晶体振荡器、片内 LRC 振荡器、片内 PLL,此时 CLKSEL 寄存器 CLKDIV 位有效。

当 CLKSEL 寄存器 SRCCLK 选择片外时钟。选择片外时钟前,需将相应引脚输入使能通过 INEN_x 寄存器打开,并通过寄存器 PORTx_FUNC 将相应引脚换至外接晶振功能,且将 XTALCR 寄存器中外接晶振使能位使能。完成上述操作后,需根据外部晶振起振时间,使用软件产生一定时间,确保晶振稳定震荡,最后将 CLKSEL 寄存器中相应位设置为片外震荡器。

注意

执行时钟切换时,需要保证目标时钟使能及通路打开,系统时钟选择不同时钟切换时,系统时钟需要先切换回HRC,然后将CLKDIV_ON置为1后再进行切换。

内部 HRC 可通过 RCCR 寄存器 ON 位进行关闭操作,关闭前需确认时钟已切换,并未使用即将执行关闭操作的时钟。

内部 LRC 可通过 RCCR 寄存器 32KON位进行关闭操作,关闭前需确认时钟已切换,并未使用即将执行关闭操作的时钟。

外设时钟控制功能可控制外设时钟打开及关闭,如:

  • GPIO

  • SARADC

  • DIV

  • I2C

  • PWM

  • TIMER

  • WDT

  • UART

注意

上电后,以上模块均处于时钟关闭状态,需要通过设置CLKEN寄存器进行时钟使能,否则访问对应模块寄存器操作无效。

5.3.2. 休眠与唤醒设置

SWM221系列提供浅睡眠(SLEEP)模式,通过SLEEP寄存器进行使能操作。

浅睡眠模式

浅睡眠模式下,芯片进入保持状态,所有时钟关闭,在功耗较低的前提下保持数据。可以通过配置任意I/O引脚进行唤醒操作。IO唤醒操作同样为下降沿唤醒。唤醒后,程序从睡眠使能语句继续执行。

在sleep之前,需要将时钟切换为内部高频。

注意

浅睡眠模式使能前需保证 LRC(32KHZ)时钟为使能状态,且将所有不需要唤醒操作的 IO 输入使能关闭(PORTCON 模块中 INEN_x 寄存器)。

重要

FLASH 深睡眠模式使能独立控制,默认为开启状态,进入睡眠模式和唤醒不需要单独操作,在核唤醒 FLASH 在 20us 后自动唤醒,在这 20us 内不能对FLASH操作,建议在SRAM中运行睡眠以及唤醒和等待的操作。

端口唤醒

浅睡眠模式下,可指定任意 IO 进行唤醒操作。

示意图如 图 5 所示。

具体流程如下:

  • 确认LRC(32KHZ时钟)为使能状态

  • 将需要执行唤醒操作的引脚对应PxWKEN寄存器及INEN_x寄存器指定位配置为1,使能相应端口对应位输入使能及唤醒功能

  • 系统时钟切换为HRC,关闭PLL和XTAL,GPIO无外围器件接入时,设置成输出高,有外围器件根据不同情况设置GPIO状态以达到功耗最低

  • SLEEP寄存器BIT[0] = 1后,芯片进入浅睡眠模式

  • 唤醒端口可配置为GPIO端口,以及UART模块RX端口或I2C模块DAT端口,当配置端口对应位产生下降沿时,芯片被唤醒,继续执行程序。使用通讯接口进行唤醒时,需保证通讯采样速率低于32KHZ,避免出现数据丢失现象

  • 唤醒后,端口对应PxWKSR寄存器对应位被置1,可通过对该位写1进行清除(该位对进入休眠无影响)

  • 如开启FLASH的深度睡眠模式,等待20us后再对FLASH进行操作

注意

所有配置为唤醒功能的引脚,执行唤醒过程时只能有一个产生下降沿,对应引脚必须保证为高电平。为保证功耗最低,需确认所有输入使能引脚无悬空输入状态

../../_images/syscon_pin_wakeup.svg

图 5 端口唤醒示意图

5.3.3. LVR

芯片提供了低电压复位(Low voltage reset )功能,通过LVRCR寄存器配置。

通过配置寄存器LVRCR,可选择相应复位电压产生复位,使整个芯片处于复位状态。

配置方法

  1. 写寄存器LVRCR.EN使能LVR

  2. 写寄存器LVRCR.LVL配置复位电压

  3. 写LVRCR.WEN 配置LVR模块写使能后步骤1和2生效

配置完成后,当电压降低到:LVRCR.LVL配置电压后,芯片处于复位状态

5.3.4. PVD

可编程电压检测器PVD模块通过PVDCR寄存器配置芯片掉电进入中断的阈值。

配置方法

  1. 写寄存器PVDCR.EN使能PVD

  2. 写寄存器PVDCR.LVL配置中断电压

  3. 写寄存器PVDCR.IE使能中断

PVDSR.IF位为中断状态位,当芯片供电电压小于等于配置电压时,该位将被置1(电平处罚)。此时若PVDCR.IE位为非屏蔽状态(PVDCR.IE=1)),则NVIC控制器将收到PVD中断

该中断可通过PVDSR.IF位写1清除。

5.3.5. 用户ID

芯片提供 128 位唯一ID,分成 4 个 32 位值保存在 CHIP_ID0,CHIP_ID1,CHIP_ID2 和 CHIP_ID3。

5.3.6. GPIO 和 CMP 数字滤波器

芯片提供一组 GPIO 滤波器和一组 CMP 滤波器。

芯片管脚 PB14, PB4, PB5 和 PB6 具备输入滤波功能的。通过 IOFILT0 寄存器配置 GPIO 输入滤波。IOFILT0 寄存器 IOSEL 位域的每一位对应一个 GPIO,相关的配置值如 表格 3 所示 (X 为无关值)。

表格 3 GPIO 输入滤波功能配置

IOFILT0 寄存器 IOSEL 位域

描述

IOSEL[0]

0: PB14 输入滤波禁止

1: PB14 输入滤波使能

IOSEL[1]

0: PB4 输入滤波禁止

1: PB4 输入滤波使能

IOSEL[2]

0: PB5 输入滤波禁止

1: PB5 输入滤波使能

IOSEL[3]

0: PB6 输入滤波禁止

1: PB6 输入滤波使能

芯片内置比较器 CMP0 和 CMP1 输出具备滤波功能。通过 IOFILT1 寄存器配置 CMPx_OUT 输出滤波。IOFILT1 寄存器 IOSEL 位域的每一位对应一个 CMPx_OUT 输出滤波使能,相关的配置值如 表格 4 所示(X 为无关值)。

表格 4 CMP 输出滤波功能配置

IOFILT1 寄存器 IOSEL 位域

描述

IOSEL[0]

0: CMP0_OUT 输出滤波禁止

1: CMP0_OUT 输出滤波使能

IOSEL[1]

0: CMP1_OUT 输出滤波禁止

1: CMP1_OUT 输出滤波使能

5.3.7. 特殊用途IO的复位状态

芯片管脚在上电复位 (POR) 或低压复位 (LVR) 后, 所有管脚默认状态为浮空 GPIO模式,除了如 表格 5 描述的管脚。

表格 5 特殊用途IO的复位状态

管脚

特殊功能

复位后状态

PB10

ISP

数字输入使能,下拉使能

PB11

内置测试用

数字输入使能,下拉使能

PB12

内置测试用

数字输入使能,上拉使能

PB15

内置测试用

数字输入使能,上拉使能

PC0

SWCLK

数字输入使能

PC1

SWDIO

数字输入使能

注意

SWCLK 和 SWDIO 为调试功能管脚,如需复用为 GPIO,请参考芯片配套的例程。

5.4. 寄存器映射

名称

偏移

复位值

SYSCON BASE:0x40000000

CLKSEL

0x00

0x01

CLKDIVX_ON

0x04

0x00

CLKEN0

0x08

0x00

SLEEP

0x10

0x00

RSTSR

0x24

0x00

CHIP_ID0

0x80

CHIP_ID1

0x84

CHIP_ID2

0x88

CHIP_ID3

0x8C

PAWKEN

0x100

0x00

PBWKEN

0x104

0x00

PCWKEN

0x108

0x00

PAWKSR

0x130

0x00

PBWKSR

0x134

0x00

PCWKSR

0x138

0x00

IOFILT0

0x400

0x00

IOFILT1

0x404

0x00

PRSTEN

0x720

0x00

PRSTR

0x724

0x00

ANACON BASE:0400A5800

RCCR

0x08

0x01

XTALCR

0x10

0x00

XTALSR

0x14

0x00

PLLCR

0x18

0x00

PLLST

0x1C

0x00

PVDCR

0x20

0x00

PVDSR

0x24

0x00

LVRCR

0x28

0x00

5.5. 寄存器描述

5.5.1. 时钟选择控制寄存器CLKSEL

偏移: 0x00

复位值: 0x00000101

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

WDT

7

6

5

4

3

2

1

0

WDT

IOFILT

SRCCLK

CLKDIVX

SYSCLK

位域

名称

类型

描述

31:9

RO

8:7

WDT

R/W

WDT计数时钟选择

11:不可用

10:片内低频RC振荡器(32KHz)

01:片外高频晶体振荡器(4~24MHz)

00:片内高频RC振荡器(8MHz)

注:1、WDT计数时钟在进行不同源选择时,必须先将WDT使能关闭,再进行时钟源切换。

2、当WDT计数时钟选择高频时钟时,系统时钟源必须为PLL,否则WDT存在失效风险。

6:5

IOFILT

R/W

滤波时钟选择

0x:片内高频RC振荡器(12MHz)

10:片外高频晶体振荡器(4~16MHz)

11:片内低频RC振荡器(32KHz)

4:3

SRCCLK

R/W

SRC_CLK时钟选择

11:片内高频RC振荡器(RCHF:8MHz)

10:片外高频晶体振荡器(XTAH:4~24MHz)

01:片内PLL

00:片内低频RC振荡器(RCLF:32KHz)

2:1

CLKDIVx

R/W

SRC_DIV_CLK时钟选择

11:SRC_CLK/8

10:SRC_CLK/4

01:SRC_CLK/2

00:SRC_CLK

0

SYSCLK

R/W

系统时钟选择

1:RCHF

0:SRC_DIV_CLK

注:更改SRCCLK或DIV设置时,需要将此位先切换为1,再进行时钟源或分频切换

5.5.2. 源时钟选择控制寄存器CLKDIVX_ON

偏移: 0x04

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

CLKDIV_ON

位域

名称

类型

描述

31:1

RO

0

CLKDIV_ON

R/W

DIVCLK时钟门控

1:关闭

0:打开

注:更改DIV时,需保证此位为1,在关闭状态下进行更改

注2:系统时钟选择不同时钟切换时,若需要在SRCDIVCLK或SRCCLK内部时钟源间进行切换,则系统时钟需要先切换回RCHF,然后将该位置为1后再进行切换。

注3:若系统时钟已选择了RCHF作为时钟源,并需要改变RCHF频率时,系统时钟需要先切至其他时钟源,然后再改变RCHF频率,最后再将系统时钟切换回RCHF。

5.5.3. 时钟门控控制寄存器0 CLKEN0

偏移: 0x08

复位值: 0x001FFFFF

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

QEI

MPU

WDT

FILTER

CAN

15

14

13

12

11

10

9

8

SARADC

ANA

DIVIDER

CRC

PWM

TIMR

TIMRG

QSPI

7

6

5

4

3

2

1

0

I2C

SPI

USART

UART1

UART0

GPIOC

GPIOB

GPIOA

位域

名称

类型

描述

31:21

RO

20

QEI

R/W

QEI时钟使能

19

MPU

R/W

MPU时钟使能

18

WDT

R/W

WDT时钟使能

17

FILTER

R/W

滤波时钟使能

16

CAN

R/W

CAN时钟使能

15

SARADC

R/W

SARADC_CTRL时钟使能

14

ANA

R/W

ANA_CTRL时钟使能

13

DIVIDER

R/W

DIVIDER时钟使能

12

CRC

R/W

CRC时钟使能

11

PWM

R/W

PWM时钟使能

10

TIMR

R/W

TIMR时钟使能

9

TIMRG

R/W

TIMRG时钟使能

8

QSPI

R/W

QSPI时钟使能

7

I2C

R/W

I2C时钟使能

6

SPI

R/W

SPI时钟使能

5

USART

R/W

USART时钟使能

4

UART1

R/W

UART1时钟使能

3

UART0

R/W

UART0时钟使能

2

GPIOC

R/W

GPIOC时钟使能

1

GPIOB

R/W

GPIOB时钟使能

0

GPIOA

R/W

GPIOA时钟使能

5.5.4. 系统模式控制寄存器SLEEP

偏移: 0x10

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

SLEEP

位域

名称

类型

描述

31:1

RO

0

SLEEP

R/W

将该位置1后,系统将进入SLEEP模式

5.5.5. 芯片复位状态寄存器RSTSR

偏移: 0x24

复位值: 0x00000001

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

WDT

POR

位域

名称

类型

描述

31:2

RO

1

WDT

R/W1C

WDT复位状态标志寄存器,写1清零

1:出现WDT复位

0:未出现WDT复位

0

POR

R/W1C

POR复位状态标志寄存器,写1清零

1:出现POR复位

0:未出现POR复位

5.5.6. 芯片128位ID寄存器0 CHIP_ID0

偏移: 0x80

复位值: 0xXXXXXXXX

31

30

29

28

27

26

25

24

ID0

23

22

21

20

19

18

17

16

ID0

15

14

13

12

11

10

9

8

ID0

7

6

5

4

3

2

1

0

ID0

位域

名称

类型

描述

31:0

ID0

RO

芯片128位ID寄存器0

5.5.7. 芯片128位ID寄存器1 CHIP_ID1

偏移: 0x84

复位值: 0xXXXXXXXX

31

30

29

28

27

26

25

24

ID1

23

22

21

20

19

18

17

16

ID1

15

14

13

12

11

10

9

8

ID1

7

6

5

4

3

2

1

0

ID1

位域

名称

类型

描述

31:0

ID1

RO

芯片128位ID寄存器1

5.5.8. 芯片128位ID寄存器2 CHIP_ID2

偏移: 0x88

复位值: 0xXXXXXXXX

31

30

29

28

27

26

25

24

ID2

23

22

21

20

19

18

17

16

ID2

15

14

13

12

11

10

9

8

ID2

7

6

5

4

3

2

1

0

ID2

位域

名称

类型

描述

31:0

ID2

RO

芯片128位ID寄存器2

5.5.9. 芯片128位ID寄存器3 CHIP_ID3

偏移: 0x8C

复位值: 0xXXXXXXXX

31

30

29

28

27

26

25

24

ID2

23

22

21

20

19

18

17

16

ID2

15

14

13

12

11

10

9

8

ID2

7

6

5

4

3

2

1

0

ID2

位域

名称

类型

描述

31:0

ID3

RO

芯片128位ID寄存器3

5.5.10. PORTA唤醒使能控制寄存器PAWKEN

偏移: 0x100

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

PAWKEN15

PAWKEN14

PAWKEN13

PAWKEN12

PAWKEN11

PAWKEN10

PAWKEN9

PAWKEN8

7

6

5

4

3

2

1

0

PAWKEN7

PAWKEN6

PAWKEN5

PAWKEN4

PAWKEN3

PAWKEN2

PAWKEN1

PAWKEN0

位域

名称

类型

描述

31:16

RO

15

PAWKEN15

R/W

PA15输入唤醒使能

1:使能 0:禁能

14

PAWKEN14

R/W

PA14输入唤醒使能

1:使能 0:禁能

13

PAWKEN13

R/W

PA13输入唤醒使能

1:使能 0:禁能

12

PAWKEN12

R/W

PA12输入唤醒使能

1:使能 0:禁能

11

PAWKEN11

R/W

PA11输入唤醒使能

1:使能 0:禁能

10

PAWKEN10

R/W

PA10输入唤醒使能

1:使能 0:禁能

9

PAWKEN9

R/W

PA9输入唤醒使能

1:使能 0:禁能

8

PAWKEN8

R/W

PA8输入唤醒使能

1:使能 0:禁能

7

PAWKEN7

R/W

PA7输入唤醒使能

1:使能 0:禁能

6

PAWKEN6

R/W

PA6输入唤醒使能

1:使能 0:禁能

5

PAWKEN5

R/W

PA5输入唤醒使能

1:使能 0:禁能

4

PAWKEN4

R/W

PA4输入唤醒使能

1:使能 0:禁能

3

PAWKEN3

R/W

PA3输入唤醒使能

1:使能 0:禁能

2

PAWKEN2

R/W

PA2输入唤醒使能

1:使能 0:禁能

1

PAWKEN1

R/W

PA1输入唤醒使能

1:使能 0:禁能

0

PAWKEN0

R/W

PA0输入唤醒使能

1:使能 0:禁能

5.5.11. PORTB唤醒使能控制寄存器PBWKEN

偏移: 0x104

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

PBWKEN15

PBWKEN14

PBWKEN13

PBWKEN12

PBWKEN11

PBWKEN10

PBWKEN9

PBWKEN8

7

6

5

4

3

2

1

0

PBWKEN7

PBWKEN6

PBWKEN5

PBWKEN4

PBWKEN3

PBWKEN2

PBWKEN1

PBWKEN0

位域

名称

类型

描述

31:16

15

PBWKEN15

R/W

PB15输入唤醒使能

1:使能 0:禁能

14

PBWKEN14

R/W

PB14输入唤醒使能

1:使能 0:禁能

13

PBWKEN13

R/W

PB13输入唤醒使能

1:使能 0:禁能

12

PBWKEN12

R/W

PB12输入唤醒使能

1:使能 0:禁能

11

PBWKEN11

R/W

PB11输入唤醒使能

1:使能 0:禁能

10

PBWKEN10

R/W

PB10输入唤醒使能

1:使能 0:禁能

9

PBWKEN9

R/W

PB9输入唤醒使能

1:使能 0:禁能

8

PBWKEN8

R/W

PB8输入唤醒使能

1:使能 0:禁能

7

PBWKEN7

R/W

PB7输入唤醒使能

1:使能 0:禁能

6

PBWKEN6

R/W

PB6输入唤醒使能

1:使能 0:禁能

5

PBWKEN5

R/W

PB5输入唤醒使能

1:使能 0:禁能

4

PBWKEN4

R/W

PB4输入唤醒使能

1:使能 0:禁能

3

PBWKEN3

R/W

PB3输入唤醒使能

1:使能 0:禁能

2

PBWKEN2

R/W

PB2输入唤醒使能

1:使能 0:禁能

1

PBWKEN1

R/W

PB1输入唤醒使能

1:使能 0:禁能

0

PBWKEN0

R/W

PB0输入唤醒使能

1:使能 0:禁能

5.5.12. PORTC唤醒使能控制寄存器PCWKEN

偏移: 0x120

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

PCWKEN15

PCWKEN14

PCWKEN13

PCWKEN12

PCWKEN11

PCWKEN10

PCWKEN9

PCWKEN8

7

6

5

4

3

2

1

0

PCWKEN7

PCWKEN6

PCWKEN5

PCWKEN4

PCWKEN3

PCWKEN2

PCWKEN1

PCWKEN0

位域

名称

类型

描述

31:16

RO

15

PCWKEN15

R/W

PC15输入唤醒使能

1:使能 0:禁能

14

PCWKEN14

R/W

PC14输入唤醒使能

1:使能 0:禁能

13

PCWKEN13

R/W

PC13输入唤醒使能

1:使能 0:禁能

12

PCWKEN12

R/W

PC12输入唤醒使能

1:使能 0:禁能

11

PCWKEN11

R/W

PC11输入唤醒使能

1:使能 0:禁能

10

PCWKEN10

R/W

PC10输入唤醒使能

1:使能 0:禁能

9

PCWKEN9

R/W

PC9输入唤醒使能

1:使能 0:禁能

8

PCWKEN8

R/W

PC8输入唤醒使能

1:使能 0:禁能

7

PCWKEN7

R/W

PC7输入唤醒使能

1:使能 0:禁能

6

PCWKEN6

R/W

PC6输入唤醒使能

1:使能 0:禁能

5

PCWKEN5

R/W

PC5输入唤醒使能

1:使能 0:禁能

4

PCWKEN4

R/W

PC4输入唤醒使能

1:使能 0:禁能

3

PCWKEN3

R/W

PC3输入唤醒使能

1:使能 0:禁能

2

PCWKEN2

R/W

PC2输入唤醒使能

1:使能 0:禁能

1

PCWKEN1

R/W

PC1输入唤醒使能

1:使能 0:禁能

0

PCWKEN0

R/W

PC0输入唤醒使能

1:使能 0:禁能

5.5.13. PORTA唤醒状态寄存器PAWKSR

偏移: 0x130

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

PAWKSR15

PAWKSR14

PAWKSR13

PAWKSR12

PAWKSR11

PAWKSR10

PAWKSR9

PAWKSR8

7

6

5

4

3

2

1

0

PAWKSR7

PAWKSR6

PAWKSR5

PAWKSR4

PAWKSR3

PAWKSR2

PAWKSR1

PAWKSR0

位域

名称

类型

描述

31:16

RO

15

PAWKSR15

R/W1C

PA15输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

14

PAWKSR14

R/W1C

PA14输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

13

PAWKSR13

R/W1C

PA13输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

12

PAWKSR12

R/W1C

PA12输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

11

PAWKSR11

R/W1C

PA11输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

10

PAWKSR10

R/W1C

PA10输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

9

PAWKSR9

R/W1C

PA9输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

8

PAWKSR8

R/W1C

PA8输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

7

PAWKSR7

R/W1C

PA7输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

6

PAWKSR6

R/W1C

PA6输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

5

PAWKSR5

R/W1C

PA5输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

4

PAWKSR4

R/W1C

PA4输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

3

PAWKSR3

R/W1C

PA3输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

2

PAWKSR2

R/W1C

PA2输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

1

PAWKSR1

R/W1C

PA1输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

0

PAWKSR0

R/W1C

PA0输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

5.5.14. PORTB唤醒状态寄存器PBWKSR

偏移: 0x134

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

PBWKSR15

PBWKSR14

PBWKSR13

PBWKSR12

PBWKSR11

PBWKSR10

PBWKSR9

PBWKSR8

7

6

5

4

3

2

1

0

PBWKSR7

PBWKSR6

PBWKSR5

PBWKSR4

PBWKSR3

PBWKSR2

PBWKSR1

PBWKSR0

位域

名称

类型

描述

31:16

RO

15

PBWKSR15

R/W1C

PB15输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

14

PBWKSR14

R/W1C

PB14输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

13

PBWKSR13

R/W1C

PB13输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

12

PBWKSR12

R/W1C

PB12输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

11

PBWKSR11

R/W1C

PB11输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

10

PBWKSR10

R/W1C

PB10输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

9

PBWKSR9

R/W1C

PB9输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

8

PBWKSR8

R/W1C

PB8输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

7

PBWKSR7

R/W1C

PB7输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

6

PBWKSR6

R/W1C

PB6输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

5

PBWKSR5

R/W1C

PB5输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

4

PBWKSR4

R/W1C

PB4输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

3

PBWKSR3

R/W1C

PB3输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

2

PBWKSR2

R/W1C

PB2输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

1

PBWKSR1

R/W1C

PB1输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

0

PBWKSR0

R/W1C

PB0输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

5.5.15. PORTC唤醒状态寄存器PCWKSR

偏移: 0x150

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

PCWKSR15

PCWKSR14

PCWKSR13

PCWKSR12

PCWKSR11

PCWKSR10

PCWKSR9

PCWKSR8

7

6

5

4

3

2

1

0

PCWKSR7

PCWKSR6

PCWKSR5

PCWKSR4

PCWKSR3

PCWKSR2

PCWKSR1

PCWKSR0

位域

名称

类型

描述

31:16

RO

15

PCWKSR15

R/W1C

PC15输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

14

PCWKSR14

R/W1C

PC14输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

13

PCWKSR13

R/W1C

PC13输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

12

PCWKSR12

R/W1C

PC12输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

11

PCWKSR11

R/W1C

PC11输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

10

PCWKSR10

R/W1C

PC10输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

9

PCWKSR9

R/W1C

PC9输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

8

PCWKSR8

R/W1C

PC8输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

7

PCWKSR7

R/W1C

PC7输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

6

PCWKSR6

R/W1C

PC6输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

5

PCWKSR5

R/W1C

PC5输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

4

PCWKSR4

R/W1C

PC4输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

3

PCWKSR3

R/W1C

PC3输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

2

PCWKSR2

R/W1C

PC2输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

1

PCWKSR1

R/W1C

PC1输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

0

PCWKSR0

R/W1C

PC0输入唤醒状态标志位

唤醒后硬件置1,软件写1清除

1:唤醒 0:未唤醒

5.5.16. IO滤波窗口时间配置寄存器0 IOFILT0

偏移: 0x400

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

IOSEL

7

6

5

4

3

2

1

0

IOSEL

CLKDIV

TIM

位域

名称

类型

描述

31:9

RO

8:5

IOSEL

R/W

0组X组IO滤波选择控制位

xxx1:基础序号的IO具有滤波功能

xx1x:基础序号+1的IO具有滤波功能

x1xx:基础序号+2的IO具有滤波功能

1xxx:基础序号+3的IO具有滤波功能

4

CLKDIV

R/W

0组IO滤波时钟是否采用分频

0: 不分频

1:分频(固定为32分频)

3:0

TIM

R/W

IO硬件滤波窗口时间配置寄存器(若配置则对某IO的输入具有滤波功能,则该寄存器存在)

若滤波时钟分频:

滤波窗口时间=32*Tfilter_clk*2^ TIM

若滤波时钟不分频:

滤波窗口时间=Tfilter_clk*2^ TIM

当TIM为0时,则不具有滤波功能。因此,只有当将TIM配置大于0时,滤波功能才能开启。

注:Tfilter_clk 由CLK_SEL. IOFILT控制可选

5.5.17. IO滤波窗口时间配置寄存器1 IOFILT1

偏移: 0x404

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

IOSEL

CLKDIV

TIM

位域

名称

类型

描述

31:7

RO

6:5

IOSEL

R/W

xxx1:基础序号的CMP具有滤波功能

xx1x:基础序号+1的CMP具有滤波功能

4

CLKDIV

R/W

CMP滤波时钟是否采用分频

0:不分频

1:分频(固定为32分频)

3:0

TIM

R/W

CMP硬件滤波窗口时间配置寄存器(若配置则对某IO的输入具有滤波功能,则该寄存器存在)

若滤波时钟分频:

滤波窗口时间=32*Tfilter_clk*2^ TIM

若滤波时钟不分频:

滤波窗口时间=Tfilter_clk*2^ TIM

当TIM为0时,则不具有滤波功能。因此,只有当将TIM配置大于0时,滤波功能才能开启。

注:Tfilter_clk 由CLK_SEL. IOFILT控制可选

5.5.18. 芯片复位屏蔽寄存器PRSTEN

偏移: 0x720

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

PRSTEN

位域

名称

类型

描述

31:8

RO

7:0

PRSTEN

R/W

只有当该寄存器配置为0x55时,才能对PRSTR0和PRSTR1进行写操作。

5.5.19. 芯片复位配置寄存器 PRSTR

偏移: 0x724

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

FILTER

CAN

QEI

MPU

WDT

15

14

13

12

11

10

9

8

SARADC

ANA

DIVIDER

CRC

PWM

TIMR

TIMRG

QSPI

7

6

5

4

3

2

1

0

I2C

SPI

USART

UART1

UART0

GPIOC

GPIOB

GPIOA

位域

名称

类型

描述

31:21

RO

20

QEI

R/W

QEI模块复位配置位

将该位置1,则复位该模块。

19

MPU

R/W

MPU模块复位配置位

将该位置1,则复位该模块。

18

WDT

R/W

WDT模块复位配置位

将该位置1,则复位该模块。

17

FILTER

R/W

滤波模块复位配置位

将该位置1,则复位该模块。

16

CAN

R/W

CAN模块复位配置位

将该位置1,则复位该模块。

15

SARADC

R/W

SARADC模块复位配置位

将该位置1,则复位该模块。

14

ANA

R/W

ANA控制模块复位配置位

将该位置1,则复位该模块。

13

DIVIDER

R/W

DIVIDER模块复位配置位

将该位置1,则复位该模块。

12

CRC

R/W

CRC模块复位配置位

将该位置1,则复位该模块。

11

PWM

R/W

PWM模块复位配置位

将该位置1,则复位该模块。

10

TIMR

R/W

TIMR模块复位配置位

将该位置1,则复位该模块。

9

TIMRG

R/W

TIMRG模块复位配置位

将该位置1,则复位该模块。

8

QSPI

R/W

QSPI模块复位配置位

将该位置1,则复位该模块。

7

I2C

R/W

I2C模块复位配置位

将该位置1,则复位该模块。

6

SPI

R/W

SPI模块复位配置位

将该位置1,则复位该模块。

5

USART

R/W

USART模块复位配置位

将该位置1,则复位该模块。

4

UART1

R/W

UART1模块复位配置位

将该位置1,则复位该模块。

3

UART0

R/W

UART0模块复位配置位

将该位置1,则复位该模块。

2

GPIOC

R/W

GPIOC模块复位配置位

将该位置1,则复位该模块。

1

GPIOB

R/W

GPIOB模块复位配置位

将该位置1,则复位该模块。

0

GPIOA

R/W

GPIOA模块复位配置位

将该位置1,则复位该模块。

5.5.20. 内部RC振荡器配置寄存器RCCR

偏移: 0x08

复位值: 0x00000003

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

32KON

ON

位域

名称

类型

描述

31:2

1

32KON

R/W

32K低频RC使能,高有效

0

ON

R/W

内部高频RC振荡器使能

0:关闭

1:开启

5.5.21. 晶体振荡器控制寄存器XTALCR

偏移: 0x10

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

DET

BYPASS

ON

位域

名称

类型

描述

31:3

RO

2

DET

R/W

外接低频晶振停振检测

0:关闭

1:开启

1

BYPASS

R/W

外接高频时钟直入使能

0:关闭

1:开启

0

ON

R/W

外接高频晶振使能

0:关闭

1:开启

5.5.22. 晶体振荡器状态寄存器XTALSR

偏移: 0x14

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

STOP

位域

名称

类型

描述

31:1

RO

0

STOP

R/W1C

外接高频晶振状态,写1清0

0:正常

1:停振,发生停振后将自动切换至RCHF

5.5.23. PLL控制寄存器PLLCR

偏移: 0x18

复位值: 0x00018105

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

FBDIV

15

14

13

12

11

10

9

8

FBDIV

INDIV

7

6

5

4

3

2

1

0

BP

INSEL

OUTEN

OFF

位域

名称

类型

描述

31:21

RO

20:14

FBDIV

R/W

PLL FeedBack分频寄存器

0:不可赋值

N:N分频

数值为2-127,对应分频为2-127

13:8

INDIV

R/W

PLL Reference分频寄存器

0:不可赋值

N:N分频

数值对应1-63

7:4

RO

3

BP

R/W

PLL bypass使能,为高是地,Fout=Fin/DIVPRE

2

INSEL

R/W

PLL参考时钟源选择

0:内部RC输出

1:外部晶振时钟

1

OUTEN

R/W

时钟输出使能

0:输出时钟关闭

1:输出时钟开启

0

OFF

R/W

PLL模块POWER DOWN开关控制

0:模块开启

1:模块关闭,进入powerdown模式

5.5.24. PLL状态寄存器PLLST

偏移: 0x1C

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

CLK_EN

LOCK

位域

名称

类型

描述

31:2

RO

1

CLK_EN

R/W

PLL时钟门控使能

1: PLL时钟门控使能

0: PLL时钟门控关闭

0

LOCK

RO

PLL LOCK输出标志信号(只有当CPU连续两次检测到该寄存器为1后,才能将CLK_EN位置为有效,使用PLL时钟)

1:PLL已锁定

0:PLL未锁定

5.5.25. PVD控制寄存器PVDCR

偏移: 0x20

复位值: 0x00000017

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

RSTLVL

7

6

5

4

3

2

1

0

IE

INTLVL

EN

位域

名称

类型

描述

31:7

RO

4

IE

R/W

PVD中断功能使能寄存器

1:使能

0:关闭

3:1

INTLVL

R/W

PVD中断电位配置寄存器

000: PVD2.00V产生中断

001: PVD2.30V产生中断

010: PVD2.70V产生中断

011: PVD3.00V产生中断

100: PVD3.70V产生中断

101: PVD4.00V产生中断

110: PVD4.30V产生中断

0

EN

R/W

PVD功能使能寄存器

1:使能

0:关闭

5.5.26. PVD中断状态寄存器PVDSR

偏移: 0x24

复位值: 0x00000000

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

ST

IF

位域

名称

描述

31:1

RO

1

ST

RO

PVD原始状态寄存器

0

IF

R/W1C

PVD中断状态标志位,写1清除

1:已触发中断电压

0:未触发中断电压

注:只有当PVDCR.IE=1时,PVDSR.IF才会置位

5.5.27. LVR控制寄存器LVRCR

偏移: 0x28

复位值: 0x00000001

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

SET

VTHSEL

EN

位域

名称

类型

描述

31:4

RO

3

SET

R/W

LVR写入使能,写该位LVRCR.EN和LVRCR.VTHSEL值生效,使用时先配置LVRCR.EN和LVRCR.VTHSEL,再写该为为1

2:1

VTHSEL

R/W

LVR复位电位配置寄存器

01: LVR 2.00V产生复位

10: LVR 2.50V产生复位

11: LVR 3.50V产生复位

0

EN

R/W

LVR功能使能寄存器

1:使能

0:关闭