Flash Memory Module (FTFE)

FTFE 模塊包含以下可訪問的存儲器區域:
• Program flash memory for vector space and code store
• For FlexNVM devices: FlexNVM for data store and additional code store
• For FlexNVM devices: FlexRAM for high-endurance data store or traditional RAM

• For program flash only devices: Programming acceleration RAM to speed flash  programming


FTFE模塊包含一個存儲器控制器可以執行指令來刷新flash存儲器內容。擦除是1,編程是0.只能由1變爲0.

在編程之前flash存儲器的狀態必須是擦除狀態

每個塊或者sector的立即再擦除是在factory編程之前,來保證完獲得整數據保持能力。

30.1.1.1 Program Flash Memory Features

sector 大小是4KB

Program flash protection scheme prevents accidental program or erase of stored data

對於包含FlexNVM memory的設備: Read access to one program flash block is possible while programming or erasing data in another program flash block, data  flash block, or FlexRAM

30.1.1.2 FlexNVM memory features

When FlexNVM is partitioned for data flash memory:

sector大小是4KB

Automated, 內置 program and erase algorithms with verify

30.1.1.4 FlexRAM 特徵

Memory that can be used as traditional RAM or as high-endurance EEPROM storage
• 最多16 Kbytes of FlexRAM 配置 for EEPROM or traditional RAM operations

支持 FlexRAM aligned writes of 1, 2, or 4 bytes at a time

30.1.3 Glossary

Endurance — 次數 that a flash memory location can be erased and reprogrammed.

FCCOB (Flash Common Command Object) — A group of flash registers that are used to pass command, address, data, and any associated parameters to the memory controller in the FTFE module.

IFR — 非易失信息寄存器 found in each flash block, separate from the main memory array.

NVM Normal Mode — An NVM mode that provides basic user access to FTFE resources.

NVM Special Mode — An NVM mode enabling external, off-chip access to the memory resources in the FTFE module.

Program flash sector — 最小部分of the program flash memory (consecutive addresses)可以被擦除.

30.3.1 Flash 配置區域描述

可編程flash存儲器包含16字節的flash配置區域,包含默認的保護設置(在復位時加載),和安全信息,允許MCU限制FTFE模塊的訪問。

30.3.2 編程 flash 0 IFR map

可編程flash 0 IFR是一個1 KB的非易失信息存儲器,可以自由地讀,但用戶沒有擦除並且限制編程的能力。

30.3.2.1 編程一次區域

在flash 0 IFR中提供用戶數據存儲的64字節,獨立於編程flash 0 的主序列。用戶可以在該區域編程一次,因爲用戶沒有擦除機制。可以被讀任意次。該區域可以被8字節記錄訪問,使用Read Once 和編程一次指令。

30.3.3數據 flash 0 IFR map

是一個1KB非易失信息存儲器,可以被讀和擦除,用戶只有有限的編程能力。

30.3.3.1 EEPROM Data Set Size

EEESIZE 0000' = 16,384 Bytes
'0001' = 8,192 Bytes
'0010' = 4,096 Bytes
'0011' = 2,048 Bytes
'0100' = 1,024 Bytes
'0101' = 512 Bytes
'0110' = 256 Bytes
'0111' = 128 Bytes
'1000' = 64 Bytes
'1001' = 32 Bytes
'1010' = Reserved
'1011' = Reserved
'1100' = Reserved
'1101' = Reserved
'1110' = Reserved
'1111' = 0 Bytes

30.3.3.2 FlexNVM partition code

將FlexNVM塊分解爲數據flash存儲器和EEPROM備份存儲器支持EEPROM功能。

DEPART  Data flash (KByte)     EEPROM backup (KByte)
0000            512                              0
0001         Reserved                   Reserved
0010         Reserved                   Reserved
0011         Reserved                   Reserved
0100           448                              64
0101           384                             128
0110           256                             256
0111             0                               512
1000             0                               512
1001         Reserved                   Reserved
1010         Reserved                   Reserved
1011         Reserved                   Reserved

1100            64                               448
1101           128                              384
1110           256                              256
1111           512                                0

30.3.4 寄存器描述

30.34.1 Flash Status Register (FTFE_FSTAT)

CCIF  操作結束中斷標誌

標誌FTFE指令或者EEPROM文件系統操作結束。當寫1到CCIF中時,標誌會被清除,一直保持低直到指令結束或者操作違法。當使能EEE,併成功的寫入FLexRAM時,CCIF標誌也會被清除,會一直保持低直到EEPROM文件系統創建相關的EEPROM數據記錄。當復位初始化序列結束就會將CCIF置1.

0 FTFE指令或者EPROM文件系統操作正在進行

1 FTFE指令或者EPROM文件系統操作結束

RDCOLERR   FTFE讀衝突錯誤標誌,寫1可以清除該位。當CCIF=0,讀操作就會產生錯誤。

ACCERR flash操作錯誤標誌

FPVIOL flash保護違反標誌

MGSTAT0 存儲器控制指令結束狀態標誌

當檢測到執行FTFE指令過程或者flash復位序列錯誤時該位就會被置位。

30.34.2 Flash Configuration Register (FTFE_FCNFG)

CCIE 指令結束中斷使能 1

RDCOLLIE 讀衝突錯誤中斷使能  1

ERSAREQ 擦除所有請求 

執行擦除所有塊指令並release security。當操作結束就會被FTFE清除。

0 No request or request complete
1 Request to
:
1. run the Erase All Blocks command,
2. verify the erased state,
3. program the security byte in the Flash Configuration Field to the unsecure state, and
4. release MCU security by setting the FSEC[SEC] field to the unsecure state.

ERSSUSP 擦除被掛起 1

SWAP 只讀

0  Logical program flash 0 block is located at relative address 0x0000

1  Logical program flash 1 block is located at relative address 0x0000

PFLSH 只讀

0 FTFE配置支持 two logical program flash blocks and two logical FlexNVM blocks

1 保留

RAMRDY 只讀

如果FlexNVM塊分配了EEPROM則該位被清除,如果沒有分配EEPROM,被置位。

EEERDY 只讀

標誌EEPROM備份數據已經被拷貝到FlexRAM因此可以讀取。

在復位期間,當CCIF=0,EEERDY標誌一直被清除,只在FlexNVM塊劃分爲EEPROM時被置位。

30.34.3 Flash Security Register (FTFE_FSEC)

只讀,MCU與FTFE模塊的安全性。

30.34.5 Flash Common Command Object Registers(FTFE_FCCOBn)

提供12字節指令編碼與參數。FCCOB register name:
FCCOB0, FCCOB1, ..., FCCOBB.

FCCOB Number       Typical Command Parameter Contents [7:0]
0                                FCMD (a code that defines the FTFE command)
1                                Flash address [23:16]
2                                Flash address [15:8]
3                                Flash address [7:0]
4                                Data Byte 0
5                                Data Byte 1
6                                Data Byte 2
7                                Data Byte 3

8                                Data Byte 4
9                                Data Byte 5
A                                Data Byte 6
B                                Data Byte 7

30.34.6 Program Flash Protection Registers (FTFE_FPROTn)

保護不被編程與擦除操作。

四個FPROT寄存器允許32保護的部分。

在復位序列中,FPROT寄存器載入編程flash在flash配置區域的保護字節。

Program flash protection register     Flash Configuration Field offset address
FPROT0                                          0x0008
FPROT1                                          0x0009
FPROT2                                          0x000A
FPROT3                                          0x000B

7-0 PROT 0編程flash區域被保護

                 1 沒有被保護

30.34.7 EEPROM Protection Register (FTFE_FEPROT)

7-0 EPROT   0 被保護

 30.34.8 Data Flash Protection Register (FTFE_FDPROT)

7-0 DPROT  0 被保護

30.4 功能描述

30.4.1 Program flash memory swap

用戶可以配置編程flash空間的存儲器映射比如編程flash存儲器任何一半可以在相對地址0x0000存在。交換功能可以使編程flash空間低一半可以操作在高一半正在爲將來使用而更新。

交換控制指令在存儲器映射裏操作編程flash存儲器的兩半。

30.4.2 Flash Protection

編程flash大小/32  FPROT3[PROT0]

                             FPROT3[PROT1]

                             FPROT3[PROT2]

                             FPROT3[PROT3]

                             …………

                             FPROT0[PROT29]

                             FPROT0[PROT30]

                             FPROT0[PROT31]

30.4.3.2 EEPROM User Perspective

1. EEPROM partition (EEESIZE) —

2. Data flash partition (DEPART)

3. FlexNVM EEPROM partition

4. EEPROM split factor (EEESPLIT) —FlexRAM劃分爲EEPROM可以被分爲兩個子系統,每個都被一半的EEPROM backup做後備。子系統A可以使1/8、1/4、1/2的FlexRAM,剩下的是子系統B。

30.4.10 FTFE Command Operations

30.4.10.1 Command Write Sequence

FTFE模塊操作不同的檢查在指令(FCCOB)內容上並且持續如果所有的請求都被滿足,指令執行時。

在執行指令前,ACCERR,FPVIOL位在FSTAT寄存器中必須是0,並且CCIF標誌必須是1來保證之前指令已經結束了。

30.4.10.1.1 Load the FCCOB Registers

30.4.10.1.2 Launch the Command by Clearing CCIF

一旦所有相關指令參數都被加載,用戶通過清除FSTAT[CCIF]位(通過寫1)來launch指令。CCIF指令在FTFE指令結束前一直是0.

30.4.10.2 Flash commands

FCMD   Command  

0x00      read 1s block

0x01      read 1s section

0x02      program check 

0x03      read resource 

0x07      program phrase 

0x08      erase flash block 

0x09      erase flash sector

0x0B      program section

0x40      read 1 all blocks

0x41      read once

0x43      program once 

0x44      erase all blocks 

0x45      verify backdoor access key

0x46      swap control

0x80      program partition

0x81      set flexRam function

Read 1s Block(驗證某塊是否被擦除)、Read 1s Section(驗證某段區域是否被擦除)和Read 1s All Blocks(驗證所有的塊是否被擦除)

發佈了27 篇原創文章 · 獲贊 13 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章