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

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

# 非易失存储体

## 概述

LKS32MC45x系列芯片，非易失性存储体包含两个部分:On-Chip
FLASH存储体及其控制器和Ext-Chip FLASH控制器。

On-Chip
FLASH存储体包含两个区域：NVR和MAIN。NVR大小为2KB；MAIN大小根据具体型号有不同划分。

- On-Chip FLASH存储体主存储区域（MAIN），包括应用程序和用户数据区
- On-Chip FLASH存储体信息存储区域（NVR），预留给用户使用数据区

LKS32MC45x系列芯片，On-Chip FLASH存储体有一种组合。

Ext-Chip
FLASH控制器最大支持容量为16MB的外挂SPI接口FLASH。外挂SPI接口FLASH，需要客户自行采购，LKS32MC45x的Ext-FLASH控制器支持市面上主流的外挂SPI
接口FLASH。

- Ext-Chip FLASH控制器，仅支持SPI
  接口FLASH，支持单线/双线/四线三种数据传输模式
- Ext-Chip
  FLASH控制器，支持MCU直接运行外挂SPI接口FLASH中的应用程序，同时，也支持将外挂SPI接口FLASH中的应用程序搬移到片内执行

为提升LKS32MC45x系列芯片的程序执行效率，减少非易失性存储体运行速度低于系统频率所带来的性能损失，额外设计了一个Cache加速模块。On-Chip
Flash的内容能预取存入Cache，加速其运行效率；但Ext-Chip
FLASH的内容不进Cache，无法获得加速。

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

图7-1
On-Chip FLASH存储体空间划分框图

## 功能特点

On-Chip
FLASH控制器模块，主要实现对On-Chip FLASH存储体的相关操作。包括：

- On-Chip
  FLASH读取数据的操作。包括对NVR区域的读取和对MAIN区域的读取。锁定后的ROM区域，不支持读取。
- On-Chip
  FLASH编程数据的操作。包括对NVR区域的编程和对MAIN区域的编程。ROM区域不支持二次编程。
- On-Chip
  FLASH擦除操作。支持Sector擦除。NVR区域和MAIN区域支持Sector擦除。ROM部分不支持擦除。
- On-Chip
  FLASH可执行操作。即应用程序可直接运行在MAIN区域和ROM区域，NVR区域不可执行，只能存储数据。
- On-Chip FLASH深度休眠的操作，以降低芯片的休眠功耗。
- On-Chip FLASH存储体内容的保护操作。
- On-Chip FLASH的Cache加速模块，以提升芯片整体运行效率。
- On-Chip FLASH控制寄存器的访问。

Ext-Chip FLASH控制器模块，主要实现对Ext-Chip
FLASH存储体的相关操作。包括：

- Ext -Chip FLASH读取数据的操作。
- Ext -Chip FLASH编程数据的操作。
- Ext -Chip FLASH擦除操作。
- Ext -Chip FLASH控制寄存器的访问。

### On-Chip FLASH功能描述

控制模块，实现了对On-Chip
FLASH存储体的复位/读出/编程/擦除/休眠等操作。如下为控制状态转换图：

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

图7-2
On-Chip FLASH控制状态转换图

#### 复位操作

系统完成复位后，On-Chip FLASH需要一段时间恢复。其目的是保证On-Chip
FLASH存储体内部的电路稳定。内部稳定后，系统才可对On-Chip
FLASH执行操作。此操作由硬件自动实现，无需软件干预。

#### 休眠操作

On-Chip FLASH的休眠操作分成两个部分：Standby和Deep
Sleep。当系统不执行对On-Chip FLASH的操作时，On-Chip
FLASH可自动进入StandBy状态（若开启Cache加速模块，此功能失效）。当系统执行Deep
Sleep操作时，将触发On-Chip FLASH也进入Deep
Sleep，实现降低功耗的目的。On-Chip FLASH进入Deep
Sleep的操作，硬件自动完成，无需软件介入。

当外界唤醒系统，同时将唤醒On-Chip FLASH。经过一段时间恢复后，On-Chip
FLASH可执行正常操作。此唤醒恢复操作，硬件自动完成，无需软件介入。

#### On-Chip FLASH 读取操作

读操作为On-Chip FLASH的基本操作。系统可通过两条路径访问FLASH内部的数据。

- MCU通过AHB总线的I总线和D总线，直接（Direct）对On-Chip
  FLASH执行取指、取数操作。总线宽度为32Bit，且只能访问MAIN区域和ROM区域（只运行不能被读取）的数据。为了提升MCU的读取效率，硬件提供了Cache加速的功能。
- MCU通过AHB总线中的S总线，访问控制器的寄存器，间接（Indirect）实现读取On-Chip
  FLASH内部数据的操作。可以访问MAIN区域和NVR区域的数据，ROM区域为有条件访问；若执行连续读取操作，硬件可自动完成地址累加，无需每次都更新地址寄存器的值。此时，存在I/D总线和S总线，同时访问FLASH的情况，On-Chip
  FLASH内部有仲裁机制，优先I/D总线访问，S总线需等待I/D总线空闲才能完成对应操作；一旦S总线获得访问On-Chip
  FLASH的权力，I/D总线无法抢夺直至S总线访问完毕。
- 寄存器FSMC_REDY.READY位，指示当前I/D总线是否完成了当前读取访问操作，1表示完成，0表示未完成。
- 寄存器FSMC_REDY.IREADY位，指示当前S总线是否完成了当前读取访问操作，1表示完成，0表示未完成。

FLASH_CFG.REGION位指示当前访问的是哪个区域。具体表格如下：

表7-1
On-Chip FLASH访问空间分配表

|||
|---|---|
|FSMC_ICFG.REGION|访问区域|
|0|MAIN区域和ROM区域\*|
|1|NVR区域|

\*注意，ROM区域默认支持一次编程，编程完毕后，此区域被限定XN（eXecute
regioN），锁定后不能被读取，也不允许二次编程和擦除。

访问本控制器的寄存器，实现间接读取On-Chip
FLASH内部数据的操作的执行流程如下：

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

图7-3
On-Chip FLASH间接读取操作流程图

#### On-Chip FLASH 编程操作

执行对On-Chip
FLASH存储体的编程操作。一般而言，我们先执行擦除操作（保证对应编程背景为默认值，杜绝同一地址连续两次编程），再执行数据编程操作。同时，只能通过访问On-Chip
FLASH控制器的寄存器，实现编程操作。LKS32MC45x芯片的编程宽度为128-Bit，即一次写入16个Byte。

类似读取操作。此时，存在I/D总线和S总线，同时访问FLASH的情况。I/D总线读取On-Chip
FLASH数据，S总线执行编程操作。On-Chip
FLASH内部有仲裁机制，优先I/D总线访问，S总线需等待I/D总线空闲才能完成对应操作；一旦S总线获得访问On-Chip
FLASH的权力，I/D总线无法抢夺直至S总线访问完毕。

不同型号产品，编程地址空间不同，下表为不同组合下地址分配情况：

表7-2
On-Chip FLASH编程空间地址分配表

||||
|---|---|---|
|组合|MAIN区域|ROM区域|
|组合1|0x0000 0000 - 0x0003 FFFF|0x0000 0000 - 0x0000 0000|

编程操作，具体流程为：

- 系统寄存器SYS_FLSP，写入密钥，解除编程保护
- On-Chip FLASH控制寄存器FSMC_ICFG，开启编程使能
- On-Chip FLASH地址寄存器FSMC_ADDR，写入编程地址
- On-Chip FLASH编程数据寄存器FSMC_WDAT0至FSMC_WDAT3，写入编程数据
- On-Chip FLASH编程触发寄存器FSMC_WDAT，写入触发值，触发编程
- 寄存器FSMC_REDY.IREADY位，指示当前S总线是否完成了当前编程访问操作，1表示完成，0表示未完成。

访问本控制器的寄存器，实现On-Chip FLASH编程操作的执行流程如下：

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

图7-4
On-Chip FLASH模块编程操作流程图

系统工作频率的判断，需要参考SYS_CLK_CFG的配置。On-Chip
FLASH编程/擦除操作的绝对时间是固定的，On-Chip
FLASH控制器需要基于绝对时间，保存对应频率下的计数值。FSMC_IDIV.BCNT0和FSMC_IDIV.BCNT1默认值是192MHz时钟频率下的计数值；当芯片工作在其他频率下时，需要重新配置FSMC_IDIV.BCNT0和FSMC_IDIV.BCNT1的值，以实现96MHz/48MHz和24MHz的计数值（其它频率暂不支持）。最终保证计数值×时钟频率等于恒定的时间。不同频率下对应的FSMC_IDIV.BCNT0和FSMC_IDIV.BCNT1的值，请参考本章节寄存器描述。切记，FSMC_IDIV.BCNT0和FSMC_IDIV.BCNT1仅能配置寄存器说明中提供的几组值，不能被写入其它值，否则可能导致On-Chip
FLASH编程/擦除失败。建议对FSMC_IDIV的操作，执行先读回，然后按照或/与的方法操作。

在执行On-Chip
FLASH的编程/擦除操作时，FLASH处于忙状态，若Cache不命中，无后续指令/数据取回MCU，MCU将暂停工作，等待On-Chip
FLASH的编程/擦除操作完毕，才能继续执行程序。此时，为保证数据一致性，一旦FLASH执行了编程和擦除操作，Cache所存数据均无效，需重新取指令和数据。

图7-4仅展示了一次编程的流程。若执行连续编程时，可以在写入FSMC_ADDR寄存器前，配置FSMC_ICFG.ADR_INC，开启地址自动递增模式。当前的编程操作完毕后，
FSMC_ADDR的值，会硬件自动增加0x10。连续读操作类似，但递增的值为0x04。连续编程的流程如下：

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

图7-5
On-Chip FLASH模块连续编程操作流程图

#### On-Chip FLASH 擦除操作

擦除操作为On-Chip FLASH的基本操作。系统只能通过访问On-Chip
FLASH控制器的寄存器实现。具体流程为：

- 系统寄存器SYS_FLSE，写入密钥，解除擦除保护
- On-Chip FLASH擦除操作使能
- On-Chip FLASH地址寄存器FSMC_ADDR，写入擦除地址
- On-Chip FLASH擦除寄存器FSMC_ERAS，触发擦除操作
- 寄存器FSMC_REDY.IREADY位，指示当前S总线是否完成了当前擦除访问操作，1表示完成，0表示未完成。

类似读取操作。此时，存在I/D总线和S总线，同时访问FLASH的情况。I/D总线读取On-Chip
FLASH数据，S总线执行擦除操作。On-Chip
FLASH内部有仲裁机制，优先I/D总线访问，S总线需等待I/D总线空闲才能完成对应操作；一旦S总线获得访问On-Chip
FLASH的权力，I/D总线无法抢夺直至S总线访问完毕。

执行对On-Chip FLASH存储体的擦除操作。一个Sector的大小为1024字节。

下表为MAIN区域（最大情况）Sector地址分配空间。

表7-3
On-Chip FLASH MAIN区域Sector地址分配表

||||
|---|---|---|
|块名|地址|尺寸(Byte)|
|Sector 0|0x0000 0000 - 0x0000 03FF|1024|
|Sector 1|0x0000 0400 - 0x0000 07FF|1024|
|Sector 2|0x0000 0800 - 0x0000 0BFF|1024|
|…|…|…|
|Sector255|0x0003 FC00 - 0x0003 FFFF|1024|

ROM区域不支持擦除；

NVR区域实现Sector擦除；

表7-4
On-Chip FLASH NVR区域Sector地址分配表

||||
|---|---|---|
|块名|地址|尺寸(Byte)|
|Sector 0|0x0000 0000 - 0x0000 03FF|1024|
|Sector 1|0x0000 0400 - 0x0000 07FF|1024|

MAIN区域可以实现Sector擦除。

FLASH擦除操作流程如下所示。

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

图7-6
On-Chip FLASH模块擦除操作流程图

Secotor擦除，需要通过FSMC_ADDR确定哪个Secotor被擦除。FSMC_ERAS写入0x7654DCBA触发擦除操作。

On-Chip
FLASH存储体，默认擦写次数为100K次。本模块支持快速擦除模块，理论上可以成倍增加擦除次数（最少时间实现正确擦除）。快速擦除模式，支持Sector擦除。相比正常擦除操作流程，快速擦除流程如下：

- 系统寄存器SYS_FLSE，写入密钥，解除擦除保护
- On-Chip
  FLASH擦除操作，配置为块擦除且使能快速擦除，快速擦除计数器配置为0
- On-Chip FLASH擦除操作使能
- On-Chip FLASH地址寄存器FSMC_ADDR，写入擦除地址
- On-Chip FLASH擦除寄存器FSMC_ERAS，触发擦除操作
- 寄存器FSMC_REDY.IREADY位，指示当前S总线是否完成了当前擦除访问操作，1表示完成，0表示未完成。
- On-Chip
  FLASH，用户执行读取当前擦除块地址对应的所有数据，判断是否都为1。为全1，说明快速擦除成功；不为全1，说明快速擦除失败，快速擦除计数器软件加1，再次触发擦除操作。如此反复直至擦除成功。

注，快速擦除计数器最大值为3，执行完配置为3的擦除后，当前Sector地址对应的数据仍然非全1，说明On-Chip
FLASH已经到了使用极限。

#### On-Chip FLASH Cache 加速操作

因On-Chip FLASH存储体的速度限制，无法达到系统最快速度。当对On-Chip
FLASH进行读取操作时，需要大于1个时钟周期才能完成。为了加快数据的读出，On-Chip
FLASH控制器增加了Cache功能。Cache功能的开启和关闭，只需要设置SYS_CACHE_CFG.EN即可。

注，若执行了On-Chip
FLASH存储体擦除/编程操作，Cache模块并不会同步刷新同步，但Cache会将存入的数据，硬件会自动全配置为无效，保证不发生因两者存在潜在的数据失配导致的运行错误。

#### On-Chip FLASH 保护

On-Chip FLASH存储体的保护策略分成两个部分：On-Chip
FLASH存储体（包括MAIN、NVR和ROM）整体保护策略和ROM区域独有保护策略。On-Chip
FLASH存储体整体保护策略的开启和关闭，通过其保护字实现。保护字的状态为开启，On-Chip
FLASH存储体整体保护开启；保护字的状态为关闭，On-Chip
FLASH存储体整体保护关闭。ROM区域的独有保护策略，主要针对ROM区域的读保护，On-Chip
FLASH存储体整体保护的开启和关闭，不影响ROM区域的独有保护策略的开启和关闭。保护策略的具体逻辑，如下：

- ROM区域未执行编程操作，保护字未开启保护，MCU和外界均可访问并读出ROM区域
- ROM区域已执行编程操作，保护字未开启保护，MCU和外界均可访问并读出ROM区域
- ROM区域已执行编程操作，保护字开启保护，外界不可以访问并读出，MCU不可以读出但可以执行ROM区域
- On-Chip
  FLASH存储体整体保护，保护字未开启保护，MCU和外界均可访问并读出到On-Chip
  FLASH存储体非ROM区域的内容；ROM区域内容是否可被访问并被读出，取决于ROM区域的保护字的状态，但MCU可运行ROM区域应用程序
- On-Chip
  FLASH存储体整体保护，保护字开启保护，外界无法访问并读出到On-Chip
  FLASH存储体的内容（包括MAIN/ROM/NVR）；MCU可访问并读出到On-Chip
  FLASH存储体非ROM区域的内容；ROM区域内容是否可被访问并被读出，取决于ROM区域的保护字的状态，但MCU可运行ROM区域应用程序

On-Chip FLASH存储体根据MAIN区域和ROM区域的尺寸，On-Chip
FLASH存储体（包括MAIN、NVR和ROM）整体保护策略和ROM区域独有保护策略，各自对应的保护字所分配的地址略有不同。下表为保护字地址分配表。

表7-5
On-Chip FLASH保护字地址分配表

||||||||
|---|---|---|---|---|---|---|
|组合|整体保护策略_MAIN区域|||ROM独有保护策略_ROM区域|||
||起始|结束|保护字地址|起始|结束|保护字地址|
|组合1|0x0000 0000|0x0003 FFFF|0x0003 FFF0|0x0000 0000|0x0000 0000|无|
|组合2|0x0000 0000|0x0002 FFFF|0x0002 FFF0|0x0003 0000|0x0003 FFFF|0x0003 FFF0|
|组合3|0x0000 0000|0x0002 FFFF|0x0002 FFF0|0x0000 0000|0x0000 0000|无|
|组合4|0x0000 0000|0x0001 FFFF|0x0001 FFF0|0x0002 0000|0x0003 FFFF|0x0003 FFF0|
|组合5|0x0000 0000|0x0001 FFFF|0x0001 FFF0|0x0000 0000|0x0000 0000|无|
|组合6|0x0000 0000|0x0000 FFFF|0x0000 FFF0|0x0003 0000|0x0003 FFFF|0x0003 FFF0|
|组合7|0x0000 0000|0x0000 FFFF|0x0000 FFF0|0x0000 0000|0x0000 0000|无|

若On-Chip
FLASH存储体处于整体保护状态，用户可执行去保护操作，解除对On-Chip
FLASH存储体内数据的保护（ROM区域需考虑ROM区域的保护状态）。相反，若On-Chip
FLASH存储体处于去保护状态，用户可执行保护操作，对On-Chip
FLASH存储体的数据进行整体保护。默认情况下，On-Chip
FLASH存储体的数据处于整体保护状态。芯片上电复位后，硬件自动执行一次保护状态更新操作，是保护的话继续处于保护状态，否则变成去保护状态。

从上表可以看到，我们一般将当前组合下最后4个WORD，分配为保护字。保护字的内容为全1时，表明对应策略处于去保护状态；保护字的内容被写为非全1时，表明对应策略处于保护状态。因此，若需要开启保护，执行对应保护字的编程，写入非全1的值，读取FSMC_PROT寄存器，即触发一次保护状态更新的操作，完成保护（读取FSMC_PROT返回值可知晓当前保护状态）。因两套保护策略，有两个保护字，我们需明确当前是哪个保护状态的更新。

表7-6
On-Chip FLASH保护字地址分配表

|||
|---|---|
|FSMC_ICFG.SEL_PROT|区域|
|0|整体保护策略区域|
|1|ROM独有保护策略区域|

当FSMC_ICFG.PROT配置为0，读取FSMC_PROT寄存器，将完成On-Chip
FLASH存储体处于整体保护状态的更新操作；当FSMC_ICFG.PROT配置为1，读取FSMC_PROT寄存器，将完成ROM区域独有保护状态的更新操作。

### Ext-Chip FLASH 控制器功能描述

LKS32MC45x硬件实现Ext-Chip
FLASH控制器，并不包含外挂FLASH存储体。外挂FLASH的地址映射空间起始于0x0100_0000，结束于0x01FF_FFFF，大小为16MB。

Ext-Chip FLASH控制器特性：

- 地址线宽度为24位，支持外挂FLASH容量范围：小于等于16MB，大于64KB。
- 仅SPI模式3的传输方式，即默认SCLK为高电平，下降沿发送数据，上升沿采样数据。
- 支持单线SPI传输，双线SPI传输和四线传输。
- 可通过MCU直接访问，也可以通过寄存器间接访问。

#### Ext-Chip FLASH 访问方式

Ext-Chip
FLASH有两种访问方式：直接访问和间接访问。所谓直接访问，就是MCU直接通过地址寻址到对应Ext-Chip
FLASH。间接访问，就是通过Ext-Chip
FLASH控制器的寄存器访问。一般，读取/运行Ext-Chip
FLASH的内容，可以使用直接访问方式；读取/编程Ext-Chip
FLASH使用间接访问方式。

#### Ext-Chip FLASH 传输并行数

Ext-Chip
FLASH控制器支持三种访问并行数：单线、双线和四线。不同并行数量的切换，需要通过Ext-Chip
FLASH控制器的寄存器发送配置命令，才能顺利切换。Ext-Chip
FLASH常见PIN复用方案如下：

表7-7
Ext-Chip FLASH PIN描述及同LKS32MC45x互联关系表

|||||
|---|---|---|---|
|Symbol|Extension|Remarks|LKS45x|
|CS#||Chip select|EFLS_CSN|
|SO|SIO1|Serial data output for 1 x I/OSerial data input and output for 4 x I/O read mode|EFLS_DAT\[1\]|
|WP#|SIO2|Write protection active lowSerial data input and output for 4 x I/O read mode|EFLS_DAT\[2\]|
|SI|SIO0|Serial data input for 1x I/OSerial data input and output for 4 x I/O read mode|EFLS_DAT\[0\]|
|SCLK||Serial interface clock input|EFLS_CLK|
|HOLD#/RESET#|SIO3|Hardware Reset Pin Active low or to pause the devicewithout deselecting the deviceSerial data input and output for 4 x I/O read mode|EFLS_DAT\[3\]|

默认情况下，使用单线模式，一根信号线发送，一根信号线接收。Ext-Chip
FLASH的WP#带电阻下拉，防止误编程，HOLD#/RESET#带电阻上拉。LKS32MC45x对应的信号，默认为输入，不影响复用功能。切换到其它两种模式，需要Ext-Chip
FLASH控制器先发送命令，Ext-Chip FLASH接收命令后，复用开启。Ext-Chip
FLASH实现模式切换，同时Ext-Chip FLASH控制器同步开启多线传输。

#### Ext-Chip FLASH 命令格式

一般情况下，Ext-Chip
FLASH命令由如下几个部分组成，但根据具体命令不同，某些部分无需发送，具体需参见Ext-Chip
FLASH文档。Ext-Chip
FLASH控制器在发送某命令前，每个部分均需要配置，若某部分无需发送，对应部分的数据长度可配置为0。具体命令组成如下：

- 指令部分（Command）
- 地址部分（Address）
- 模式部分（Mode）
- 冗余部分（Dummy）
- 数据部分（Data）

以P25Q32H为例子，提供如下几组配置，供参考。

##### Ext-Chip FLASH 间接方式四线读取

间接访问，主要配置FSMC_UCFG等寄存器。访问波形如下：

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

图7-7
Ext-Chip FLASH间接方式四线读取数据波形

所有部分均包含，除开命令外，其它部分均为四线模式。则FSMC_UCFG的配置为：

FSMC_UCFG = 0x3FC0_4123;

此处，FSMC_UCFG.DAT_LEN配置为4，表示读取四个字节的数据，可以配置为其它数值。

##### Ext-Chip FLASH 直接方式四线读取

直接访问，主要配置FSMC_FCFG等寄存器。访问波形如下：

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

图7-8
Ext-Chip FLASH直接方式四线读取数据波形

所有部分均包含，除开命令外，其它部分均为四线模式。则FSMC_FCFG的配置为：

FSMC_FCFG = 0x03FC_0421;

此处，FSMC_FCFG.DAT_LEN配置为4，表示读取四个字节的数据，可以配置为其它数值。不过，因为MCU一次只需要32-bit数据，所以，直接访问的数据长度设置为4，比较合理。

#### Ext-Chip FLASH 存储顺序

Ext-Chip
FLASH存储的最小单位是字节。字节内按照高低顺序存放。当发生读取操作时，按照地址递增的方式，逐一发出字节；接收方，若是间接方式访问，根据FSMC_UCFG.ORDER的配置情况，决定读回的顺序。

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

图7-9
Ext-Chip FLASH间接方式访问读回的数据顺序

若采用直接方式访问，情况类似，此时参考FSMC_FCFG.ORDER的值。

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

图7-10
Ext-Chip FLASH直接方式访问读回的数据顺序

#### DMA 传输

Ext-Chip FLASH控制器支持DMA传输。间接方式和直接方式，DMA传输方式不相同。

在间接方式下，配置FSMC_UTRG.DMA_EN为1，即可开启DMA功能。传输数据的长度，为4的整数倍。即，每次完成4个字节的传输后，产生一次DMA传输请求。举例：

DMA_CTMS4 = 0x00010004;// 1 round 4-times

DMA_DADR4 = 0x20001000;// ram space

DMA_SADR4 = 0x4001A010;// ext-chip flash read data register

DMA_REN4 = 0x40000000;// ext-chip flash dma request enable

DMA_CCR4 = 0x00000A11;// word-alignment

DMA_CTRL = 0x00000001;// enable DMA

//wait DMA interrupt

在直接方式下，无需使能FSMC_UTRG.DMA_EN控制位，使用DMA软件触发的方式，直接发起对Ext-Chip
FLASH的读取访问请求。举例：

DMA_CTMS4 = 0x00010004;// 1 round 4-times

DMA_DADR4 = 0x20001000;// ram space

DMA_SADR4 = 0x01000000;// ext-chip flash space

DMA_REN4 = 0x80000000;// soft trig

DMA_CCR4 = 0x00000AF1;// word-alignment

DMA_CTRL = 0x00000001;// enable DMA

//wait DMA interrupt

## 寄存器

### 地址分配

非易失存储体模块寄存器的基地址是0x4001_A000寄存器列表

表7-8非易失存储体模块寄存器列表

||||
|---|---|---|
|名称|偏移|说明|
|FSMC_UCMD|0x00|Ext-Chip FLASH间接方式访问命令寄存器|
|FSMC_UMOD|0x04|Ext-Chip FLASH间接方式访问模式寄存器|
|FSMC_UADR|0x08|Ext-Chip FLASH间接方式访问地址寄存器|
|FSMC_UWDA|0x0C|Ext-Chip FLASH间接方式访问编程数据寄存器|
|FSMC_URDA|0x10|Ext-Chip FLASH间接方式访问读取数据寄存器|
|FSMC_UCFG|0x20|Ext-Chip FLASH间接方式访问控制寄存器|
|FSMC_UTRG|0x24|Ext-Chip FLASH间接方式访问操作控制寄存器|
|FSMC_FCMD|0x30|Ext-Chip FLASH直接方式访问命令寄存器|
|FSMC_FMOD|0x34|Ext-Chip FLASH直接方式访问模式寄存器|
|FSMC_FCFG|0x50|Ext-Chip FLASH直接方式访问控制寄存器|
|FSMC_FTRG|0x54|Ext-Chip FLASH直接方式访问操作寄存器|
|FSMC_EDIV|0x60|Ext -Chip FLASH波特率寄存器|
|FSMC_WDAT0|0x70|On-Chip FLASH编程数据寄存器，BIT\[031:000\]|
|FSMC_WDAT1|0x74|On-Chip FLASH编程数据寄存器，BIT\[063:032\]|
|FSMC_WDAT2|0x78|On-Chip FLASH编程数据寄存器，BIT\[095:064\]|
|FSMC_WDAT3|0x7C|On-Chip FLASH编程数据寄存器，BIT\[127:096\]|
|FSMC_ICFG|0x80|On-Chip FLASH配置寄存器|
|FSMC_ADDR|0x84|On-Chip FLASH地址寄存器|
|FSMC_WDAT|0x88|On-Chip FLASH编程操作触发寄存器|
|FSMC_RDAT|0x8C|On-Chip FLASH读数据寄存器|
|FSMC_ERAS|0x90|On-Chip FLASH擦除操作触发寄存器|
|FSMC_PROT|0x94|On-Chip FLASH保护状态寄存器|
|FSMC_REDY|0x98|On-Chip FLASH工作状态寄存器|
|FSMC_IDIV|0x9C|On-Chip FLASH时基寄存器|

### FSMC_UCMD Ext-Chip FLASH 间接方式访问命令寄存器

地址：0x4001_A000

复位值：0x0

表7-9
Ext-Chip FLASH间接方式访问命令寄存器FSMC_UCMD

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

||||
|---|---|---|
|位置|位名称|说明|
|\[7:0\]|UCMD|Ext-Chip FLASH间接方式访问命令寄存器|

### FSMC_UMOD Ext-Chip FLASH 间接方式访问模式寄存器

地址：0x4001_A004

复位值：0x0

表7-10
Ext-Chip FLASH间接方式访问模式寄存器FSMC_UMOD

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

||||
|---|---|---|
|位置|位名称|说明|
|\[7:0\]|UMOD|Ext-Chip FLASH间接方式访问模式寄存器|

### FSMC_UADR Ext-Chip FLASH 间接方式访问地址寄存器

地址：0x4001_A008

复位值：0x0

表7-11
Ext-Chip FLASH间接方式访问地址寄存器FSMC_UADR

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|
|||||||||FSMC_UADR||||||||
|||||||||RW||||||||
|||||||||0||||||||
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|FSMC_UADR||||||||||||||||
|RW||||||||||||||||
|0||||||||||||||||

||||
|---|---|---|
|位置|位名称|说明|
|\[23:0\]|FSMC_UADR|Ext-Chip FLASH间接方式访问地址寄存器|

### FSMC_UWDA Ext-Chip FLASH 间接方式访问编程数据寄存器

地址：0x4001_A00C

复位值：0x0

表7-12
Ext-Chip FLASH间接方式访问编程数据寄存器FSMC_UWDA

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|
|FSMC_UWDA||||||||||||||||
|RW||||||||||||||||
|0||||||||||||||||
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|FSMC_UWDA||||||||||||||||
|RW||||||||||||||||
|0||||||||||||||||

||||
|---|---|---|
|位置|位名称|说明|
|\[31:0\]|FSMC_UWDA|Ext-Chip FLASH间接方式访问编程数据寄存器|

### FSMC_URDA Ext-Chip FLASH 间接方式访问读取数据寄存器

地址：0x4001_A010

复位值：0x0

表7-13
Ext-Chip FLASH间接方式访问读取数据寄存器FSMC_URDA

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|
|FSMC_URDA||||||||||||||||
|RO||||||||||||||||
|0||||||||||||||||
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|FSMC_URDA||||||||||||||||
|RO||||||||||||||||
|0||||||||||||||||

||||
|---|---|---|
|位置|位名称|说明|
|\[31:0\]|FSMC_URDA|Ext-Chip FLASH间接方式访问读取数据寄存器|

### FSMC_URWT Ext-Chip FLASH 间接方式访问控制寄存器

地址：0x4001_A01C

复位值：0x0001

表7-14 Ext-Chip FLASH间接方式访问控制寄存器FSMC_URWT

||||
|---|---|---|
|位置|位名称|说明|
|\[15:0\]|FSMC_URWT|上一次写操作或者间接读取操作传输完成后CSB拉高，等待多久可以进行下一次操作。对于写操作，其中FSMC_URWT\[06:00\]位作为th0，FSMC_URWT\[15:08\]位作为th1，等待时间=(th0+1)×(th1+1) ×Clock_Period。对于间接读取操作，其中FSMC_URWT\[01:00\]位作为th0，th1恒为0，等待时间=(th0+1)×Clock_Period。|

### FSMC_UCFG Ext-Chip FLASH 间接方式访问控制寄存器

地址：0x4001_A020

复位值：0x0

表7-15
Ext-Chip FLASH间接方式访问控制寄存器FSMC_UCFG

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|
|ORDER||DAT_SPD||DMY_SPD||MOD_SPD||ADR_SPD||CMD_SPD||DAT_LEN||||
|RW||RW||RW||RW||RW||RW||RW||||
|0||0||0||0||0||0||0||||
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|DAT_LEN||||DMY_LEN||||MOD_LEN||||||||
|RW||||RW||||RW||||||||
|0||||0||||0||||||||

||||
|---|---|---|
|位置|位名称|说明|
|31|ORDER|直接方式访问，读取数据大小头设置0：Ext-Chip FLASH存储的数据，按照大头存放1：Ext-Chip FLASH存储的数据，按照小头存放|
|30|R_CSB_TIM|特殊命令下，最后一个字节传输完成后需要延迟一个周期将CSB拉高。默认值为0|
|\[29:28\]|DAT_SPD|数据部分并行发送配置00：一根线传输01：两根线传输11：四根线传输10：非法配置|
|\[27:26\]|DMY_SPD|冗余部分并行发送配置00：一根线传输01：两根线传输11：四根线传输10：非法配置|
|\[25:24\]|MOD_SPD|模式部分并行发送配置00：一根线传输01：两根线传输11：四根线传输10：非法配置|
|\[23:22\]|ADR_SPD|地址部分并行发送配置00：一根线传输01：两根线传输11：四根线传输10：非法配置|
|\[21:20\]|CMD_SPD|指令部分并行发送配置00：一根线传输01：两根线传输11：四根线传输10：非法配置|
|\[19:12\]|DAT_LEN|数据部分数据长度，字节为最小单位，0代表无此部分，1代表1个字节，一次类推，最大15个字节|
|\[11:8\]|DMY_LEN|冗余部分数据长度，字节为最小单位，0代表无此部分，1代表1个字节，一次类推，最大15个字节|
|\[7:4\]|MOD_LEN|模式部分数据长度，字节为最小单位，0代表无此部分，1代表1个字节，一次类推，最大15个字节|
|\[3:0\]|--|保留位，固定配置为0|

### FSMC_UTRG Ext-Chip FLASH 间接方式访问操作寄存器

地址：0x4001_A024

复位值：0x0

表7-16
Ext-Chip FLASH间接方式访问操作寄存器FSMC_UTRG

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|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|
||||||||||||||DMA_EN|OP|SEL|
||||||||||||||RW|RW|RW|
||||||||||||||0|0|0|

||||
|---|---|---|
|位置|位名称|说明|
|\[31:3\]|--|保留位，固定配置为0|
|\[2\]|DMA_EN|Ext-Chip FLASH控制器使能DMA搬移操作|
|\[1\]|OP|通过Ext-Chip FLASH控制器间接方式访问Ext-Chip FLASH，操作类型1：编程/擦除0：读取|
|\[0\]|SEL|通过Ext-Chip FLASH控制器间接方式访问Ext-Chip FLASH。同时，此位也是状态位。1：触发操作，处理中0：不触发操作，空闲|

### FSMC_FCMD Ext-Chip FLASH 直接方式访问命令寄存器

地址：0x4001_A030

复位值：0x0

表7-17
Ext-Chip FLASH直接方式访问命令寄存器FSMC_FCMD

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

||||
|---|---|---|
|位置|位名称|说明|
|\[7:0\]|FCMD|Ext-Chip FLASH直接方式访问命令寄存器|

### FSMC_FMOD Ext-Chip FLASH 直接方式访问模式寄存器

地址：0x4001_A034

复位值：0x0

表7-18
Ext-Chip FLASH直接方式访问模式寄存器FSMC_FMOD

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

||||
|---|---|---|
|位置|位名称|说明|
|\[7:0\]|FMOD|Ext-Chip FLASH直接方式访问模式寄存器|

### FSMC_FRWT Ext-Chip FLASH 直接方式访问控制寄存器

地址：0x4001_A04C

复位值：0x0001

表7-19 Ext-Chip FLASH直接方式访问控制寄存器FSMC_FRWT

||||
|---|---|---|
|位置|位名称|说明|
|\[15:0\]|FSMC_FRWT|上一次直接读取操作传输完成后CSB拉高，等待多久可以进行下一次操作。对于直接读取操作，FSMC_URWT\[01:00\]位作为th0，th1恒为0，等待时间=(th0+1)×Clock_Period。|

### FSMC_FCFG Ext-Chip FLASH 直接方式访问控制寄存器

地址：0x4001_A050

复位值：0x400

表7-20
Ext-Chip FLASH直接方式访问控制寄存器FSMC_FCFG

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|
|||||ORDER||DAT_SPD||DMY_SPD||MOD_SPD||ADR_SPD||CMD_SPD||
|||||RW||RW||RW||RW||RW||RW||
|||||0||0||0||0||0||0||
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|DAT_LEN||||||||DMY_LEN||||MOD_LEN||||
|RW||||||||RW||||RW||||
|0x4||||||||0||||0||||

||||
|---|---|---|
|位置|位名称|说明|
|27|ORDER|直接方式访问，读取数据大小头设置0：Ext-Chip FLASH存储的数据，按照大头存放1：Ext-Chip FLASH存储的数据，按照小头存放|
|26|--|保留位，固定配置为0|
|\[25:24\]|DAT_SPD|数据部分并行发送配置00：一根线传输01：两根线传输11：四根线传输10：非法配置|
|\[23:22\]|DMY_SPD|冗余部分并行发送配置00：一根线传输01：两根线传输11：四根线传输10：非法配置|
|\[21:20\]|MOD_SPD|模式部分并行发送配置00：一根线传输01：两根线传输11：四根线传输10：非法配置|
|\[19:18\]|ADR_SPD|地址部分并行发送配置00：一根线传输01：两根线传输11：四根线传输10：非法配置|
|\[17:16\]|CMD_SPD|指令部分并行发送配置00：一根线传输01：两根线传输11：四根线传输10：非法配置|
|\[15:8\]|DAT_LEN|数据部分数据长度，字节为最小单位，0代表无此部分，1代表1个字节，一次类推，最大15个字节|
|\[7:4\]|DMY_LEN|冗余部分数据长度，字节为最小单位，0代表无此部分，1代表1个字节，一次类推，最大15个字节|
|\[3:0\]|MOD_LEN|模式部分数据长度，字节为最小单位，0代表无此部分，1代表1个字节，一次类推，最大15个字节|

### FSMC_FTRG Ext-Chip FLASH 直接方式访问操作寄存器

地址：0x4001_A054

复位值：0x0

表7-21
Ext-Chip FLASH直接方式访问操作寄存器FSMC_FTRG

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|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|
||||||||||||||||UPDATE|
||||||||||||||||RW|
||||||||||||||||0|

||||
|---|---|---|
|位置|位名称|说明|
|\[31:1\]|--|保留位，固定配置为0|
|\[0\]|UPDATE|Ext-Chip FLASH控制器直接方式访问寄存器更新。因存在可能MCU一直使用直接方式获取Ext-Chip FLASH的数据，为了安全考虑，需要在空闲期间更新直接访问相关寄存器，此位也相当于一个状态，表明是否更新完毕。1：触发更新操作/更新过程中0：不触发更新操作/更新完毕|

### FSMC_EDIV Ext-Chip FLASH 波特率寄存器

地址：0x4001_A060

复位值：0x44444

表7-22
Ext-Chip FLASH波特率寄存器FSMC_EDIV

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|
|||||||||||||DAT_BAUDL||DAT_BAUDH||
|||||||||||||RW||RW||
|||||||||||||1||0||
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|DMY_BAUDL||DMY_BAUDH||MOD_BAUDL||MOD_BAUDH||ADR_BAUDL||ADR_BAUDH||CMD_BAUDL||CMD_BAUDH||
|RW||RW||RW||RW||RW||RW||RW||RW||
|1||0||1||0||1||0||1||0||

||||
|---|---|---|
|位置|位名称|说明|
|\[19:18\]|DAT_BAUDL|数据部分波特率配置，低电平持续周期数0：一个系统时钟周期1：两个系统时钟周期2：三个系统时钟周期3：四个系统时钟周期|
|\[17:16\]|DAT_BAUDH|数据部分波特率配置，高电平持续周期数0：一个系统时钟周期1：两个系统时钟周期2：三个系统时钟周期3：四个系统时钟周期|
|\[15:14\]|DMY_BAUDL|冗余部分波特率配置，低电平持续周期数0：一个系统时钟周期1：两个系统时钟周期2：三个系统时钟周期3：四个系统时钟周期|
|\[13:12\]|DMY_BAUDH|冗余部分波特率配置，高电平持续周期数0：一个系统时钟周期1：两个系统时钟周期2：三个系统时钟周期3：四个系统时钟周期|
|\[11:10\]|MOD_BAUDL|模式部分波特率配置，低电平持续周期数0：一个系统时钟周期1：两个系统时钟周期2：三个系统时钟周期3：四个系统时钟周期|
|\[09:08\]|MOD_BAUDH|模式部分波特率配置，高电平持续周期数0：一个系统时钟周期1：两个系统时钟周期2：三个系统时钟周期3：四个系统时钟周期|
|\[07:06\]|ADR_BAUDL|地址部分波特率配置，低电平持续周期数0：一个系统时钟周期1：两个系统时钟周期2：三个系统时钟周期3：四个系统时钟周期|
|\[05:04\]|ADR_BAUDH|地址部分波特率配置，高电平持续周期数0：一个系统时钟周期1：两个系统时钟周期2：三个系统时钟周期3：四个系统时钟周期|
|\[03:02\]|CMD_BAUDL|指令部分波特率配置，低电平持续周期数0：一个系统时钟周期1：两个系统时钟周期2：三个系统时钟周期3：四个系统时钟周期|
|\[01:00\]|CMD_BAUDH|指令部分波特率配置，高电平持续周期数0：一个系统时钟周期1：两个系统时钟周期2：三个系统时钟周期3：四个系统时钟周期|

注，波特率为L系统时钟周期和H系统时钟周期之和。

### FSMC_WDAT0 On-Chip FLASH 编程数据寄存器

地址：0x4001_A070

复位值：0x0

表7-23
On-Chip FLASH编程数据寄存器FSMC_WDAT0

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|
|WDATA||||||||||||||||
|RW||||||||||||||||
|0||||||||||||||||
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|WDATA||||||||||||||||
|RW||||||||||||||||
|0||||||||||||||||

||||
|---|---|---|
|位置|位名称|说明|
|\[31:0\]|WDATA|On-Chip FLASH编程数据寄存器，BIT\[031:000\]|

### FSMC_WDAT1 On-Chip FLASH 编程数据寄存器

地址：0x4001_A074

复位值：0x0

表7-24
On-Chip FLASH编程数据寄存器FSMC_WDAT1

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|
|WDATA||||||||||||||||
|RW||||||||||||||||
|0||||||||||||||||
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|WDATA||||||||||||||||
|RW||||||||||||||||
|0||||||||||||||||

||||
|---|---|---|
|位置|位名称|说明|
|\[31:0\]|WDATA|On-Chip FLASH编程数据寄存器，BIT\[063:032\]|

### FSMC_WDAT2 On-Chip FLASH 编程数据寄存器

地址：0x4001_A078

复位值：0x0

表7-25
On-Chip FLASH编程数据寄存器FSMC_WDAT2

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|
|WDATA||||||||||||||||
|RW||||||||||||||||
|0||||||||||||||||
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|WDATA||||||||||||||||
|RW||||||||||||||||
|0||||||||||||||||

||||
|---|---|---|
|位置|位名称|说明|
|\[31:0\]|WDATA|On-Chip FLASH编程数据寄存器，BIT\[095:064\]|

### FSMC_WDAT3 On-Chip FLASH 编程数据寄存器

地址：0x4001_A07C

复位值：0x0

表7-26
On-Chip FLASH编程数据寄存器FSMC_WDAT3

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|
|WDATA||||||||||||||||
|RW||||||||||||||||
|0||||||||||||||||
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|WDATA||||||||||||||||
|RW||||||||||||||||
|0||||||||||||||||

||||
|---|---|---|
|位置|位名称|说明|
|\[31:0\]|WDATA|On-Chip FLASH编程数据寄存器，BIT\[127:096\]|

### FSMC_ICFG On-Chip FLASH 配置寄存器

地址：0x4001_A080

复位值：0x0

表7-27
On-Chip FLASH配置寄存器FSMC_ICFG

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|
|ERS_EN||||PRG_EN||||ADR_INC||||SEL_PROT||||
|RW||||RW||||RW||||RW||||
|0||||0||||0||||0||||
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|||||REGION||||retry_en||||retry||||
|||||RW||||RW||||RW||||
|||||0||||0||||0||||

||||
|---|---|---|
|位置|位名称|说明|
|\[31\]|ERS_EN|On-Chip FLASH擦除使能。默认为0。0：关闭擦除1：开启擦除|
|\[27\]|PRG_EN|On-Chip FLASH编程使能。默认为0。0：关闭编程1：开启编程|
|\[23\]|ADR_INC|On-Chip FLASH地址递增使能。默认为0。0：关闭递增使能1：开启递增使能当执行On-Chip FLASH连续读写访问时，开启此功能，可以减少对地址的操作。|
|\[19\]|SEL_PROT|On-Chip FLAS保护字选择0：选择On-Chip FLASH存储体整体保护策略的保护字1：选择ROM区域独有保护策略的保护字|
|\[11\]|REGION|访问On-Chip FLASH区域选择。默认为0。0：MAIN/ROM（根据地址不同选择不同区域）1：NVR|
|\[7\]|RETRY_EN|快速擦除使能0：关闭1：使能|
|\[3:2\]|RETRY|快速擦除计数器|

### FSMC_ADDR On-Chip FLASH 地址寄存器

地址：0x4001\_ A084

复位值：0x0

表7-28
On-Chip FLASH地址寄存器FSMC_ADDR

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

||||
|---|---|---|
|位置|位名称|说明|
|\[31:16\]||未使用|
|\[17:0\]|ADDR|地址寄存器。读/写/擦除操作对应的地址寄存器。读取操作，一次读取32-BIT数据，ADDR的最低两位会被On-Chip FLASH控制器忽略。编程操作，一次编程128-BIT数据，ADDR的最低四位会被On-Chip FLASH控制器忽略。擦除操作，Sector大小为1024-Byte，执行Sector擦除时，ADDR的最低十位会被On-Chip FLASH控制器忽略。执行Full擦除时，ADDR的值被On-Chip FLASH控制器忽略。|

### FSMC_WDAT On-Chip FLASH 编程操作触发寄存器

地址：0x4001\_ A088

复位值：0x0

表7-29
On-Chip FLASH编程操作触发寄存器FSMC_WDAT

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|
|WDATA||||||||||||||||
|WO||||||||||||||||
|0||||||||||||||||
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|WDATA||||||||||||||||
|WO||||||||||||||||
|0||||||||||||||||

||||
|---|---|---|
|位置|位名称|说明|
|\[31:0\]|WDATA|写入0x7654DCBA，触发On-Chip FLASH编程操作|

### FSMC_RDAT On-Chip FLASH 读数据寄存器

地址：0x4001\_ A08C

复位值：0x0

表7-30
On-Chip FLASH读数据寄存器FSMC_RDAT

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|
|RDATA||||||||||||||||
|RO||||||||||||||||
|0||||||||||||||||
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|RDATA||||||||||||||||
|RO||||||||||||||||
|0||||||||||||||||

||||
|---|---|---|
|位置|位名称|说明|
|\[31:0\]|RDATA|执行读取操作，读出On-Chip FLASH对应地址的值|

### FSMC_ERAS On-Chip FLASH 擦除操作触发寄存器

地址：0x4001\_ A090

复位值：0x0

表7-31
On-Chip FLASH擦除控制寄存器FSMC_ERAS

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|
|ERASE||||||||||||||||
|WO||||||||||||||||
|0||||||||||||||||
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
|ERASE||||||||||||||||
|WO||||||||||||||||
|0||||||||||||||||

||||
|---|---|---|
|位置|位名称|说明|
|\[31:0\]|ERASE|写入0x7654DCBA，触发On-Chip FLASH擦除操作|

### FSMC_PROT On-Chip FLASH 保护状态寄存器

地址：0x4001\_ A094

复位值：0x00010001

表7-32
On-Chip FLASH保护状态寄存器FSMC_PROT

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|
||||||||||||||||RPROT|
||||||||||||||||RO|
||||||||||||||||1|
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
||||||||||||||||PROT|
||||||||||||||||RO|
||||||||||||||||1|

||||
|---|---|---|
|位置|位名称|说明|
|\[16\]|RPROT|ROM区域独有保护策略的保护状态0：未保护1：保护中|
|\[0\]|PROT|On-Chip FLASH存储体整体保护策略的保护状态0：未保护1：保护中|

### FSMC_REDY On-Chip FLASH 工作状态寄存器

地址：0x4001\_ A098

复位值：0x0101

表7-33
On-Chip FLASH工作状态寄存器FSMC_REDY

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

||||
|---|---|---|
|位置|位名称|说明|
|\[31:9\]||未使用|
|\[8\]|IREADY|S总线访问On-Chip FLASH状态0：S总线在访问On-Chip FLASH，不接受S总线的发起新请求1：S总线未访问On-Chip FLASH，可接受S总线的发起新请求|
|\[7:1\]||未使用|
|\[0\]|READY|I/D总线访问On-Chip FLASH状态0：I/D总线在访问On-Chip FLASH，不接受I/D总线的发起新请求1：I/D总线未访问On-Chip FLASH，可接受I/D总线的发起新请求|

注，S总线是外设访问总线，通过寄存器方式间接访问On-Chip
FLASH，支持读取/编程/擦除；I/D总线是MCU直接访问On-Chip
FLASH的总线，只支持读取；

### FSMC_IDIV On-Chip FLASH 时基寄存器

地址：0x4001\_ A09C

复位值：0x58004011

表7-34
On-Chip FLASH工作状态寄存器FSMC_IDIV

|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|
||BCNT1|||||||||||||||
||RW|||||||||||||||
||0x5800|||||||||||||||
|15|14|13|12|11|10|9|8|7|6|5|4|3|2|1|0|
||BCNT0|||||||CKL||||CKH||||
||RW|||||||RW||||RW||||
||0x40|||||||1||||1||||

||||
|---|---|---|
|位置|位名称|说明|
|\[31:16\]|BCNT1|On-Chip FLASH编程擦除时基寄存器1。不同系统频率，值可以微调。默认为0x5400，对应192M系统时钟。192M：0x5400096M：0x2A00048M：0x1500024M：0xA80|
|\[14:08\]|BCNT0|On-Chip FLASH编程擦除时基寄存器0。默认值为0x40，不同时钟频率下该寄存器值不需要更改。|
|\[07:04\]|CKL|On-Chip FLASH在读取操作时，内部基准时钟低电平的持续时间，这个值影响了读取操作中时钟信号低电平保持的周期数。该值仅可为0x1和0x2。0x1：仅当系统频率低于96M，可使用的值，低电平保持2个系统周期。0x2：默认值，当系统大于等于96M时，低电平保持3个系统时钟周期。|
|\[03:00\]|CKH|On-Chip FLASH在读取操作时，内部基准时钟高电平的持续时间，这个值影响了读取操作中时钟信号高电平保持的周期数。该值仅可为0x1和0x2。0x1：仅当系统频率低于96M，可使用的值，高电平保持2个系统周期。0x2：默认值，当系统大于等于96M时，高电平保持3个系统时钟周期|

### NVR 校准参数地址信息

LKS32MC45x 校准参数使用

LKS32MC45x 产品存储芯片校准参数：

校准参数，每颗产品均独立校准，每颗产品不支持校准参数混用；

校准参数，在出厂前进行写入，出厂后不支持编程和擦除，仅支持读取；

校准参数，通过LKS公司提供的库函数进行读取访问；

校准参数，推荐关闭系统中断后，执行访问操作；

lks32mc45x_nvr.o文件包含了校准参数的读取函数：

读取函数：uint32_t Read_Trim(uint32_t adr);

表7-35 LKS32MC45x 校准值存放地址

|||
|---|---|
|地址|内容|
|0x00000800|SYS_AFE_REGC校准值|
|0x00000804|SYS_AFE_REGD校准值|
|0x00000808|SYS_AFE_REGE校准值|
|0x0000080C|SYS_AFE_REGF校准值|
|0x00000810|SYS_AFE_REG10校准值|
|0x00000820|ADC0_DC0 校准值，2/3倍增益|
|0x00000824|ADC0_DC1 校准值，1倍增益|
|0x00000828|ADC0_AMC0 校准值，2/3倍增益|
|0x0000082C|ADC0_AMC1 校准值，1倍增益|
|0x00000830|ADC1_DC0 校准值，2/3倍增益|
|0x00000834|ADC1_DC1 校准值，1倍增益|
|0x00000838|ADC1_AMC0 校准值，2/3倍增益|
|0x0000083C|ADC1_AMC1 校准值，1倍增益|
|0x00000840|ADC2_DC0 校准值，2/3倍增益|
|0x00000844|ADC2_DC1 校准值，1倍增益|
|0x00000848|ADC2_AMC0 校准值，2/3倍增益|
|0x0000084C|ADC2_AMC1 校准值，1倍增益|
|0x00000860|DAC 0选择 3.00V 档位，SYS_AFE_DAC_AMC 校准值（扩大 512 倍结果）|
|0x00000864|DAC 0选择 1.20V 档位，SYS_AFE_DAC_AMC 校准值（扩大 512 倍结果）|
|0x00000868|DAC 0选择 3.00V 档位，SYS_AFE_DAC_DC 校准值|
|0x0000086C|DAC 0选择 1.20V 档位，SYS_AFE_DAC_DC 校准值|
|0x00000870|DAC1选择 3.00V 档位，SYS_AFE_DAC_AMC 校准值（扩大 512 倍结果）|
|0x00000874|DAC 1选择 1.20V 档位，SYS_AFE_DAC_AMC 校准值（扩大 512 倍结果）|
|0x00000878|DAC 1选择 3.00V 档位，SYS_AFE_DAC_DC 校准值|
|0x0000087C|DAC 1选择 1.20V 档位，SYS_AFE_DAC_DC 校准值|
|0x00000880|OPA0，320K 欧姆 VS 05K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x00000884|OPA0，320K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x00000888|OPA0，160K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x0000088C|OPA0，080K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x00000890|OPA0，040K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x00000894|OPA0，020K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x000008A0|OPA1，320K 欧姆 VS 05K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x000008A4|OPA1，320K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x000008A8|OPA1，160K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x000008AC|OPA1，080K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x000008B0|OPA1，040K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x000008B4|OPA1，020K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x000008C0|OPA2，320K 欧姆 VS 05K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x000008C4|OPA2，320K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x000008C8|OPA2，160K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x000008CC|OPA2，080K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x000008D0|OPA2，040K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x000008D4|OPA2，020K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x000008E0|OPA3，320K 欧姆 VS 05K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x000008E4|OPA3，320K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x000008E8|OPA3，160K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x000008EC|OPA3，080K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x000008F0|OPA3，040K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x000008F4|OPA3，020K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x00000900|OPA4，320K 欧姆 VS 05K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x00000904|OPA4，320K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x00000908|OPA4，160K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x0000090C|OPA4，080K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x00000910|OPA4，040K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x00000914|OPA4，020K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x00000920|OPA5，320K 欧姆 VS 05K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x00000924|OPA5，320K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x00000928|OPA5，160K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x0000092C|OPA5，080K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x00000930|OPA5，040K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x00000934|OPA5，020K 欧姆 VS 10K 欧姆，GAIN 校准值（扩大 1000 倍结果），R0为0欧姆|
|0x00000940|温度传感器，斜率校准值|
|0x00000944|温度传感器，偏置校准值|
|0x00000950|OPA5，共模电压（扩大 1000 倍结果）|
|0x00000954|OPA4，共模电压（扩大 1000 倍结果）|
|0x00000958|OPA3，共模电压（扩大 1000 倍结果）|
|0x0000095C|OPA2，共模电压（扩大 1000 倍结果）|
|0x00000960|OPA1，共模电压（扩大 1000 倍结果）|
|0x00000964|OPA0，共模电压（扩大 1000 倍结果）|
|0x000009A0|OPA0 6个挡位下的Offset值（有符号类型，单位：V，放大10000倍）Bit\[31:16\] 2倍放大倍数 6挡Bit\[15:0\] 4倍放大倍数 5挡|
|0x000009A4|Bit\[31:16\] 8倍放大倍数 4挡Bit\[15:0\] 16倍放大倍数 3挡|
|0x000009A8|Bit\[31:16\] 32倍放大倍数 2挡Bit\[15:0\] 64倍放大倍数 1挡|
|0x000009AC|0xFFFFFFFF(保留)|
|0x000009B0|OPA1 6个挡位下的Offset值（有符号类型，单位：V，放大10000倍）Bit\[31:16\] 2倍放大倍数 6挡Bit\[15:0\] 4倍放大倍数 5挡|
|0x000009B4|Bit\[31:16\] 8倍放大倍数 4挡Bit\[15:0\] 16倍放大倍数 3挡|
|0x000009B8|Bit\[31:16\] 32倍放大倍数 2挡Bit\[15:0\] 64倍放大倍数 1挡|
|0x000009BC|0xFFFFFFFF(保留)|
|0x000009C0|OPA2 6个挡位下的Offset值（有符号类型，单位：V，放大10000倍）Bit\[31:16\] 2倍放大倍数 6挡Bit\[15:0\] 4倍放大倍数 5挡|
|0x000009C4|Bit\[31:16\] 8倍放大倍数 4挡Bit\[15:0\] 16倍放大倍数 3挡|
|0x000009C8|Bit\[31:16\] 32倍放大倍数 2挡Bit\[15:0\] 64倍放大倍数 1挡|
|0x000009CC|0xFFFFFFFF(保留)|
|0x000009D0|OPA3 6个挡位下的Offset值（有符号类型，单位：V，放大10000倍）Bit\[31:16\] 2倍放大倍数 6挡Bit\[15:0\] 4倍放大倍数 5挡|
|0x000009D4|Bit\[31:16\] 8倍放大倍数 4挡Bit\[15:0\] 16倍放大倍数 3挡|
|0x000009D8|Bit\[31:16\] 32倍放大倍数 2挡Bit\[15:0\] 64倍放大倍数 1挡|
|0x000009DC|0xFFFFFFFF(保留)|
|0x000009E0|OPA4 6个挡位下的Offset值（有符号类型，单位：V，放大10000倍）Bit\[31:16\] 2倍放大倍数 6挡Bit\[15:0\] 4倍放大倍数 5挡|
|0x000009E4|Bit\[31:16\] 8倍放大倍数 4挡Bit\[15:0\] 16倍放大倍数 3挡|
|0x000009E8|Bit\[31:16\] 32倍放大倍数 2挡Bit\[15:0\] 64倍放大倍数 1挡|
|0x000009EC|0xFFFFFFFF(保留)|
|0x000009F0|OPA5 6个挡位下的Offset值（有符号类型，单位：V，放大10000倍）Bit\[31:16\] 2倍放大倍数 6挡Bit\[15:0\] 4倍放大倍数 5挡|
|0x000009F4|Bit\[31:16\] 8倍放大倍数 4挡Bit\[15:0\] 16倍放大倍数 3挡|
|0x000009F8|Bit\[31:16\] 32倍放大倍数 2挡Bit\[15:0\] 64倍放大倍数 1挡|
|0x000009FC|0xFFFFFFFF(保留)|
|0x00000A00|OPA0，320K 欧姆 VS 05K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A04|OPA0，320K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A08|OPA0，160K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A0C|OPA0，080K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A10|OPA0，040K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A14|OPA0，020K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A20|OPA1，320K 欧姆 VS 05K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A24|OPA1，320K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A28|OPA1，160K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A2C|OPA1，080K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A30|OPA1，040K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A34|OPA1，020K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A40|OPA2，320K 欧姆 VS 05K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A44|OPA2，320K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A48|OPA2，160K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A4C|OPA2，080K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A50|OPA2，040K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A54|OPA2，020K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A60|OPA3，320K 欧姆 VS 05K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A64|OPA3，320K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A68|OPA3，160K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A6C|OPA3，080K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A70|OPA3，040K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A74|OPA3，020K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A80|OPA4，320K 欧姆 VS 05K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A84|OPA4，320K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A88|OPA4，160K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A8C|OPA4，080K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A90|OPA4，040K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000A94|OPA4，020K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000AA0|OPA5，320K 欧姆 VS 05K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000AA4|OPA5，320K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000AA8|OPA5，160K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000AAC|OPA5，080K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000AB0|OPA5，040K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x00000AB4|OPA5，020K 欧姆 VS 10K 欧姆挡位。高16位存放R2实际阻值，低16位存放R1实际阻值（扩大100 倍结果）|
|0x000009A0|OPA0 6个挡位下的Offset值（有符号类型，单位：V，放大10000倍）Bit\[31:16\] OPA 2倍放大倍数6档Bit\[15:0\] OPA 4倍放大倍数5档|
|0x000009A4|Bit\[31:16\] 8倍放大倍数4档Bit\[15:0\] 16倍放大倍数3档|
|0x000009A8|Bit\[31:16\] 32倍放大倍数2档Bit\[15:0\] 64倍放大倍数1档|
|0x000009AC|0xFFFFFFFF（保留）|
|0x000009B0|OPA1 6个挡位下的Offset值（有符号类型，单位：V，放大10000倍）Bit\[31:16\] 2倍放大倍数6档Bit\[15:0\] 4倍放大倍数5档|
|0x000009B4|Bit\[31:16\] 8倍放大倍数4档Bit\[15:0\] 16倍放大倍数3档|
|0x000009B8|Bit\[31:16\] 32倍放大倍数2档Bit\[15:0\] 64倍放大倍数1档|
|0x000009BC|0xFFFFFFFF（保留）|
|0x000009C0|OPA2 6个挡位下的Offset值（有符号类型，单位：V，放大10000倍）Bit\[31:16\] 2倍放大倍数6档Bit\[15:0\] 4倍放大倍数5档|
|0x000009C4|Bit\[31:16\] 8倍放大倍数4档Bit\[15:0\] 16倍放大倍数3档|
|0x000009C8|Bit\[31:16\] 32倍放大倍数2档Bit\[15:0\] 64倍放大倍数1档|
|0x000009CC|0xFFFFFFFF（保留）|
|0x000009D0|OPA3 6个挡位下的Offset值（有符号类型，单位：V，放大10000倍）Bit\[31:16\] 2倍放大倍数6档Bit\[15:0\] 4倍放大倍数5档|
|0x000009D4|Bit\[31:16\] 8倍放大倍数4档Bit\[15:0\] 16倍放大倍数3档|
|0x000009D8|Bit\[31:16\] 32倍放大倍数2档Bit\[15:0\] 64倍放大倍数1档|
|0x000009DC|0xFFFFFFFF（保留）|
|0x000009E0|OPA4 6个挡位下的Offset值（有符号类型，单位：V，放大10000倍）Bit\[31:16\] 2倍放大倍数6档Bit\[15:0\] 4倍放大倍数5档|
|0x000009E4|Bit\[31:16\] 8倍放大倍数4档Bit\[15:0\] 16倍放大倍数3档|
|0x000009E8|Bit\[31:16\] 32倍放大倍数2档Bit\[15:0\] 64倍放大倍数1档|
|0x000009EC|0xFFFFFFFF（保留）|
|0x000009F0|OPA5 6个挡位下的Offset值（有符号类型，单位：V，放大10000倍）Bit\[31:16\] 2倍放大倍数6档Bit\[15:0\] 4倍放大倍数5档|
|0x000009F4|Bit\[31:16\] 8倍放大倍数4档Bit\[15:0\] 16倍放大倍数3档|
|0x000009F8|Bit\[31:16\] 32倍放大倍数2档Bit\[15:0\] 64倍放大倍数1档|
|0x000009FC|0xFFFFFFFF（保留）|

