<!-- 本文件由脚本自动转换生成，请勿手动编辑 -->

> **《LKS32MC08x User Manual》系统控制及时钟复位** . 完整目录见 [README.md](README.md)
>
> **声明**：本文档由芯片用户手册自动转换生成，仅供检索与查阅参考。Markdown 格式可被自由编译、修改，本文档不构成正式技术文件，相关内容以凌鸥创芯官方网站正式发布的手册为准。
>
> 南京凌鸥创芯电子有限公司 . (C) 2019, 版权归凌鸥创芯所有 . 机密文件，未经许可不得扩散

# 系统控制及时钟复位

## 时钟

### 时钟源

如下表所示，系统包括5个时钟源。其中内部低速RC振荡时钟LSI（Low Speed
Internal Clock）/内部高速RC振荡时钟HSI（High Speed Internal
Clock）不会停振。外部晶振时钟HSE（High Speed External
Clock）在极端工况下可能失效，仅部分应用会使用HSE。

表5-1系统时钟源

||||||
|---|---|---|---|---|
|时钟源|频率|来源|误差|说明|
|LSI|32kHz|内部RC振荡器|常温23~42kHz全温度16~48kHz|内部系统管理时钟，用于看门狗模块，以及复位信号的滤波和展宽|
|HSI|4MHz|内部RC振荡器|-40~125°误差\<±2.0%|可作为PLL源时钟|
|PLL|96MHz|PLL时钟|0|PLL输出时钟，以HSI/HSE作为参考时钟，输出是HSI/HSE时钟的24倍频，作为系统主时钟。|
|HSE|4~8MHz|外部晶体振荡器|0|外部晶体，在对时钟精度有严格要求(例如ppm级别的精度要求)的应用下，可使用4MHz HSE作为PLL参考时钟来产生96MHz的系统主时钟，不支持使用其他频率HSE作为PLL参考时钟|
|SWD|1MHz\*|调试器|\-|SWD的JTAG时钟|

\*SWD时钟速率典型值，实际大小与硬件环境有关。

另外，晶振起振电路可以支持4~8MHz的外部晶振频率，但如果需要使用HSE作为PLL参考时钟，则仍需使用4MHz晶体，以提供与HSI相同频率的PLL参考时钟。如果直接使用HSE作为系统主时钟，则无此限制。

如

图5-1所示，系统可以使用外部晶振时钟HSE或内部高速RC时钟HSI作为PLL的参考时钟，使用SYS_AFE_REG6.PLLSR_SEL进行选择。同时，芯片内部可以检测HSE时钟是否停振，如果HSE失效会自动切换至HSI作为PLL参考时钟。PLL将4MHz的参考时钟CLK_HS倍频24倍至96MHz。

PLL经过n/8分频后，可以得到96MHz×n/8的高速时钟，SYS_CLK_CFG.CLK_SEL在此分频后的高速时钟与4MHz的CLK_HS之间进行二选一，作为系统主时钟MCLK。系统复位时，PLL默认关闭，HSI默认开启，系统选择HSI时钟，即4MHz作为系统主时钟进行工作，从而保证系统上电之初功耗处于较低水平。

MCLK是系统主时钟。可以通过SYS_CLK_CFG寄存器CLK_DIV位域控制进行n/8分频，可以产生12,24,36,48,60,72,84,96MHz等频率值。SYS_CLK_CFG.CLK_SEL表示选择PLL或CLK_HS作为系统主时钟。当SYS_CLK_CFG.CLK_SEL为1时，SYS_CLK_CFG.CLK_DIV作为PLL的分频系数。当SYS_CLK_CFG.CLK_SEL为0时，SYS_CLK_CFG.CLK_DIV不起任何作用。

表5-2 PLL作为MCLK时钟时的分频配置

|||||
|---|---|---|---|
|SYS_CLK_CFG|分频系数|频率/MHz|是否均匀|
|0x0101|1/8|12|是|
|0x0111|2/8|24|是|
|0x0115|3/8|36|否|
|0x0155|4/8|48|是|
|0x0157|5/8|60|否|
|0x0177|6/8|72|否|
|0x017F|7/8|84|否|
|0x01FF|8/8|96|是|

MCLK时钟经过SYS_CLK_FEN寄存器控制的开关之后供给外设。I2C时钟由SYS_CLK_DIV0寄存器控制可以进一步分频，UART时钟由SYS_CLK_DIV2寄存器控制可以进一步分频。

PLL输出的时钟经过SYS_AFE_REG7.ADCLKSEL控制的2/4/8分频后送至ADC（典型工作频率48MHz），即ACLK。

内部32kHz
RC产生一路LSI时钟LCLK，主要用于WDT工作时钟，以及部分系统控制，复位的滤波展宽等。

【图片已删除】为控制知识库体积，本文档不携带图片，相关图示请查阅凌鸥创芯官网发布的正式手册。

图5-1时钟架构

为了保证系统可靠工作，时钟系统有防止时钟被误操作关闭的机制。如当PLL被用作系统工作主时钟时，PLL本身无法被关闭，作为PLL参考时钟的HSI或HSE无法被软件关闭；当CLK_HS作为系统工作主时钟时，作为CLK_HS的HSI或HSE无法被关闭；当HSE被使用时，如果系统检测到HSE停振会自动切换到使用HSI时钟来代替HSE时钟。32kHz
LSI时钟上电即工作，且无法关闭。SWCLK由调试器提供，频率可在调试界面进行选择。

为便于调试和出厂校正，高速RC时钟HSI和低速时钟LSI可以通过配置GPIO的第二功能通过芯片管脚输出。

### 功耗管理及休眠唤醒

#### 休眠

MCLK可以通过配置进行门控，从而令包括CPU和所有外设在内的大部分数字电路处于休眠状态。门控时，PMU状态机依次关闭PLL,
HSI/HSE, BGP等模拟模块，以降低功耗。

需要注意的是，系统的休眠模式仅仅关闭PLL，HSI，HSE等高速时钟，LSI时钟仍然存在。工作于LSI时钟的看门狗如果被使能，看门狗复位作为全局复位可以令系统回到初始状态重新开始工作。

向SYS_CLK_SLP寄存器写入0xDEAD可以令芯片准备进入休眠状态，之后立刻执行\_\_WFI()宏指令使得CPU停止取指。

在应用程序编写中请事先配置好唤醒条件。

\*建议参考官方休眠例程配置，休眠前需要先关闭所有数字模块的时钟，并关闭模拟ADC/OPA/CMP/DAC等模块。

#### 唤醒

休眠后，外部IO事件、内部唤醒Timer均可以作为唤醒源。

内部唤醒Timer为独立于UTimer模块的独立Timer，使用LSI时钟，不同于系统中的通用Timer工作于系统主时钟。唤醒Timer可以使用SYS_RST_CFG.WK_INTV配置0.25s,0.5s,1s,2s,4s,8s,16s,32s共8档唤醒时间间隔，具体请参考5.2.14章节。

仅有P0\[1:0\]、P1\[1:0\]四个IO可以作为外部唤醒IO使用，可以配置独立的使能和极性。具体寄存器配置请参考8.2.13.5
WAKE_POL和8.2.13.6
WAKE_EN章节。需要注意的是，由于外部IO唤醒属于电平触发，如果外部IO在芯片休眠之前处于唤醒电平，会导致芯片休眠后立刻唤醒。

在应用程序编写中请尽量避免上电即进入休眠状态，如果使用内部唤醒Timer作为唤醒源，且唤醒后立即再次睡眠，会导致普通下载器无法进行连接调试，此时需要使用芯片供应商提供的离线下载器进行应用程序擦除改写。

#### 外设时钟门控

外设时钟由系统高速时钟MCLK分频而来；当外设不需要使用时可以通过配置SYS_CLK_FEN寄存器门控关闭相应的外设时钟。对于每一个外设的工作时钟，均有一个时钟门控，共有8路可关闭的外设时钟分别供给不同的外设模块，详见

图5-1时钟架构。门控时钟上电后默认是关闭的，使用相应外设模块之前需要由软件来开启。

I2C使用FCLK\[0\]

Hall模块使用FCLK \[1\]

Timer模块使用FCLK \[2\]

MCPWM模块使用FCLK \[3\]

UART0/UART1分别使用FCLK \[4\]/ FCLK \[5\]

DSP使用FCLK \[6\]

CAN使用FCLK \[7\]

SPI使用FCLK \[8\]

#### 外设时钟分频

部分外设有独立的时钟分频模块使得该模块可以工作在合适的时钟频率上。

其中I2C使用SYS_CLK_DIV\[0\]作为分频系数，UART0/1共享SYS_CLK_DIV\[2\]作为分频系数。UART的波特率在UART模块内部还有一个额外的分频器，详见图5-1时钟架构。

### 复位源

芯片的复位来源包括硬件复位与软件复位。

#### 硬件复位

如表5-3硬件复位源所示，系统包括4个硬件复位源，产生的复位均为芯片全局复位，复位产生后芯片程序计数器回到0地址，所有寄存器恢复到默认值。4个硬件复位均为低电平有效。

表5-3硬件复位源

||||
|---|---|---|
|名称|来源|说明|
|LPORn|内部1.5V电源管理|监控1.5V数字电源，低于1.25V时产生复位|
|HPORn|内部3.3V电源管理|监控3.3V电源，低于2.7V时产生复位|
|RSTn|外部按键|外部RC组成按键复位电路|
|WDTn|硬件看门狗|如果不进行软件喂狗则定时产生复位，复位间隔可配置|

##### 硬件复位架构

如下图所示，LPORn/HPORn来自内部模拟电路， RSTn来自外部按键

经过滤波展宽预处理的复位信号进行与运算得到一个复位信号。

P0.2引脚持续时间小于32us的复位脉冲会被滤除，要求可靠复位宽度大于200us。

4个复位信号复位等级和作用域一致，均为全局复位。

【图片已删除】为控制知识库体积，本文档不携带图片，相关图示请查阅凌鸥创芯官网发布的正式手册。

图5-2硬件复位架构

##### 硬件复位记录

SYS_RST_SRC寄存器用于保存硬件复位事件，当某个硬件复位发生后，SYS_RST_SRC对应位置位。SYS_RST_SRC寄存器本身无法被复位信号复位，只能通过向SYS_CLR_RST寄存器写入0xCA40清空记录，复位记录可以方便地了解是否发生以及发生过何种复位。

#### 软件复位

CPU的软复位操作可以使程序计数器(PC: Program
Counter)回到0地址，但对所有外设中的寄存器没有影响。

在集成开发环境(IDE: Integrated Development
Environment)中的调试模式下，点击Reset【图片已删除】与CPU软复位操作作用相同，仅仅使得PC回到0地址，对外设中的寄存器没有影响。但如果在bootloader中进行了外设模块的软复位，则会使得外设寄存器被复位为默认值。具体bootloader实现请咨询芯片供应商。

部分外设模块有模块级软复位，可以使用SYS_SFT_RST寄存器进行复位，写入对应的位，可以将模块状态机恢复到初始状态，同时将模块的寄存器恢复到默认值，详见5.2.22。

### 复位作用域

表 5-4 复位作用域

|||
|---|---|
|复位源|作用域|
|LPORn|内部1.5V电源管理，全局复位|
|HPOR|内部3.3V电源管理，全局复位，除极少数寄存器|
|RSTn|外部按键，全局复位，除极少数寄存器|
|WDTn|硬件看门狗，全局复位，除极少数寄存器|
|SYS_SFT_RST.SPI_SFT_RST|SPI模块|
|SYS_SFT_RST.CAN_SFT_RST|CAN模块|
|SYS_SFT_RST.DSP_SFT_RST|DSP模块|
|SYS_SFT_RST.UART1_SFT_RST|UART1模块|
|SYS_SFT_RST.UART0_SFT_RST|UART0模块|
|SYS_SFT_RST.MCPWM_SFT_RST|MCPWM模块|
|SYS_SFT_RST.UTIMER_SFT_RST|UTIMER模块|
|SYS_SFT_RST.HALL_SFT_RST|HALL模块|
|SYS_SFT_RST.I2C_SFT_RST|I2C模块|
|NVIC_SystemReset();|CPU软复位，仅复位CPU内核，将PC重置为0，所有外设寄存器值仍然维持。|

其中用于控制P0\[2\]作为GPIO使用还是作为外部复位脚使用的SYS_RST_CFG.RST_IO，用于控制看门狗使能的SYS_RST_CFG.WDT_EN，以及复位记录寄存器SYS_RST_SRC只受LPOR复位。

全局复位会复位全芯片寄存器，包括CPU内核寄存器以及所有外设寄存器，除上述极少数寄存器。

由于CPU软复位仅仅复位CPU内核，而不复位外设寄存器，因此建议重新烧录程序后使用掉电重新上电或外部复位的方式重置外设寄存器。

Flash存储内容，SRAM存储内容不受复位影响。

## 寄存器

### 地址分配

系统模块寄存器基地址为0x4000_0000，寄存器列表如下：

表5-5系统控制寄存器

||||
|---|---|---|
|名称|偏移|说明|
||0x00~0x08|保留|
||0x10~0x14|保留|
|SYS_AFE_CMP|0x18|模拟前端信息寄存器|
||0x1C|保留|
|SYS_AFE_REG0|0x20|模拟配置寄存器0|
|SYS_AFE_REG1|0x24|模拟配置寄存器1|
|SYS_AFE_REG2|0x28|模拟配置寄存器2|
|SYS_AFE_REG3|0x2C|模拟配置寄存器3|
|SYS_AFE_REG4|0x30|模拟配置寄存器4|
|SYS_AFE_REG5|0x34|模拟配置寄存器5|
|SYS_AFE_REG6|0x38|模拟配置寄存器6|
|SYS_AFE_REG7|0x3C|模拟配置寄存器7|
||0x54~0x78|保留|
|SYS_AFE_DAC|0x7C|DAC数字量寄存器|
|SYS_CLK_CFG|0x80|时钟控制寄存器|
|SYS_RST_CFG|0x84|复位控制寄存器|
|SYS_RST_SRC|0x88|复位源记录寄存器|
|SYS_CLR_RST|0x8C|复位源记录清除寄存器|
|SYS_CLK_DIV0|0x90|外设时钟分频寄存器0|
||0x94|保留|
|SYS_CLK_DIV2|0x98|外设时钟分频寄存器2|
|SYS_CLK_FEN|0x9C|外设时钟门控寄存器|
|SYS_CLK_SLP|0xA0|休眠寄存器|
||0xA4|保留|
|SYS_TRIM|0xA8|校正模式寄存器|
|SYS_SFT_RST|0xAC|软复位寄存器|
|SYS_WR_PROTECT|0xB0|写保护寄存器|
|SYS_DAC_AMC|0xB4|DAC增益校正寄存器|
|SYS_DAC_DC|0xB8|DAC直流偏置寄存器|

### SYS_AFE_CMP 模拟前端信息寄存器

地址：0x4000_0018

复位值：0x0

表5-6模拟前端信息寄存器SYS_AFE_CMP

|||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|15|14||13||12|11|10|9|8|7|6|5|4|3|2|1|0|
|CMP1||CMP0|PWR_WEAK|||||||||||||||
|RO||RO|RO|||||||||||||||
|0||0|0|||||||||||||||

||||
|---|---|---|
|位置|位名称|说明|
|\[31:16\]||未使用|
|\[15\]|CMP1_RESULT|CMP1输出结果寄存器|
|\[14\]|CMP0_RESULT|CMP0输出结果寄存器|
|\[13\]|PWR_WEAK|供电低于掉电监测阈值|
|\[12:0\]||未使用|

SYS_AFE_CMP中的CMP0/CMP1为比较器的原始输出，没有经过滤波处理。CMP0/CMP1也可以通过配置GPIO的第二功能（AF1）输出，具体输出引脚请查看器件DATASHEET。

PWR_WEAK标志在当供电电压低于掉电监测电路设定的阈值时置位，同时将产生CPU
掉电中断（中断号
17）。在供电恢复，高于阈值后清零。此标志为只读位，无法软件清除。

掉电监测的使用请参考4.2 POWER 电源管理系统。

### 模拟寄存器概述

模拟寄存器0x40000020~0x4000003C是开放给用户的寄存器，其中保留寄存器(Res)必须全部配置为0（芯片上电后会被复位为0）。其他寄存器根据应用场合需要进行配置。

下面是各个模拟寄存器的详细说明。

### SYS_AFE_REG0 模拟配置寄存器0

地址：0x4000_0020

复位值：0x0

表5-7模拟配置寄存器0 SYS_AFE_REG0

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|Resv.||Resv.||Resv.||Resv.||REF_OPA3||REF_OPA2||REF_OPA1||REF_OPA0||
|RW||RW||RW||RW||RW||RW||RW||RW||
|0||0||0||0||0||0||0||0||

||||
|---|---|---|
|位置|位名称|说明|
|\[31:16\]||未使用|
|\[15:14\]|Reserved|保留位，需全部为’0’|
|\[13:12\]|Reserved|保留位，需全部为’0’|
|\[11:10\]|Reserved|保留位，需全部为’0’|
|\[9:8\]|Reserved|保留位，需全部为’0’|
|\[7:6\]|REF_OPA3|运放3反馈电阻00: 200k:10.4k01: 190k:20.4k10: 180k:30.4k11: 170k:40.4k|
|\[5:4\]|REF_OPA2|运放2反馈电阻00: 200k:10.4k01: 190k:20.4k10: 180k:30.4k11: 170k:40.4k|
|\[3:2\]|REF_OPA1|运放1反馈电阻00: 200k:10.4k01: 190k:20.4k 10: 180k:30.4k 11: 170k:40.4k|
|\[1:0\]|REF_OPA0|运放0反馈电阻00: 200k:10.4k01: 190k:20.4k10: 180k:30.4k11: 170k:40.4k|

运放反馈电阻的比例精度为0.5%，具体精度数据可参考应用笔记《AN8012_运放反馈电阻值精度》

### SYS_AFE_REG1 模拟配置寄存器1

地址：0x4000_0024

复位值：0x0

表5-8模拟配置寄存器1 SYS_AFE_REG1

||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|15|14|13|12|11|10|9|8|7|6|5|4|3||2|1|0|
|Reserved||||||||DAC_GAIN||REFVDD5|REF2VDD|GAIN_REF|IT_CMP|||CMP_FT|
|RW||||||||RW||RW|RW|RW|RW|||RW|
|0||||||||0||0|0|0|0|||0|

||||
|---|---|---|
|位置|位名称|说明|
|\[31:16\]||未使用|
|\[15\]|Reserved|保留位，需全部为’0’|
|\[14\]|Reserved|保留位，需全部为’0’|
|\[13\]|Reserved|保留位，需全部为’0’|
|\[12\]|Reserved|保留位，需全部为’0’|
|\[11:8\]|Reserved|保留位，需全部为’0’|
|\[7:6\]|DAC_GAIN|DAC输出档位配置00: DAC输出档位，满量程为3V01: DAC输出档位，满量程为1.2V10: DAC输出档位，满量程为4.85V（注意，此时供电电源需为5V，否则DAC输出异常）11: 错误配置|
|\[5\]|REFVDD5|电源作为ADC REF且电源为5V时，增加运放输出的信号范围0: 运放最大输出范围为3.3V1: 增加运放最大输出范围到4.8V，需在 REF2VDD配置为’1’时才可设置为’1’|
|\[4\]|REF2VDD|使用外部输入电源作为ADC REF1: 使用外部输入电源作为ADC REF，此时GAIN_REF配置无效;0: 使用默认内部REF作为ADC基准|
|\[3\]|GAIN_REF|ADC基准电压调节，采用默认配置0: ×21: ×1|
|\[2:1\]|IT_CMP|IT_CMP\<1\>:比较器1的比较速度选择0: 150ns1: 600nsIT_CMP\<0\>:比较器0的比较速度选择0: 150ns1: 600ns|
|\[0\]|CMP_FT|使能比较器快速比较1: 在IT_CMP\<1:0\>都为默认’00’的时候，比较器比较速度小于30ns0: 不使能，比较速度维持IT_CMP设置里的参数|

### SYS_AFE_REG2 模拟配置寄存器2

地址：0x4000_0028

复位值：0x0

表5-9模拟配置寄存器2 SYS_AFE_REG2

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|Reserved||Reserved||||Reserved||Reserved|||||OPAOUT_EN|||
|RW||RW||||RW||RW|||||RW|||
|0||0||||0||0|||||0|||

||||
|---|---|---|
|位置|位名称|说明|
|\[31:16\]||未使用|
|\[15:14\]|Reserved|保留位，需全部为’0’|
|\[13\]|Reserved|保留位，需全部为’0’|
|\[12\]|Reserved|保留位，需全部为’0’|
|\[11:10\]|Reserved|保留位，需全部为’0’|
|\[9:8\]|Reserved|保留位，需全部为’0’|
|\[7\]|Reserved|保留位，需全部为’0’|
|\[6\]|Reserved|保留位，需全部为’0’|
|\[5:4\]|Reserved|保留位，需全部为’0’|
|\[3\]|Reserved|保留位，需全部为’0’|
|\[2:0\]|OPAOUT_EN|使能OPAx输出信号送至IO口p2_7000:不输出; 001:输出OPA0信号到IO口;010:输出OPA1信号到IO口; 011:输出OPA2信号到IO口;100:输出OPA3信号到IO口;101~111: 禁止|

### SYS_AFE_REG3 模拟配置寄存器3

地址：0x4000_002C

复位值：0x0

表5-10模拟配置寄存器3 SYS_AFE_REG3

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|Res.|CMP1_SELP|||DACOUT_EN|CMP0_SELP|||CMP_HYS|Res.|CMP1_SELN||CMP0_SELN||Res.|LDOOUT_EN|
|RW|RW|||RW|RW|||RW|RW|RW||RW||RW|RW|
|0|0|||0|0|||0|0|0||0||0|0|

||||
|---|---|---|
|位置|位名称|说明|
|\[31:16\]||未使用|
|\[15\]|Reserved|保留位，需全部为’0’|
|\[14:12\]|CMP1_SELP|比较器1信号正端选择000: 连CMP1_IP0001: 连OPA3_IP010: 连OPA2_OUT011: 连OPA3_OUT100: 连CMP1_IP1101: 连CMP1_IP2110: 连 CMP1_IP3111: 连AVSS说明:上述除AVSS/OPA2_OUT/OPA3_OUT外都为管脚名称，请参看datasheet里管脚定义章节|
|\[11\]|DACOUT_EN|DAC输出到IO使能0: 不使能1:使能输出到IO P0\[0\]|
|\[10:8\]|CMP0_SELP|比较器0信号正端选择000: 连CMP0_IP0001: 连OPA0_IP010: 连OPA0_OUT011: 连OPA1_OUT100: 连CMP0_IP1101: 连CMP0_IP2110: 连CMP0_IP3111: 连CMP0_IP4说明:上述除OPA0_OUT/OPA1_OUT外都为管脚名称，请参看datasheet里管脚定义章节|
|\[7\]|CMP_HYS|比较器回差选择，采用默认配置0: 20mv1: 0mv|
|\[6\]|Reserved|保留位，需全部为’0’|
|\[5:4\]|CMP1_SELN|比较器1信号负端选择00: 连CMP1_IN01: 连REF10: 连DAC输出11: 连BEMF1_MID说明:上述CMP1_IN为管脚名称，请参看datasheet里管脚定义章节；REF为芯片内部1.2V BANDGAP基准源；DAC输出即为芯片内部DAC模块输出模拟信号；BEMF1_MID为CMP1_IP1, CMP1_IP2, CMP1_IP3信号经电阻星形连接后得到的平均值|
|\[3:2\]|CMP0_SELN|比较器0信号负端选择00: 连CMP0_IN01: 连REF 10: 连DAC输出11: 连BEMF0_MID说明:上述CMP0_IN为管脚名称，请参看datasheet里管脚定义章节；REF为芯片内部1.2V BANDGAP基准源；DAC输出即为芯片内部DAC模块输出模拟信号；BEMF0_MID为CMP0_IP1, CMP0_IP2, CMP0_IP3信号经电阻星形连接后得到的平均值|
|\[1\]|Reserved|保留位，需全部为’0’|
|\[0\]|LDOOUT_EN|LDO输出到IO使能0: 不输出1:使能输出到IO P2.7|

### SYS_AFE_REG4 模拟配置寄存器4

地址：0x4000_0030

复位值：0x0

表5-11模拟配置寄存器4 SYS_AFE_REG4

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|Res.||Res.||||||||Res.||||||
|RW||RW||||||||RW||||||
|0||0||||||||0||||||

||||
|---|---|---|
|位置|位名称|说明|
|\[31:16\]||未使用|
|\[15\]|Reserved|保留位，需全部为’0’|
|\[14\]||未使用|
|\[13\]|Reserved|保留位，需全部为’0’|
|\[12:6\]||未使用|
|\[5\]|Reserved|保留位，需全部为’0’|
|\[4:0\]||未使用|

### SYS_AFE_REG5 模拟配置寄存器5

地址：0x4000_0034

复位值：0x0

表5-12模拟配置寄存器5 SYS_AFE_REG5

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|PLLPDN|XTALPDN|TMPPDN|DAC12BPDN|Res.|RCHPD|Res.|BGPPD|CMP1PDN|CMP0PDN|OPA3PDN|OPA2PDN|OPA1PDN|OPA0PDN|Res.|ADCPDN|
|RW|RW|RW|RW|RW|RW|RW|RW|RW|RW|RW|RW|RW|RW|RW|RW|
|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|

||||
|---|---|---|
|位置|位名称|说明|
|\[31:16\]||未使用|
|\[15\]|PLLPDN|PLL关闭控制0:关闭PLL（默认）1:开启PLL|
|\[14\]|XTALPDN|晶体起振电路开启使能0:关闭（默认）1:开启|
|\[13\]|TMPPDN|温度传感器开启使能0:关闭1:开启|
|\[12\]|DAC12BPDN|12BIT DAC开启使能0:关闭1:开启|
|\[11\]|Reserved|保留位，需全部为’0’|
|\[10\]|RCHPD|RCH时钟关闭使能0:开启1:关闭|
|\[9\]|Reserved|保留位，需全部为’0’|
|\[8\]|BGPPD|BGP开启使能0:开启1:关闭|
|\[7\]|CMP1PDN|CMP1开启使能0:关闭1:开启|
|\[6\]|CMP0PDN|CMP0开启使能0:关闭1:开启|
|\[5\]|OPA3PDN|OPA3 开启使能0:关闭1:开启|
|\[4\]|OPA2PDN|OPA2 开启使能0:关闭1:开启|
|\[3\]|OPA1PDN|OPA1 开启使能0:关闭1:开启|
|\[2\]|OPA0PDN|OPA0 开启使能0:关闭1:开启|
|\[1\]|Reserved|保留位，需全部为’0’|
|\[0\]|ADCPDN|ADC 开启使能0:关闭1:开启|

如果SYS_CLK_CFG选择PLL时钟，则PLLPDN是被硬件控制的，软件配置PLLPDN关闭PLL无效。关闭PLL需要PLLPDN=0，且SYS_CLK_CFG不选择PLL作为芯片主时钟，这两个条件都须满足。

同理，如果SYS_CLK_CFG选择了HRC时钟，则RCHPD是被硬件控制的，软件配置RCHPD关闭RCH无效。关闭PLL需要RCHPD=1，且芯片进入休眠。

如果芯片主时钟为PLL时钟，且HRC为PLL参考时钟，则RCH也是被硬件控制的。

由于RCH和PLL依赖BGP（bandgap），所以BGPPD也是硬件控制的，在芯片使用了RCH或PLL时，软件配置BGPPD关闭BGP无效。关闭BGP需要先顺序关闭PLL和RCH，且芯片进入休眠。

### SYS_AFE_REG6 模拟配置寄存器6

地址：0x4000_0038

复位值：0x0

表5-13模拟配置寄存器6 SYS_AFE_REG6

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|PLLSR_SEL|Reserved|||||PVDSEL||Reserved|||||Reserved|VSR_PDT|PD_PDT|
|RW|RW|||||RW||RW|||||RW|RW|RW|
|0|0|||||0||0|||||0|0|0|

||||
|---|---|---|
|位置|位名称|说明|
|\[31:16\]||未使用|
|\[15\]|PLLSR_SEL|PLL时钟源选择0: 使用RCH作为输入时钟源; 1: 使用XTAL OSC作为输入时钟源|
|\[14\]|Reserved|保留位，需全部为’0’|
|\[13\]|Reserved|保留位，需全部为’0’|
|\[12\]|Reserved|保留位，需全部为’0’|
|\[11\]|Reserved|保留位，需全部为’0’|
|\[10\]|Reserved|保留位，需全部为’0’|
|\[9:8\]|PVDSEL|电源掉电监测阈值选择当VSR_PDT=0时，00: 4.5V01: 4.2V10: 3.9V11: 3.6V当VSR_PDT=1时，4个档位与DAC设定值有关，分别为00: 4.5/1.35\*DAC V01: 4.2/1.35\*DAC V10: 3.9/1.35\*DAC V11: 3.6/1.35\*DAC V|
|\[7\]|Reserved|保留位，需全部为’0’|
|\[6:5\]|Reserved|保留位，需全部为’0’|
|\[4:3\]|Reserved|保留位，需全部为’0’|
|\[2\]|Reserved|保留位，需全部为’0’|
|\[1\]|VSR_PDT|掉电检测基准源选择，其中低功耗基准源为1.35V左右，DAC输出则可以通过软件配置；低电压检测的阈值有4档可选，通过PVDSEL选择0: 选择低功耗基准源; 1: 选择DAC输出作为掉电检测基准源|
|\[0\]|PD_PDT|关闭掉电检测电路0: 开启1: 关闭|

### SYS_AFE_REG7 模拟配置寄存器7

地址：0x4000_003C

复位值：0x0

表5-14模拟配置寄存器7 SYS_AFE_REG7

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|Reserved||||||||||ADCLKSEL||Reserved||||
|RW||||||||||RW||RW||||
|0||||||||||0||0||||

||||
|---|---|---|
|位置|位名称|说明|
|\[31:16\]||未使用|
|\[15\]|Reserved|保留位，需全部为’0’|
|\[14\]|Reserved|保留位，需全部为’0’|
|\[13:8\]|Reserved|保留位，需全部为’0’|
|\[7:6\]|Reserved|保留位，需全部为’0’|
|\[5:4\]|ADCLKSEL|ADC时钟频率选择00: 48MHz01: 禁止10: 12MHz11: 24MHz|
|\[3:0\]|Reserved|保留位，需全部为’0’|

### SYS_AFE_DAC DAC数字量寄存器

地址：0x4000_007C

复位值：0x0

表5-15 DAC数字量寄存器SYS_AFE_DAC

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|||||DAC_IN||||||||||||
|||||RW||||||||||||
|||||0||||||||||||

||||
|---|---|---|
|位置|位名称|说明|
|\[31:12\]||未使用|
|\[11:0\]|DAC_IN|DAC待转换的数字量输入|

### SYS_CLK_CFG 时钟控制寄存器

地址：0x4000_0080

复位值：0x0

表5-16时钟控制寄存器SYS_CLK_CFG

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
||||||||CLK_SEL|CLK_DIV||||||||
||||||||RW|RW||||||||
||||||||0|0||||||||

||||
|---|---|---|
|位置|位名称|说明|
|\[31:9\]||未使用|
|\[8\]|CLK_SEL|CLK_HS/PLL选择，0: CLK_HS, 1:PLL。默认选择CLK_HS，CLK_HS根据是否使用外部晶体时钟，可以是HSI或HSE。PLL在上电后默认关闭，需要软件来开启|
|\[7:0\]|CLK_DIV|PLL输出分频控制，选择8个时钟周期中，哪些周期输出时钟，例如8’b00000001，表示1/8分频，8’b00010001表示1/4分频，8’b00100101表示1/3分频，但不均匀。|

【图片已删除】为控制知识库体积，本文档不携带图片，相关图示请查阅凌鸥创芯官网发布的正式手册。

图5-3
SYS_CLK_CFG不同配置时的系统主时钟分频波形

当使用4MHz
HSI时钟作为系统主时钟时，SYS_CLK_CFG\[7:0\]的分频系数无效，最终输出的系统时钟频率即为4MHz。

### SYS_RST_CFG 复位控制寄存器

地址：0x4000_0084

复位值：0x0

表5-17复位控制寄存器SYS_RST_CFG

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|||||||||||RST_IO|WK_INTV||||WDT_EN|
|||||||||||RW|RW||||RW|
|||||||||||0|0||||0|

|||||
|---|---|---|---|
|位置|位名称|说明||
|\[31:6\]||未使用||
|\[5\]|RST_IO|RSTn/P0\[2\]复用选择，0: RSTn, 1:P0\[2\]当用作外部复位引脚时，片内上拉默认开启，且不可控。当用作GPIO P0\[2\]时，片内上拉默认关闭，且不可控。||
|\[4:2\]|WK_INTV|休眠唤醒间隔设置000：0.25S 001：0.5S010：1S 011：2S|100：4S 101：8S110：16S 111：32S|
|\[1\]||未使用||
|\[0\]|WDT_EN|看门狗使能，高有效。||

### SYS_RST_SRC 复位源记录寄存器

地址：0x4000_0088

复位值：0x0

表5-18复位源记录寄存器SYS_RST_SRC

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|||||||||||||WDT_RST_RCD|KEY_RST_RCD|HPOR_RST_RCD|LPOR_RST_RCD|
|||||||||||||RO|RO|RO|RO|
|||||||||||||0|0|0|0|

||||
|---|---|---|
|位置|位名称|说明|
|\[31:4\]||未使用|
|\[3\]|WDT_RST_RCD|看门狗复位发生标志，高有效|
|\[2\]|KEY_RST_RCD|按键复位发生标志，高有效|
|\[1\]|HPOR_RST_RCD|HPOR复位发生标志，高有效|
|\[0\]|LPOR_RST_RCD|LPOR复位发生标志，高有效|

### SYS_CLR_RST 复位源记录清除寄存器

地址：0x4000_008C

复位值：0x0

表5-19复位源记录清除寄存器SYS_CLR_RST

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|PSW||||||||||||||||
|WO||||||||||||||||
|0||||||||||||||||

||||
|---|---|---|
|位置|位名称|说明|
|\[31:16\]||未使用|
|\[15:0\]|PSW|写入0xCA40，清除复位标志记录请注意由于复位记录工作于低速时钟域，清除执行完成需要一定时间，不应清除后立即读记录状态|

### SYS_CLK_DIV0 外设时钟分频寄存器0

地址：0x4000_0090

复位值：0x0

表5-20外设时钟分频寄存器0 SYS_CLK_DIV0

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|DIV0||||||||||||||||
|RW||||||||||||||||
|0||||||||||||||||

||||
|---|---|---|
|位置|位名称|说明|
|\[31:16\]||未使用|
|\[15:0\]|DIV0|I2C工作时钟=MCLK/(CLK_DIV0+1)。其中MCLK由SYS_CLK_CFG分频系数决定|

### SYS_CLK_DIV2 外设时钟分频寄存器2

地址：0x4000_0098

复位值：0x0

表5-21外设时钟分频寄存器2 SYS_CLK_DIV2

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|DIV2||||||||||||||||
|RW||||||||||||||||
|0||||||||||||||||

||||
|---|---|---|
|位置|位名称|说明|
|\[31:16\]||未使用|
|\[15:0\]|DIV2|UART工作时钟=MCLK/(CLK_DIV2+1)UART0/UART1共享此分频配置，波特率根据UART波特率寄存器进一步分频，其中MCLK由SYS_CLK_CFG分频系数决定|

### SYS_CLK_FEN 外设时钟门控寄存器

地址：0x4000_009C

复位值：0x0

表5-22外设时钟门控寄存器SYS_CLK_FEN

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
||||||||SPI_CLK_EN|CAN_CLK_EN|DSP_CLK_EN|UART1_CLK_EN|UART0_CLK_EN|MCPWM_CLK_EN|UTIMER_CLK_EN|HALL_CLK_EN|I2C_CLK_EN|
||||||||RW|RW|RW|RW|RW|RW|RW|RW|RW|
||||||||0|0|0|0|0|0|0|0|0|

||||
|---|---|---|
|位置|位名称|说明|
|\[31:9\]||未使用|
|\[8\]|SPI_CKL_EN|SPI时钟门控，1:使能时钟；0:禁用时钟|
|\[7\]|CAN_CLK_EN|CAN时钟门控，1:使能时钟；0:禁用时钟|
|\[6\]|DSP_CLK_EN|DSP时钟门控，1:使能时钟；0:禁用时钟|
|\[5\]|UART1_CLK_EN|UART1时钟门控，1:使能时钟；0:禁用时钟|
|\[4\]|UART0_CLK_EN|UART0时钟门控，1:使能时钟；0:禁用时钟|
|\[3\]|MCPWM_CLK_EN|MCPWM时钟门控，1:使能时钟；0:禁用时钟|
|\[2\]|UTIMER_CLK_EN|UTIMER时钟门控，1:使能时钟；0:禁用时钟|
|\[1\]|HALL_CLK_EN|HALL时钟门控，1:使能时钟；0:禁用时钟|
|\[0\]|I2C_CLK_EN|I2C时钟门控，1:使能时钟；0:禁用时钟|

### SYS_CLK_SLP 休眠寄存器

地址：0x4000_00A0

复位值：0x0

表5-23休眠寄存器 SYS_CLK_SLP

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|PSW||||||||||||||||
|WO||||||||||||||||
|0||||||||||||||||

||||
|---|---|---|
|位置|位名称|说明|
|\[31:16\]||未使用|
|\[15:0\]|PSW|写入密码0xDEAD，系统关闭高速时钟，进入休眠状态|

### SYS_TRIM 校正模式寄存器

地址：0x4000_00A8

复位值：0x0

表5-24校正模式寄存器 SYS_TRIM

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
||||||||||||||||TRIM|
||||||||||||||||RO|
||||||||||||||||0|

||||
|---|---|---|
|位置|位名称|说明|
|\[31:1\]||未使用|
|\[0\]|TRIM|芯片复位后，进入TRIM模式TRIM结束后，通过软复位退出TRIM模式|

### SYS_SFT_RST 软复位寄存器

地址：0x4000_00AC

复位值：0x0

表5-25软复位寄存器 SYS_SFT_RST

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
||||||||SPI_SFT_RST|CAN_SFT_RST|DSP_SFT_RST|UART1_SFT_RST|UART0_SFT_RST|MCPWM_SFT_RST|UIMTER_SFT_RST|HALL_SFT_RST|I2C_SFT_RST|
||||||||WO|WO|WO|WO|WO|WO|WO|WO|WO|
||||||||0|0|0|0|0|0|0|0|0|

||||
|---|---|---|
|位置|位名称|说明|
|\[31:9\]||未使用|
|\[8\]|SPI_SFT_RST|SPI软复位，写1复位，再写0释放|
|\[7\]|CAN_SFT_RST|CAN软复位，写1复位，再写0释放|
|\[6\]|DSP_SFT_RST|DSP软复位，写1复位，再写0释放|
|\[5\]|UART1_SFT_RST|UART1软复位，写1复位，再写0释放|
|\[4\]|UART0_SFT_RST|UART0软复位，写1复位，再写0释放|
|\[3\]|MCPWM_SFT_RST|MCPWM软复位，写1复位，再写0释放|
|\[2\]|UTIMER_SFT_RST|UTIMER软复位，写1复位，再写0释放|
|\[1\]|HALL_SFT_RST|HALL软复位，写1复位，再写0释放|
|\[0\]|I2C_SFT_RST|I2C软复位，写1复位，再写0释放|

注意，模块软复位在SYS_SFT_RST对应位写入1后会保持在复位状态，需要再次写入0才能解除复位状态。

### SYS_WR_PROTECT 写保护寄存器

地址：0x4000_00B0

复位值：0x0

表5-26写保护寄存器 SYS_WR_PROTECT

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|PSW||||||||||||||||
|WO||||||||||||||||
|0||||||||||||||||

||||
|---|---|---|
|位置|位名称|说明|
|\[31:16\]||未使用|
|\[15:0\]|PSW|除SYS_AFE_REG3、SYS_AFE_DAC、SYS_AFE_DAC_AMC、SYS_AFE_DAC_DC外，其他系统寄存器受写保护，写入前需先写入密码解除写保护写入0x7A83，使能系统寄存器写操作写入0xCAFE，使能看门狗WDT_CLR寄存器写操作写入其它值，禁止寄存器写操作|

### SYS_AFE_DAC_AMC DAC增益校正寄存器

地址：0x4000_00B4

复位值：0x0

表5-27 DAC增益校正寄存器 SYS_AFE_DAC_AMC

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|||||||DAC_AMC||||||||||
|||||||RW||||||||||
|||||||0||||||||||

||||
|---|---|---|
|位置|位名称|说明|
|\[31:10\]||未使用|
|\[9:0\]|DAC_AMC|DAC增益校正值，10bit无符号定点数，B\[9\]为整数部分，B\[8:0\]为小数部分|

### SYS_AFE_DAC_DC DAC直流偏置寄存器

地址：0x4000_00B8

复位值：0x0

表5-28 DAC直流偏置寄存器SYS_AFE_DAC_DC

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|||||||||DAC_DC||||||||
|||||||||RW||||||||
|||||||||0||||||||

||||
|---|---|---|
|位置|位名称|说明|
|\[31:8\]||未使用|
|\[7:0\]|DAC_DC|DAC直流偏置，8bit有符号数，B\[7\]为符号位|

DAC增益校正，记模拟输出的12bitDAC数值为DAC_raw，经过校正后的12bit
DAC数值为DAC_cali

DAC_cali = DAC_raw \* DAC_AMC - DAC_DC;

其中DAC_AMC为DAC增益校正系数，为10bit定点无符号数，B\[9\]为整数，B\[8:0\]为小数，大小为1左右，例如
DAC_AMC = 10’b10_0001_0000 = 1+1/32, 或

DAC_AMC = 10’b01_1110_1100 = 1-5/128

DAC_DC 位DAC直流偏置，为8bit有符号整数。

增益校正计算结果进行截断保留，最终DAC_cali仍为12bit整数。

且增益校正加直流偏置校正后的数值会进行饱和处理，最大为0xfff，最小为0x000。

需要注意的是，DAC有三个输出档位，系统上电后，加载默认档位的DAC校准值，若切换到其它档位，请使用原厂提供的库函数。

