SPRUJA3 November 2024 F29H850TU , F29H859TU-Q1
As the whole architecture, RAM and FLASH memories have changed from F28P65x and F29H85x. Table 4-7 summarizes the memory features including error-checking and security assignment, and the different modes in flash.
Memory | F28P65x | F29H85x | ||||
---|---|---|---|---|---|---|
RAM and Flash | Size | Parity/ECC | Secured | Size | Parity/ECC | Secured |
Dedicated RAM | 104KB | Parity | 4K | ECC | ||
Local Shared RAM | 64KB | Parity | N/A | |||
Global Shared RAM | 80KB | Parity | ||||
Program Memory (LPAx, CPAx) |
N/A | 128KB | ECC | |||
Data Memory (LDAx, CDAx) |
320KB | ECC | ||||
Message RAM (CPU1,2,CM,CLA,& DMA) |
5KB | Parity | N/A | |||
Total RAM | 249KB | 452KB | ||||
Per CPU Bank | 256KB (5 banks mappable between 2 C28 CPUs) | ECC | DCSM-controlled | 512KB (8 banks mappable between 3 CPUs) | ECC | |
Data Bank | N/A | 256KB | ECC | |||
HSM Firmware | 2*256KB | ECC | ||||
Total Flash | 1.28MB | 4.75MB |
In F29H85x, the architecture of the memory has changed. Every memory can be accessed by every CPU, but there are categorized and optimized sections of the RAM for better efficiency. There are program-optimized sections, LPAx and CPAx, while LPAx is optimized for CPU1/CPU2 and CPAx is optimized for CPU1/CPU3. Similarly, there are data-optimized sections with CPU1/CPU2 optimized (LDAx) and CPU1/CPU3 optimized (CDAx). In F28P65x, there is message RAM, and you do not see message RAM in F29H85x, but any memory can be used as CPU message RAM in our new device. It can be created out of the RAMS along with SSU.
The 128-bit memory controller enables zero wait states on program accesses. This allows data accesses, providing the ability to copy code, download code, and insert software breakpoints, which also utilize maximum parallelism of the CPU. The 64-bit LDx and CDx memory controller is similar to the 128-bit LPx and CPx memory controller, but the 64-bit memory controller has zero wait states on data access and one wait state on program access. Furthermore, RTDMA is connected through a slow access port, so all accesses are minimum one wait state. With RTDMA burst support, RTDMA supports local address generation within the MEMSS memory controller. This enables performance close to zero wait states.
RAM Section | Interleaved | CPU1 | CPU2 | CPU3 | HSM | RTDMA1 | RTDMA2 |
---|---|---|---|---|---|---|---|
LPAx RAM | Yes | 0WS program 1WS data |
0WS program 1WS data 1WS data |
3WS data | 1WS | 1WS | |
LDAx RAM | Yes | 1WS program 0WS data |
1WS program 0WS data |
3WS data | 2WS | 1WS | 1WS |
M0 RAM | Yes | 1WS program 0WS data |
1WS program 0WS data |
3WS data | 1WS | 1WS | |
CPAx RAM | Yes | 0WS program 1WS data |
3WS data | 0WS program 1WS data |
1WS | 1WS | |
CDAx RAM | Yes | 1WS program 0WS data |
3WS data | 1WS program 0WS data |
1WS | 1WS | |
CPU1 ROM | Yes | 1WS program 1WS data |
|||||
CPU2 ROM | Yes | 1WS program 1WS data |
|||||
CPU3 ROM | Yes | 1WS program 1WS data |
The atomic operations support in memory module is also an main improvement in F29H85x. Atomic operation executes a protected sequence of memory operations while preventing other memory initiators from interrupting. This sequence can involve reading and updating shared variables in memory, where there is a need to protect these variables from updates by other initiators, which means in multiple sequences, you need to set as atomic so that they can finish the access first and cannot be interrupted. Note that all RAMs have ECC protection with a 32-bit granularity. This means that every 32 bits has 7 bits of ECC.
In flash, there are 4 modes that you can choose from. It depends on how you want to allocate the flash with difference CPUS and whether you will need FOTA. Table 4-9 shows the different modes and how each of the solutions could be used.
Flash Mode | CPU1 | CPU3 |
---|---|---|
0 | 4MB | - |
1 | 4MB (with FOTA) | - |
2 | 2MB | 2MB |
3 | 2MB (with FOTA) | 2MB (with FOTA) |
Module | Category | F28P65x | F29H85x | Notes |
---|---|---|---|---|
Flash | Registers | - | 1_INTF_CLR | Flash Read Interface 1 Clear Register |
- | 1_INTF_CTRL | Flash Read Interface 1 Control Register | ||
- | 1_INTF_CTRL_COMMIT | Flash Read Interface 1 Control Commit Register | ||
- | 1_INTF_CTRL_LOCK | Flash Read Interface 1 Control Lock Register | ||
- | 2_INTF_CLR | Flash Read Interface 2 Clear Register | ||
- | 2_INTF_CTRL | Flash Read Interface 2 Control Register | ||
- | 2_INTF_CTRL_COMMIT | Flash Read Interface 2 Control Commit Register | ||
- | 2_INTF_CTRL_LOCK | Flash Read Interface 2 Control Lock Register | ||
- | 3_INTF_CLR | Flash Read Interface 3 Clear Register | ||
- | 3_INTF_CTRL | Flash Read Interface 3 Control Register | ||
- | 3_INTF_CTRL_COMMIT | Flash Read Interface 3 Control Commit Register | ||
3_INTF_CTRL_LOCK | Flash Read Interface 3 Control Lock Register | |||
- | 4_INTF_CLR | Flash Read Interface 4 Clear Register | ||
- | 4_INTF_CTRL | Flash Read Interface 4 Control Register | ||
- | 4_INTF_CTRL_COMMIT | Flash Read Interface 4 Control Commit Register | ||
- | 4_INTF_CTRL_LOCK | Flash Read Interface 4 Control Lock Register | ||
- | FRDCNTL_COMMIT | Flash Read Control Commit Register | ||
- | FRDCNTL_LOCK | Flash Read Control Lock Register | ||
- | PARITY_TEST_COMMIT | Parity Test Commit Register | ||
- | PARITY_TEST_LOCK | Parity Test Lock Register | ||
ECC_ENABLE | - | ECC Enable | ||
FECC_CTRL | - | ECC Control | ||
FLPROT | - | Flash program/erase protect register | ||
FRD_INTF_CTRL | - | Flash Read Interface Control Register |