SPNS174C April 2012 – June 2015 RM48L950
PRODUCTION DATA.
The device core logic is split up into multiple power domains in order to optimize the power for a given application use case. There are eight core power domains in total: PD1, PD2, PD3, PD4, PD5, RAM_PD1, RAM_PD2, and RAM_PD3.
The actual contents of these power domains are indicated in Section 1.4.
PD1 is an "always-ON" power domain, which cannot be turned off. Each of the other core power domains can be turned ON/OFF one time during device initialization as per the application requirement. Refer to the Power Management Module (PMM) chapter of RM48x Technical Reference Manual (SPNU503) for more details.
NOTE
The clocks to a module must be turned off before powering down the core domain that contains the module.
NOTE
The logic in the modules that are powered down lose power completely. Any access to modules that are powered down results in an abort being generated. When power is restored, the modules power up to their default states (after normal power up). No register or memory contents are preserved in the core domains that are turned off.
A voltage monitor is implemented on this device. The purpose of this voltage monitor is to eliminate the requirement for a specific sequence when powering up the core and I/O voltage supplies.
The voltage monitor generates the Power Good MCU signal (PGMCU) as well as the I/Os Power Good IO signal (PGIO) on the device. During power-up or power-down processes, the PGMCU and PGIO are driven low when the core or I/O supplies are lower than the specified minimum monitoring thresholds. The PGIO and PGMCU being low isolates the core logic as well as the I/O controls during power up or power down of the supplies. This allows the core and I/O supplies to be powered up or down in any order.
When the voltage monitor detects a low voltage on the I/O supply, it will assert a power-on reset. When the voltage monitor detects an out-of-range voltage on the core supply, it asynchronously makes all output pins high impedance, and asserts a power-on reset. The voltage monitor is disabled when the device enters a low-power mode.
The VMON also incorporates a glitch filter for the nPORRST input. Refer to Section 6.3.3.1 for the timing information on this glitch filter.
PARAMETER | MIN | TYP | MAX | UNIT | ||
---|---|---|---|---|---|---|
VMON | Voltage monitoring thresholds |
VCC low - VCC level below this threshold is detected as too low. | 0.75 | 0.9 | 1.13 | V |
VCC high - VCC level above this threshold is detected as too high. | 1.40 | 1.7 | 2.1 | |||
VCCIO low - VCCIO level below this threshold is detected as too low. | 1.85 | 2.4 | 2.9 |
The VMON has the capability to filter glitches on the VCC and VCCIO supplies.
Table 6-2 shows the characteristics of the supply filtering. Glitches in the supply larger than the maximum specification cannot be filtered.
PARAMETER | MIN | MAX | UNIT |
---|---|---|---|
Width of glitch on VCC that can be filtered | 250 | 1000 | ns |
Width of glitch on VCCIO that can be filtered | 250 | 1000 | ns |
There is no timing dependency between the ramp of the VCCIO and the VCC supply voltage. The power-up sequence starts with the I/O voltage rising above the minimum I/O supply threshold, (see Table 6-4 for more details), core voltage rising above the minimum core supply threshold and the release of power-on reset. The high-frequency oscillator will start up first and its amplitude will grow to an acceptable level. The oscillator start up time is dependent on the type of oscillator and is provided by the oscillator vendor. The different supplies to the device can be powered up in any order.
The device goes through the following sequential phases during power up.
Oscillator start-up and validity check | 1032 oscillator cycles |
eFuse autoload | 1180 oscillator cycles |
Flash pump power up | 688 oscillator cycles |
Flash bank power up | 617 oscillator cycles |
Total | 3517 oscillator cycles |
The CPU reset is released at the end of the sequence in Table 6-3 and fetches the first instruction from address 0x00000000.
The different supplies to the device can be powered down in any order.
This is the power-on reset. This reset must be asserted by an external circuitry whenever the I/O or core supplies are outside the specified recommended range. This signal has a glitch filter on it. It also has an internal pulldown.
NO. | PARAMETER | MIN | MAX | UNIT | |
---|---|---|---|---|---|
VCCPORL | VCC low supply level when nPORRST must be active during power up | 0.5 | V | ||
VCCPORH | VCC high supply level when nPORRST must remain active during power up and become active during power down | 1.14 | V | ||
VCCIOPORL | VCCIO / VCCP low supply level when nPORRST must be active during power up | 1.1 | V | ||
VCCIOPORH | VCCIO / VCCP high supply level when nPORRST must remain active during power up and become active during power down | 3.0 | V | ||
VIL(PORRST) | Low-level input voltage of nPORRST VCCIO > 2.5V | 0.2 * VCCIO | V | ||
Low-level input voltage of nPORRST VCCIO < 2.5V | 0.5 | V | |||
3 | tsu(PORRST) | Setup time, nPORRST active before VCCIO and VCCP > VCCIOPORL during power up | 0 | ms | |
6 | th(PORRST) | Hold time, nPORRST active after VCC > VCCPORH | 1 | ms | |
7 | tsu(PORRST) | Setup time, nPORRST active before VCC < VCCPORH during power down | 2 | µs | |
8 | th(PORRST) | Hold time, nPORRST active after VCCIO and VCCP > VCCIOPORH | 1 | ms | |
9 | th(PORRST) | Hold time, nPORRST active after VCC < VCCPORL | 0 | ms | |
tf(nPORRST) |
Filter time nPORRST pin; pulses less than MIN will be filtered out, pulses greater than MAX will generate a reset. |
500 | 2000 | ns |
This is a bidirectional reset signal. The internal circuitry drives the signal low on detecting any device reset condition. An external circuit can assert a device reset by forcing the signal low. On this terminal, the output buffer is implemented as an open drain (drives low only). To ensure an external reset is not arbitrarily generated, TI recommends that an external pullup resistor is connected to this terminal.
This terminal has a glitch filter. It also has an internal pullup
DEVICE EVENT | SYSTEM STATUS FLAG |
---|---|
Power-Up Reset | Exception Status Register, bit 15 |
Oscillator fail | Global Status Register, bit 0 |
PLL slip | Global Status Register, bits 8 and 9 |
Watchdog exception / Debugger reset | Exception Status Register, bit 13 |
CPU Reset (driven by the CPU STC) | Exception Status Register, bit 5 |
Software Reset | Exception Status Register, bit 4 |
External Reset | Exception Status Register, bit 3 |
MIN | MAX | UNIT | ||
---|---|---|---|---|
tv(RST) | Valid time, nRST active after nPORRST inactive | 2256tc(OSC)(1) | ns | |
Valid time, nRST active (all other System reset conditions) | 32tc(VCLK) | |||
tf(nRST) | Filter time nRST pin; pulses less than MIN will be filtered out; pulses greater than MAX will generate a reset. See Section 6.8. | 475 | 2000 | ns |
The features of the ARM Cortex-R4F CPU include:
For more information on the ARM Cortex-R4F CPU see www.arm.com.
The following CPU features are disabled on reset and must be enabled by the application if required.
The device has two Cortex-R4F cores, where the output signals of both CPUs are compared in the CCM-R4 unit. To avoid common mode impacts the signals of the CPUs to be compared are delayed by two clock cycles as shown in Figure 6-3.
The CPUs have a diverse CPU placement given by following requirements:
The CPU clock domain is split into two clock trees, one for each CPU, with the clock of the second CPU running at the same frequency and in phase to the clock of CPU1. See Figure 6-3.
This device has two ARM Cortex-R4F CPU cores, where the output signals of both CPUs are compared in the CCM-R4 unit. To avoid common mode impacts the signals of the CPUs to be compared are delayed in a different way as shown in Figure 6-3.
To avoid an erroneous CCM-R4 compare error, the application software must initialize the registers of both CPUs before the registers are used, including function calls where the register values are pushed onto the stack.
The CPU STC (Self-Test Controller) is used to test the two Cortex-R4F CPU Cores using the Deterministic Logic BIST Controller as the test engine.
The main features of the self-test controller are:
For more information see the device specific technical reference manual.
The maximum clock rate for the self-test is 100 MHz. The STCCLK is divided down from the CPU clock. This divider is configured by the STCCLKDIV register at address 0xFFFFE108.
For more information see the device specific technical reference manual.
Table 6-7 shows CPU test coverage achieved for each self-test interval. It also lists the cumulative test cycles. The test time can be calculated by multiplying the number of test cycles with the STC clock period.
INTERVALS | TEST COVERAGE, % | TEST CYCLES |
---|---|---|
0 | 0 | 0 |
1 | 62.13 | 1365 |
2 | 70.09 | 2730 |
3 | 74.49 | 4095 |
4 | 77.28 | 5460 |
5 | 79.28 | 6825 |
6 | 80.90 | 8190 |
7 | 82.02 | 9555 |
8 | 83.10 | 10920 |
9 | 84.08 | 12285 |
10 | 84.87 | 13650 |
11 | 85.59 | 15015 |
12 | 86.11 | 16380 |
13 | 86.67 | 17745 |
14 | 87.16 | 19110 |
15 | 87.61 | 20475 |
16 | 87.98 | 21840 |
17 | 88.38 | 23205 |
18 | 88.69 | 24570 |
19 | 88.98 | 25935 |
20 | 89.28 | 27300 |
21 | 89.50 | 28665 |
22 | 89.76 | 30030 |
23 | 90.01 | 31395 |
24 | 90.21 | 32760 |
Table 6-8 lists the available clock sources on the device. Each of the clock sources can be enabled or disabled using the CSDISx registers in the system module. The clock source number in the table corresponds to the control bit in the CSDISx register for that clock source.
Table 6-8 also shows the default state of each clock source.
CLOCK SOURCE NO. |
NAME | DESCRIPTION | DEFAULT STATE |
---|---|---|---|
0 | OSCIN | Main Oscillator | Enabled |
1 | PLL1 | Output From PLL1 | Disabled |
2 | Reserved | Reserved | Disabled |
3 | EXTCLKIN1 | External Clock Input #1 | Disabled |
4 | CLK80K | Low-Frequency Output of Internal Reference Oscillator | Enabled |
5 | CLK10M | High-Frequency Output of Internal Reference Oscillator | Enabled |
6 | PLL2 | Output From PLL2 | Disabled |
7 | EXTCLKIN2 | External Clock Input #2 | Disabled |
The oscillator is enabled by connecting the appropriate fundamental resonator/crystal and load capacitors across the external OSCIN and OSCOUT pins as shown in Figure 6-4. The oscillator is a single stage inverter held in bias by an integrated bias resistor. This resistor is disabled during leakage test measurement and low power modes.
TI strongly encourages each customer to submit samples of the device to the resonator/crystal vendors for validation. The vendors are equipped to determine what load capacitors will best tune their resonator/crystal to the microcontroller device for optimum start-up and operation over temperature/voltage extremes.
An external oscillator source can be used by connecting a 3.3-V clock signal to the OSCIN pin and leaving the OSCOUT pin unconnected (open) as shown in Figure 6-4.
MIN | MAX | UNIT | ||
---|---|---|---|---|
tc(OSC) | Cycle time, OSCIN (when using a sine-wave input) | 50 | 200 | ns |
tc(OSC_SQR) | Cycle time, OSCIN, (when input to the OSCIN is a square wave ) | 50 | 200 | ns |
tw(OSCIL) | Pulse duration, OSCIN low (when input to the OSCIN is a square wave) | 6 | ns | |
tw(OSCIH) | Pulse duration, OSCIN high (when input to the OSCIN is a square wave) | 6 | ns |
The LPO is comprised of two oscillators — HF LPO and LF LPO, in a single macro.
The main features of the LPO are:
Figure 6-5 shows a block diagram of the internal reference oscillator. This is an LPO and provides two clock sources: one nominally 80 kHz and one nominally 10 MHz.
The PLL is used to multiply the input frequency to some higher frequency.
The main features of the PLL are:
Figure 6-6 shows a high-level block diagram of the two PLL macros on this microcontroller. PLLCTL1 and PLLCTL2 are used to configure the multiplier and dividers for the PLL1. PLLCTL3 is used to configure the multiplier and dividers for PLL2.
PARAMETER | MIN | MAX | UNIT | |
---|---|---|---|---|
fINTCLK | PLL1 Reference Clock frequency | 1 | 20 | MHz |
fpost_ODCLK | Post-ODCLK – PLL1 Post-divider input clock frequency | 400 | MHz | |
fVCOCLK | VCOCLK – PLL1 Output Divider (OD) input clock frequency | 150 | 550 | MHz |
fINTCLK2 | PLL2 Reference Clock frequency | 1 | 20 | MHz |
fpost_ODCLK2 | Post-ODCLK – PLL2 Post-divider input clock frequency | 400 | MHz | |
fVCOCLK2 | VCOCLK – PLL2 Output Divider (OD) input clock frequency | 150 | 550 | MHz |
The device supports up to two external clock inputs. This clock input must be a square wave input. The electrical and timing requirements for these clock inputs are specified in Table 6-12. The external clock sources are not checked for validity. They are assumed valid when enabled.
PARAMETER | DESCRIPTION | MIN | MAX | UNIT |
---|---|---|---|---|
fEXTCLKx | External clock input frequency | 80 | MHz | |
tw(EXTCLKIN)H | EXTCLK high-pulse duration | 6 | ns | |
tw(EXTCLKIN)L | EXTCLK low-pulse duration | 6 | ns | |
viL(EXTCLKIN) | Low-level input voltage | -0.3 | 0.8 | V |
viH(EXTCLKIN) | High-level input voltage | 2 | VCCIO + 0.3 | V |
Table 6-13 lists the device clock domains and their default clock sources. The table also shows the system module control register that is used to select an available clock source for each clock domain.
Each clock domain has a dedicated functionality as shown in Figure 6-7.
The RM4x platform architecture defines a special mode that allows various clock signals to be brought out on to the ECLK pin and N2HET1[12] device outputs. This mode is called the Clock Test mode. It is very useful for debugging purposes and can be configured through the CLKTEST register in the system module.
SEL_ECP_PIN = CLKTEST[3-0] |
SIGNAL ON ECLK | SEL_GIO_PIN = CLKTEST[11-8] |
SIGNAL ON N2HET1[12] | |
---|---|---|---|---|
0000 | Oscillator | 0000 | Oscillator Valid Status | |
0001 | Main PLL free-running clock output | 0001 | Main PLL Valid status | |
0010 | Reserved | 0010 | Reserved | |
0011 | EXTCLKIN1 | 0011 | Reserved | |
0100 | CLK80K | 0100 | Reserved | |
0101 | CLK10M | 0101 | CLK10M Valid status | |
0110 | Secondary PLL free-running clock output | 0110 | Secondary PLL Valid Status | |
0111 | EXTCLKIN2 | 0111 | Reserved | |
1000 | GCLK | 1000 | CLK80K | |
1001 | RTI Base | 1001 | Reserved | |
1010 | Reserved | 1010 | Reserved | |
1011 | VCLKA1 | 1011 | Reserved | |
1100 | Reserved | 1100 | Reserved | |
1101 | VCLKA3 | 1101 | Reserved | |
1110 | VCLKA4 | 1110 | Reserved | |
1111 | Reserved | 1111 | Reserved |
The LPO Clock Detect (LPOCLKDET) module consists of a clock monitor (CLKDET) and an internal LPO.
The LPO provides two different clock sources – a low frequency (LFLPO) and a high frequency (HFLPO).
The CLKDET is a supervisor circuit for an externally supplied clock signal (OSCIN). In case the OSCIN frequency falls out of a frequency window, the CLKDET flags this condition in the global status register (GLBSTAT bit 0: OSC FAIL) and switches all clock domains sourced by OSCIN to the HFLPO clock (limp mode clock).
The valid OSCIN frequency range is defined as: fHFLPO / 4 < fOSCIN < fHFLPO * 4.
The ECLK pin can be configured to output a prescaled clock signal indicative of an internal device clock. This output can be externally monitored as a safety diagnostic.
The Dual Clock Comparator (DCC) module determines the accuracy of selectable clock sources by counting the pulses of two independent clock sources (counter 0 and counter 1). If one clock is out of spec, an error signal is generated. For example, the DCC1 can be configured to use CLK10M as the reference clock (for counter 0) and VCLK as the "clock under test" (for counter 1). This configuration allows the DCC1 to monitor the PLL output clock when VCLK is using the PLL output as its source.
An additional use of this module is to measure the frequency of a selectable clock source, using the input clock as a reference, by counting the pulses of two independent clock sources. Counter 0 generates a fixed-width counting window after a preprogrammed number of pulses. Counter 1 generates a fixed-width pulse (1 cycle) after a preprogrammed number of pulses. This pulse sets as an error signal if counter 1 does not reach 0 within the counting window generated by counter 0.
CLOCK SOURCE [3:0] | CLOCK NAME |
---|---|
Others | Oscillator (OSCIN) |
0x5 | High-frequency LPO |
0xA | Test clock (TCK) |
KEY [3:0] | CLOCK SOURCE [3:0] | CLOCK NAME |
---|---|---|
Others | - | N2HET1[31] |
0x0 | Main PLL free-running clock output | |
0x1 | reserved | |
0x2 | Low-frequency LPO | |
0xA | 0x3 | High-frequency LPO |
0x4 | Flash HD pump oscillator | |
0x5 | EXTCLKIN1 | |
0x6 | EXTCLKIN2 | |
0x7 | Ring oscillator | |
0x8 - 0xF | VCLK |
CLOCK SOURCE [3:0] | CLOCK NAME |
---|---|
Others | Oscillator (OSCIN) |
0xA | Test clock (TCK) |
KEY [3:0] | CLOCK SOURCE [3:0] | CLOCK NAME |
---|---|---|
Others | - | N2HET2[0] |
0xA | 00x0 - 0x7 | Reserved |
0x8 - 0xF | VCLK |
A glitch filter is present on the following signals.
PIN | PARAMETER | MIN | MAX | UNIT | |
---|---|---|---|---|---|
nPORRST | tf(nPORRST) |
Filter time nPORRST pin; pulses less than MIN will be filtered out, pulses greater than MAX will generate a reset(1) |
475 | 2000 | ns |
nRST | tf(nRST) |
Filter time nRST pin; pulses less than MIN will be filtered out, pulses greater than MAX will generate a reset |
475 | 2000 | ns |
TEST | tf(TEST) |
Filter time TEST pin; pulses less than MIN will be filtered out, pulses greater than MAX will pass through |
475 | 2000 | ns |
The figures below show the device memory maps.
The Flash memory is mirrored to support ECC logic testing. The base address of the mirrored Flash image is 0x20000000.
MODULE NAME | FRAME CHIP SELECT | FRAME ADDRESS RANGE | FRAME SIZE | ACTUAL SIZE | RESPONSE FOR ACCESS TO UNIMPLEMENTED LOCATIONS IN FRAME | |
---|---|---|---|---|---|---|
START | END | |||||
MEMORIES TIGHTLY COUPLED TO THE ARM CORTEX-R4F CPU | ||||||
TCM Flash | CS0 | 0x00000000 | 0x00FFFFFF | 16MB | 3MB(2) | Abort |
TCM RAM + RAM ECC | CSRAM0 | 0x08000000 | 0x0BFFFFFF | 64MB | 256KB(1) | |
Mirrored Flash | Flash mirror frame | 0x20000000 | 0x20FFFFFF | 16MB | 3MB(2) | |
EXTERNAL MEMORY ACCESSES | ||||||
EMIF Chip Select 2 (asynchronous) | EMIF select 2 | 0x60000000 | 0x63FFFFFF | 64MB | 16MB | Access to "Reserved" space will generate Abort |
EMIF Chip Select 3 (asynchronous) | EMIF select 3 | 0x64000000 | 0x67FFFFFF | 64MB | 16MB | |
EMIF Chip Select 4 (asynchronous) | EMIF select 4 | 0x68000000 | 0x6BFFFFFF | 64MB | 16MB | |
EMIF Chip Select 0 (synchronous) | EMIF select 0 | 0x80000000 | 0x87FFFFFF | 128MB | 128MB | |
FLASH MODULE BUS2 INTERFACE | ||||||
Customer OTP, TCM Flash Bank 0 | 0xF0000000 | 0xF0001FFF | 8KB | 4KB | Abort | |
Customer OTP, TCM Flash Bank 1 | 0xF0002000 | 0xF0003FFF | 8KB | 4KB | ||
Customer OTP, EEPROM Bank 7 | 0xF000E000 | 0xF000FFFF | 8KB | 2KB | ||
Customer OTP–ECC, TCM Flash Bank 0 | 0xF0040000 | 0xF00403FF | 1KB | 512B | ||
Customer OTP–ECC, TCM Flash Bank 1 | 0xF0040400 | 0xF00407FF | 1KB | 512B | ||
Customer OTP–ECC, EEPROM Bank 7 | 0xF0041C00 | 0xF0041FFF | 1KB | 256B | ||
TI OTP, TCM Flash Bank 0 | 0xF0080000 | 0xF0081FFF | 8KB | 4KB | ||
TI OTP, TCM Flash Bank 1 | 0xF0082000 | 0xF0083FFF | 8KB | 4KB | ||
TI OTP, EEPROM Bank 7 | 0xF008E000 | 0xF008FFFF | 8KB | 2KB | ||
TI OTP–ECC, TCM Flash Bank 0 | 0xF00C0000 | 0xF00C03FF | 1KB | 512B | ||
TI OTP–ECC, TCM Flash Bank 1 | 0xF00C0400 | 0xF00C07FF | 1KB | 512B | ||
TI OTP–ECC, EEPROM Bank 7 | 0xF00C1C00 | 0xF00C1FFF | 1KB | 256B | ||
EEPROM Bank–ECC | 0xF0100000 | 0xF013FFFF | 256KB | 8KB | ||
EEPROM Bank | 0xF0200000 | 0xF03FFFFF | 2MB | 64KB | ||
Flash Data Space ECC | 0xF0400000 | 0xF04FFFFF | 1MB | 384KB | ||
ETHERNET AND EMIF SLAVE INTERFACES | ||||||
CPPI Memory Slave (Ethernet RAM) | 0xFC520000 | 0xFC521FFF | 8KB | 8KB | Abort | |
EMAC Slave (Ethernet Slave) | 0xFCF78000 | 0xFCF787FF | 2KB | 2KB | No error | |
EMACSS Wrapper (Ethernet Wrapper) | 0xFCF78800 | 0xFCF788FF | 256B | 256B | No error | |
Ethernet MDIO Interface | 0xFCF78900 | 0xFCF789FF | 256B | 256B | No error | |
W2FC (USB device controller registers) | 0xFCF78A00 | 0xFCF78A7F | 128B | 128B | Abort | |
OHCI (USB Host controller registers) | 0xFCF78B00 | 0xFCF78BFF | 256B | 256B | Abort | |
EMIF Registers | 0xFCFFE800 | 0xFCFFE8FF | 256B | 256B | Abort | |
CYCLIC REDUNDANCY CHECKER (CRC) MODULE REGISTERS | ||||||
CRC | CRC frame | 0xFE000000 | 0xFEFFFFFF | 16MB | 512B | Accesses above 0x200 generate abort. |
PERIPHERAL MEMORIES | ||||||
MIBSPI5 RAM | PCS[5] | 0xFF0A0000 | 0xFF0BFFFF | 128KB | 2KB | Abort for accesses above 2KB |
MIBSPI3 RAM | PCS[6] | 0xFF0C0000 | 0xFF0DFFFF | 128KB | 2KB | Abort for accesses above 2KB |
MIBSPI1 RAM | PCS[7] | 0xFF0E0000 | 0xFF0FFFFF | 128KB | 2KB | Abort for accesses above 2KB |
DCAN3 RAM | PCS[13] | 0xFF1A0000 | 0xFF1BFFFF | 128KB | 2KB | Wrap around for accesses to unimplemented address offsets lower than 0x7FF. Abort generated for accesses beyond offset 0x800. |
DCAN2 RAM | PCS[14] | 0xFF1C0000 | 0xFF1DFFFF | 128KB | 2KB | Wrap around for accesses to unimplemented address offsets lower than 0x7FF. Abort generated for accesses beyond offset 0x800. |
DCAN1 RAM | PCS[15] | 0xFF1E0000 | 0xFF1FFFFF | 128KB | 2KB | Wrap around for accesses to unimplemented address offsets lower than 0x7FF. Abort generated for accesses beyond offset 0x800. |
MIBADC2 RAM | PCS[29] | 0xFF3A0000 | 0xFF3BFFFF | 128KB | 8KB | Wrap around for accesses to unimplemented address offsets lower than 0x1FFF. Abort generated for accesses beyond 0x1FFF. |
MIBADC1 RAM | PCS[31] | 0xFF3E0000 | 0xFF3FFFFF | 128KB | 8KB | Wrap around for accesses to unimplemented address offsets lower than 0x1FFF. Abort generated for accesses beyond 0x1FFF. |
N2HET2 RAM | PCS[34] | 0xFF440000 | 0xFF45FFFF | 128KB | 16KB | Wrap around for accesses to unimplemented address offsets lower than 0x3FFF. Abort generated for accesses beyond 0x3FFF. |
N2HET1 RAM | PCS[35] | 0xFF460000 | 0xFF47FFFF | 128KB | 16KB | Wrap around for accesses to unimplemented address offsets lower than 0x3FFF. Abort generated for accesses beyond 0x3FFF. |
HTU2 RAM | PCS[38] | 0xFF4C0000 | 0xFF4DFFFF | 128KB | 1KB | Abort |
HTU1 RAM | PCS[39] | 0xFF4E0000 | 0xFF4FFFFF | 128KB | 1KB | Abort |
DEBUG COMPONENTS | ||||||
CoreSight Debug ROM | CSCS0 | 0xFFA00000 | 0xFFA00FFF | 4KB | 4KB | Reads: 0, writes: no effect |
Cortex-R4F Debug | CSCS1 | 0xFFA01000 | 0xFFA01FFF | 4KB | 4KB | Reads: 0, writes: no effect |
ETM-R4 | CSCS2 | 0xFFA02000 | 0xFFA02FFF | 4KB | 4KB | Reads: 0, writes: no effect |
CoreSight TPIU | CSCS3 | 0xFFA03000 | 0xFFA03FFF | 4KB | 4KB | Reads: 0, writes: no effect |
POM | CSCS4 | 0xFFA04000 | 0xFFA04FFF | 4KB | 4KB | Abort |
PERIPHERAL CONTROL REGISTERS | ||||||
HTU1 | PS[22] | 0xFFF7A400 | 0xFFF7A4FF | 256B | 256B | Reads: 0, writes: no effect |
HTU2 | PS[22] | 0xFFF7A500 | 0xFFF7A5FF | 256B | 256B | Reads: 0, writes: no effect |
N2HET1 | PS[17] | 0xFFF7B800 | 0xFFF7B8FF | 256B | 256B | Reads: 0, writes: no effect |
N2HET2 | PS[17] | 0xFFF7B900 | 0xFFF7B9FF | 256B | 256B | Reads: 0, writes: no effect |
GPIO | PS[16] | 0xFFF7BC00 | 0xFFF7BCFF | 256B | 256B | Reads: 0, writes: no effect |
MIBADC1 | PS[15] | 0xFFF7C000 | 0xFFF7C1FF | 512B | 512B | Reads: 0, writes: no effect |
MIBADC2 | PS[15] | 0xFFF7C200 | 0xFFF7C3FF | 512B | 512B | Reads: 0, writes: no effect |
I2C | PS[10] | 0xFFF7D400 | 0xFFF7D4FF | 256B | 256B | Reads: 0, writes: no effect |
DCAN1 | PS[8] | 0xFFF7DC00 | 0xFFF7DDFF | 512B | 512B | Reads: 0, writes: no effect |
DCAN2 | PS[8] | 0xFFF7DE00 | 0xFFF7DFFF | 512B | 512B | Reads: 0, writes: no effect |
DCAN3 | PS[7] | 0xFFF7E000 | 0xFFF7E1FF | 512B | 512B | Reads: 0, writes: no effect |
LIN | PS[6] | 0xFFF7E400 | 0xFFF7E4FF | 256B | 256B | Reads: 0, writes: no effect |
SCI | PS[6] | 0xFFF7E500 | 0xFFF7E5FF | 256B | 256B | Reads: 0, writes: no effect |
MibSPI1 | PS[2] | 0xFFF7F400 | 0xFFF7F5FF | 512B | 512B | Reads: 0, writes: no effect |
SPI2 | PS[2] | 0xFFF7F600 | 0xFFF7F7FF | 512B | 512B | Reads: 0, writes: no effect |
MibSPI3 | PS[1] | 0xFFF7F800 | 0xFFF7F9FF | 512B | 512B | Reads: 0, writes: no effect |
SPI4 | PS[1] | 0xFFF7FA00 | 0xFFF7FBFF | 512B | 512B | Reads: 0, writes: no effect |
MibSPI5 | PS[0] | 0xFFF7FC00 | 0xFFF7FDFF | 512B | 512B | Reads: 0, writes: no effect |
SYSTEM MODULES CONTROL REGISTERS AND MEMORIES | ||||||
DMA RAM | PPCS0 | 0xFFF80000 | 0xFFF80FFF | 4KB | 4KB | Abort |
VIM RAM | PPCS2 | 0xFFF82000 | 0xFFF82FFF | 4KB | 1KB | Wrap around for accesses to unimplemented address offsets between 1kB and 4kB. |
RTP RAM | PPCS3 | 0xFFF83000 | 0xFFF83FFF | 4KB | 4KB | Abort |
Flash Module | PPCS7 | 0xFFF87000 | 0xFFF87FFF | 4KB | 4KB | Abort |
eFuse Controller | PPCS12 | 0xFFF8C000 | 0xFFF8CFFF | 4KB | 4KB | Abort |
Power Management Module (PMM) | PPSE0 | 0xFFFF0000 | 0xFFFF01FF | 512B | 512B | Abort |
Test Controller (FMTM) | PPSE1 | 0xFFFF0400 | 0xFFFF07FF | 1KB | 1KB | Reads: 0, writes: no effect |
PCR registers | PPS0 | 0xFFFFE000 | 0xFFFFE0FF | 256B | 256B | Reads: 0, writes: no effect |
System Module - Frame 2 (see device TRM) | PPS0 | 0xFFFFE100 | 0xFFFFE1FF | 256B | 256B | Reads: 0, writes: no effect |
PBIST | PPS1 | 0xFFFFE400 | 0xFFFFE5FF | 512B | 512B | Reads: 0, writes: no effect |
STC | PPS1 | 0xFFFFE600 | 0xFFFFE6FF | 256B | 256B | Generates address error interrupt, if enabled |
IOMM Multiplexing Control Module | PPS2 | 0xFFFFEA00 | 0xFFFFEBFF | 512B | 512B | Reads: 0, writes: no effect |
DCC1 | PPS3 | 0xFFFFEC00 | 0xFFFFECFF | 256B | 256B | Reads: 0, writes: no effect |
DMA | PPS4 | 0xFFFFF000 | 0xFFFFF3FF | 1KB | 1KB | Reads: 0, writes: no effect |
DCC2 | PPS5 | 0xFFFFF400 | 0xFFFFF4FF | 256B | 256B | Reads: 0, writes: no effect |
ESM | PPS5 | 0xFFFFF500 | 0xFFFFF5FF | 256B | 256B | Reads: 0, writes: no effect |
CCMR4 | PPS5 | 0xFFFFF600 | 0xFFFFF6FF | 256B | 256B | Reads: 0, writes: no effect |
DMM | PPS5 | 0xFFFFF700 | 0xFFFFF7FF | 256B | 256B | Reads: 0, writes: no effect |
RAM ECC even | PPS6 | 0xFFFFF800 | 0xFFFFF8FF | 256B | 256B | Reads: 0, writes: no effect |
RAM ECC odd | PPS6 | 0xFFFFF900 | 0xFFFFF9FF | 256B | 256B | Reads: 0, writes: no effect |
RTP | PPS6 | 0xFFFFFA00 | 0xFFFFFAFF | 256B | 256B | Reads: 0, writes: no effect |
RTI + DWWD | PPS7 | 0xFFFFFC00 | 0xFFFFFCFF | 256B | 256B | Reads: 0, writes: no effect |
VIM Parity | PPS7 | 0xFFFFFD00 | 0xFFFFFDFF | 256B | 256B | Reads: 0, writes: no effect |
VIM | PPS7 | 0xFFFFFE00 | 0xFFFFFEFF | 256B | 256B | Reads: 0, writes: no effect |
System Module - Frame 1 (see device TRM) | PPS7 | 0xFFFFFF00 | 0xFFFFFFFF | 256B | 256B | Reads: 0, writes: no effect |
Table 6-21 lists the access permissions for each bus master on the device. A bus master is a module that can initiate a read or a write transaction on the device.
Each slave module on the main interconnect is listed in the table. A "Yes" indicates that the module listed in the "MASTERS" column can access that slave module.
MASTERS | ACCESS MODE | SLAVES ON MAIN SCR | ||||
---|---|---|---|---|---|---|
Flash Module Bus2 Interface: OTP, ECC, EEPROM Bank |
Non-CPU Accesses to Program Flash and CPU Data RAM | CRC | EMIF, Ethernet, USB Slave Interfaces | Peripheral Control Registers, All Peripheral Memories, And All System Module Control Registers And Memories | ||
CPU READ | User/Privilege | Yes | Yes | Yes | Yes | Yes |
CPU WRITE | User/Privilege | No | Yes | Yes | Yes | Yes |
DMA | User | Yes | Yes | Yes | Yes | Yes |
POM | User | Yes | Yes | Yes | Yes | Yes |
DMM | User | Yes | Yes | Yes | Yes | Yes |
DAP | Privilege | Yes | Yes | Yes | Yes | Yes |
HTU1 | Privilege | No | Yes | Yes | Yes | Yes |
HTU2 | Privilege | No | Yes | Yes | Yes | Yes |
EMAC DMA | User | No | Yes | No | Yes | No |
OHCI | User | No | Yes | No | Yes | No |
Write accesses to the Power Domain Management Module (PMM) control registers are limited to the CPU (master id = 1). The other masters can only read from these registers.
A debugger can also write to the PMM registers. The master-id check is disabled in debug mode.
The device contains dedicated logic to generate a bus error response on any access to a module that is in a power domain that has been turned OFF.
Flash Bank: A separate block of logic consisting of 1 to 16 sectors. Each flash bank normally has a customer-OTP and a TI-OTP area. These flash sectors share input/output buffers, data paths, sense amplifiers, and control logic.
Flash Sector: A contiguous region of flash memory which must be erased simultaneously due to physical construction constraints.
Flash Pump: A charge pump which generates all the voltages required for reading, programming, or erasing the flash banks.
Flash Module: Interface circuitry required between the host CPU and the flash banks and pump module.
MEMORY ARRAYS (OR BANKS)(1) | SECTOR NO. |
SEGMENT (BYTES) |
LOW ADDRESS | HIGH ADDRESS |
---|---|---|---|---|
BANK0 (1.5MB) | 0 | 32KB | 0x00000000 | 0x00007FFF |
1 | 32KB | 0x00008000 | 0x0000FFFF | |
2 | 32KB | 0x00010000 | 0x00017FFF | |
3 | 32KB | 0x00018000 | 0x0001FFFF | |
4 | 128KB | 0x00020000 | 0x0003FFFF | |
5 | 128KB | 0x00040000 | 0x0005FFFF | |
6 | 128KB | 0x00060000 | 0x0007FFFF | |
7 | 128KB | 0x00080000 | 0x0009FFFF | |
8 | 128KB | 0x000A0000 | 0x000BFFFF | |
9 | 128KB | 0x000C0000 | 0x000DFFFF | |
10 | 128KB | 0x000E0000 | 0x000FFFFF | |
11 | 128KB | 0x00100000 | 0x0011FFFF | |
12 | 128KB | 0x00120000 | 0x0013FFFF | |
13 | 128KB | 0x00140000 | 0x0015FFFF | |
14 | 128KB | 0x00160000 | 0x0017FFFF | |
BANK1 (1.5MB) | 0 | 128KB | 0x00180000 | 0x0019FFFF |
1 | 128KB | 0x001A0000 | 0x001BFFFF | |
2 | 128KB | 0x001C0000 | 0x001DFFFF | |
3 | 128KB | 0x001E0000 | 0x001FFFFF | |
(3MB devices only) | 4 | 128KB | 0x00200000 | 0x0021FFFF |
5 | 128KB | 0x00220000 | 0x0023FFFF | |
6 | 128KB | 0x00240000 | 0x0025FFFF | |
7 | 128KB | 0x00260000 | 0x0027FFFF | |
8 | 128KB | 0x00280000 | 0x0029FFFF | |
9 | 128KB | 0x002A0000 | 0x002BFFFF | |
10 | 128KB | 0x002C0000 | 0x002DFFFF | |
11 | 128KB | 0x002E0000 | 0x002FFFFF | |
BANK7 (64KB) for EEPROM emulation(2)(3) | 0 | 16KB | 0xF0200000 | 0xF0203FFF |
1 | 16KB | 0xF0204000 | 0xF0207FFF | |
2 | 16KB | 0xF0208000 | 0xF020BFFF | |
3 | 16KB | 0xF020C000 | 0xF020FFFF |
All accesses to the program flash memory are protected by Single Error Correction Double Error Detection (SECDED) logic embedded inside the CPU. The flash module provides 8 bits of ECC code for 64 bits of instructions or data fetched from the flash memory. The CPU calculates the expected ECC code based on the 64 bits received and compares it with the ECC code returned by the flash module. A single-bit error is corrected and flagged by the CPU, while a multibit error is only flagged. The CPU signals an ECC error via its Event bus. This signaling mechanism is not enabled by default and must be enabled by setting the 'X' bit of the Performance Monitor Control Register, c9.
MRC p15,#0,r1,c9,c12,#0 ;Enabling Event monitor states
ORR r1, r1, #0x00000010
MCR p15,#0,r1,c9,c12,#0 ;Set 4th bit (‘X’) of PMNC register
MRC p15,#0,r1,c9,c12,#0
The application must also explicitly enable the CPU's ECC checking for accesses on the CPU's ATCM and BTCM interfaces. These are connected to the program flash and data RAM respectively. ECC checking for these interfaces can be done by setting the B1TCMPCEN, B0TCMPCEN and ATCMPCEN bits of the System Control coprocessor's Auxiliary Control Register, c1.
MRC p15, #0, r1, c1, c0, #1
ORR r1, r1, #0x0e000000 ;Enable ECC checking for ATCM and BTCMs
DMB
MCR p15, #0, r1, c1, c0, #1
For information on flash memory access speeds and the relevant wait states required, refer to Section 5.6.
PARAMETER | MIN | NOM | MAX | UNIT | ||
---|---|---|---|---|---|---|
tprog (144bit) | Wide Word (144bit) programming time | 40 | 300 | µs | ||
tprog (Total) | 3-MB programming time(1) | –40°C to 105°C | 32 | s | ||
0°C to 60°C, for first 25 cycles | 8 | 16 | s | |||
terase | Sector/Bank erase time(2) | –40°C to 105°C | 0.03 | 4 | s | |
0°C to 60°C, for first 25 cycles | 16 | 100 | ms | |||
twec | Write/erase cycles with 15-year Data Retention requirement | –40°C to 105°C | 1000 | cycles |
PARAMETER | MIN | NOM | MAX | UNIT | ||
---|---|---|---|---|---|---|
tprog (144bit) | Wide Word (144bit) programming time | 40 | 300 | µs | ||
tprog (Total) | 64-KB programming time(1) | –40°C to 105°C | 660 | ms | ||
0°C to 60°C, for first 25 cycles | 165 | 330 | ms | |||
terase | Sector/Bank erase time(1) | –40°C to 105°C | 0.2 | 8 | s | |
0°C to 60°C, for first 25 cycles | 14 | 100 | ms | |||
twec | Write/erase cycles with 15-year Data Retention requirement | –40°C to 105°C | 100000 | cycles |
Figure 6-12 illustrates the connection of the Tightly Coupled RAM (TCRAM) to the Cortex-R4F CPU.
The features of the TCRAM Module are:
The TCRAM interface passes on the ECC code for each data read by the Cortex-R4F CPU from the RAM. It also stores the ECC port contents of the CPU in the ECC RAM when the CPU does a write to the RAM. The TCRAM interface monitors the event bus of the CPU and provides registers for indicating singlebit or multibit errors and also for identifying the address that caused the single or multibit error. The event signaling and the ECC checking for the RAM accesses must be enabled inside the CPU.
For more information see the device specific technical reference manual.
Most peripheral RAMs are protected by odd/even parity checking. During a read access the parity is calculated based on the data read from the peripheral RAM and compared with the good parity value stored in the parity RAM for that peripheral. If any word fails the parity check, the module generates a parity error signal that is mapped to the Error Signaling Module. The module also captures the peripheral RAM address that caused the parity error.
The parity protection for peripheral RAMs is not enabled by default and must be enabled by the application. Each individual peripheral contains control registers to enable the parity protection for accesses to its RAM.
NOTE
The CPU read access gets the actual data from the peripheral. The application can choose to generate an interrupt whenever a peripheral RAM parity error is detected.
MEMORY | RAM GROUP | TEST CLOCK | MEM TYPE | TEST PATTERN (ALGORITHM) | |||
---|---|---|---|---|---|---|---|
TRIPLE READ SLOW READ |
TRIPLE READ FAST READ |
MARCH 13N(1)
TWO PORT (CYCLES) |
MARCH 13N(1)
SINGLE PORT (CYCLES) |
||||
ALGO MASK 0x1 | ALGO MASK 0x2 | ALGO MASK 0x4 | ALGO MASK 0x8 | ||||
PBIST_ROM | 1 | ROM CLK | ROM | 24578 | 8194 | ||
STC_ROM | 2 | ROM CLK | ROM | 19586 | 6530 | ||
DCAN1 | 3 | VCLK | Dual Port | 25200 | |||
DCAN2 | 4 | VCLK | Dual Port | 25200 | |||
DCAN3 | 5 | VCLK | Dual Port | 25200 | |||
ESRAM1(2) | 6 | HCLK | Single Port | 266280 | |||
MIBSPI1 | 7 | VCLK | Dual Port | 33440 | |||
MIBSPI3 | 8 | VCLK | Dual Port | 33440 | |||
MIBSPI5 | 9 | VCLK | Dual Port | 33440 | |||
VIM | 10 | VCLK | Dual Port | 12560 | |||
MIBADC1 | 11 | VCLK | Dual Port | 4200 | |||
DMA | 12 | HCLK | Dual Port | 18960 | |||
N2HET1 | 13 | VCLK | Dual Port | 31680 | |||
HTU1 | 14 | VCLK | Dual Port | 6480 | |||
RTP | 15 | HCLK | Dual Port | 37800 | |||
MIBADC2 | 18 | VCLK | Dual Port | 4200 | |||
N2HET2 | 19 | VCLK | Dual Port | 31680 | |||
HTU2 | 20 | VCLK | Dual Port | 6480 | |||
ESRAM5(3) | 21 | HCLK | Single Port | 266280 | |||
ESRAM6(4) | 22 | HCLK | Single Port | 266280 | |||
ETHERNET | 23 | VCLK3 | Dual Port | 8700 | |||
24 | 6360 | ||||||
25 | Single Port | 133160 | |||||
USB | 26 | VCLK3 | Dual Port | 4240 | |||
27 | Single Port | 66600 | |||||
ESRAM8(5) | 28 | HCLK | Single Port | 266280 |
The PBIST ROM clock frequency is limited to 100 MHz, if 100 MHz < HCLK <= HCLKmax, or HCLK, if HCLK <= 100 MHz.
The PBIST ROM clock is divided down from HCLK. The divider is selected by programming the ROM_DIV field of the Memory Self-Test Global Control Register (MSTGCR) at address 0xFFFFFF58.
This microcontroller allows some of the on-chip memories to be initialized to zero through the Memory Hardware Initialization mechanism in the System module. This hardware mechanism allows an application to program the memory arrays with error detection capability to a known state based on their error detection scheme (odd/even parity or ECC).
The MINITGCR register enables the memory initialization sequence, and the MSINENA register selects the memories that are to be initialized.
For more information on these registers see the device specific technical reference manual.
The mapping of the different on-chip memories to the specific bits of the MSINENA registers is shown in Table 6-26.
CONNECTING MODULE | ADDRESS RANGE | MSINENA REGISTER BIT NO. |
|
---|---|---|---|
BASE ADDRESS | ENDING ADDRESS | ||
RAM (PD#1) | 0x08000000 | 0x0800FFFF | 0(1) |
RAM (RAM_PD#1) | 0x08010000 | 0x0801FFFF | 0(1) |
RAM (RAM_PD#2) | 0x08020000 | 0x0802FFFF | 0(1) |
RAM (RAM_PD#3)(3) | 0x08030000 | 0x0803FFFF | 0(1) |
MIBSPI5 RAM | 0xFF0A0000 | 0xFF0BFFFF | 12(2) |
MIBSPI3 RAM | 0xFF0C0000 | 0xFF0DFFFF | 11(2) |
MIBSPI1 RAM | 0xFF0E0000 | 0xFF0FFFFF | 7(2) |
DCAN3 RAM | 0xFF1A0000 | 0xFF1BFFFF | 10 |
DCAN2 RAM | 0xFF1C0000 | 0xFF1DFFFF | 6 |
DCAN1 RAM | 0xFF1E0000 | 0xFF1FFFFF | 5 |
MIBADC2 RAM | 0xFF3A0000 | 0xFF3BFFFF | 14 |
MIBADC1 RAM | 0xFF3E0000 | 0xFF3FFFFF | 8 |
N2HET2 RAM | 0xFF440000 | 0xFF45FFFF | 15 |
N2HET1 RAM | 0xFF460000 | 0xFF47FFFF | 3 |
HTU2 RAM | 0xFF4C0000 | 0xFF4DFFFF | 16 |
HTU1 RAM | 0xFF4E0000 | 0xFF4FFFFF | 4 |
DMA RAM | 0xFFF80000 | 0xFFF80FFF | 1 |
VIM RAM | 0xFFF82000 | 0xFFF82FFF | 2 |
USB Device RAM | RAM is not CPU-Addressable | n/a | |
Ethernet RAM (CPPI Memory Slave) | 0xFC520000 | 0xFC521FFF | n/a |
The EMIF includes many features to enhance the ease and flexibility of connecting to external asynchronous memories or SDRAM devices. The EMIF features includes support for:
NO. | MIN | NOM | MAX | UNIT | ||
---|---|---|---|---|---|---|
READS AND WRITES | ||||||
E | EMIF clock period | 10 | ns | |||
2 | tw(EM_WAIT) | Pulse duration, EMIFnWAIT assertion and deassertion | 2E | ns | ||
READS | ||||||
12 | tsu(EMDV-EMOEH) | Setup time, EMIFDATA[15:0] valid before EMIFnOE high | 30 | ns | ||
13 | th(EMOEH-EMDIV) | Hold time, EMIFDATA[15:0] valid after EMIFnOE high | 0.5 | ns | ||
14 | tsu(EMOEL-EMWAIT) | Setup Time, EMIFnWAIT asserted before end of Strobe Phase(1) | 4E+30 | ns | ||
WRITES | ||||||
28 | tsu(EMWEL-EMWAIT) | Setup Time, EMIFnWAIT asserted before end of Strobe Phase(1) | 4E+30 | ns |
NO. | PARAMETER | MIN | NOM | MAX | UNIT | |
---|---|---|---|---|---|---|
READS AND WRITES | ||||||
1 | td(TURNAROUND) | Turn around time | (TA)*E-4 | (TA)*E | (TA)*E+3 | ns |
READS | ||||||
3 | tc(EMRCYCLE) | EMIF read cycle time (EW = 0) | (RS+RST+RH)*E-3 | (RS+RST+RH)*E | (RS+RST+RH)*E+3 | ns |
EMIF read cycle time (EW = 1) | (RS+RST+RH+(EWC*16))* E-3 | (RS+RST+RH+(EWC*16))* E | (RS+RST+RH+(EWC*16))* E+3 | |||
4 | tsu(EMCEL-EMOEL) | Output setup time, EMIFnCS[4:2] low to EMIFnOE low (SS = 0) | (RS)*E-4 | (RS)*E | (RS)*E+3 | ns |
Output setup time, EMIFnCS[4:2] low to EMIFnOE low (SS = 1) | -3 | 0 | +3 | |||
5 | th(EMOEH-EMCEH) | Output hold time, EMIFnOE high to EMIFnCS[4:2] high (SS = 0) | (RH)*E-4 | (RH)*E | (RH)*E+3 | ns |
Output hold time, EMIFnOE high to EMIFnCS[4:2] high (SS = 1) | -3 | 0 | +3 | |||
6 | tsu(EMBAV-EMOEL) | Output setup time, EMIFBA[1:0] valid to EMIFnOE low | (RS)*E-4 | (RS)*E | (RS)*E+3 | ns |
7 | th(EMOEH-EMBAIV) | Output hold time, EMIFnOE high to EMIFBA[1:0] invalid | (RH)*E-4 | (RH)*E | (RH)*E+3 | ns |
8 | tsu(EMAV-EMOEL) | Output setup time, EMIFADDR[21:0] valid to EMIFnOE low | (RS)*E-4 | (RS)*E | (RS)*E+3 | ns |
9 | th(EMOEH-EMAIV) | Output hold time, EMIFnOE high to EMIFADDR[21:0] invalid | (RH)*E-4 | (RH)*E | (RH)*E+3 | ns |
10 | tw(EMOEL) | EMIFnOE active low width (EW = 0) |
(RST)*E-3 | (RST)*E | (RST)*E+3 | ns |
EMIFnOE active low width (EW = 1) |
(RST+(EWC*16))*E-3 | (RST+(EWC*16))*E | (RST+(EWC*16))*E+3 | |||
11 | td(EMWAITH-EMOEH) | Delay time from EMIFnWAIT deasserted to EMIFnOE high | 3E-3 | 4E | 4E+30 | ns |
29 | tsu(EMDQMV-EMOEL) | Output setup time, EMIFnDQM[1:0] valid to EMIFnOE low | (RS)*E-4 | (RS)*E | (RS)*E+3 | ns |
30 | th(EMOEH-EMDQMIV) | Output hold time, EMIFnOE high to EMIFnDQM[1:0] invalid | (RH)*E-4 | (RH)*E | (RH)*E+3 | ns |
WRITES | ||||||
15 | tc(EMWCYCLE) | EMIF write cycle time (EW = 0) | (WS+WST+WH)* E-3 | (WS+WST+WH)*E | (WS+WST+WH)* E+3 | ns |
EMIF write cycle time (EW = 1) | (WS+WST+WH+(EWC*16))* E-3 | (WS+WST+WH+(EWC*16))* E | (WS+WST+WH+(EWC*16))* E+3 | |||
16 | tsu(EMCEL-EMWEL) | Output setup time, EMIFnCS[4:2] low to EMIFnWE low (SS = 0) | (WS)*E -4 | (WS)*E | (WS)*E + 3 | ns |
Output setup time, EMIFnCS[4:2] low to EMIFnWE low (SS = 1) | -4 | 0 | +3 | |||
17 | th(EMWEH-EMCEH) | Output hold time, EMIFnWE high to EMIFnCS[4:2] high (SS = 0) | (WH)*E-4 | (WH)*E | (WH)*E+3 | ns |
Output hold time, EMIFnWE high to EMIFCS[4:2] high (SS = 1) | -4 | 0 | +3 | |||
18 | tsu(EMDQMV-EMWEL) | Output setup time, EMIFBA[1:0] valid to EMIFnWE low | (WS)*E-4 | (WS)*E | (WS)*E+3 | ns |
19 | th(EMWEH-EMDQMIV) | Output hold time, EMIFnWE high to EMIFBA[1:0] invalid | (WH)*E-4 | (WH)*E | (WH)*E+3 | ns |
20 | tsu(EMBAV-EMWEL) | Output setup time, EMIFBA[1:0] valid to EMIFnWE low | (WS)*E-4 | (WS)*E | (WS)*E+3 | ns |
21 | th(EMWEH-EMBAIV) | Output hold time, EMIFnWE high to EMIFBA[1:0] invalid | (WH)*E-4 | (WH)*E | (WH)*E+3 | ns |
22 | tsu(EMAV-EMWEL) | Output setup time, EMIFADDR[21:0] valid to EMIFnWE low | (WS)*E-4 | (WS)*E | (WS)*E+3 | ns |
23 | th(EMWEH-EMAIV) | Output hold time, EMIFnWE high to EMIFADDR[21:0] invalid | (WH)*E-4 | (WH)*E | (WH)*E+3 | ns |
24 | tw(EMWEL) | EMIFnWE active low width (EW = 0) | (WST)*E-3 | (WST)*E | (WST)*E+3 | ns |
EMIFnWE active low width (EW = 1) | (WST+(EWC*16))*E-3 | (WST+(EWC*16))*E | (WST+(EWC*16))* E+3 | |||
25 | td(EMWAITH-EMWEH) | Delay time from EMIFnWAIT deasserted to EMIFnWE high | 3E-4 | 4E | 4E+30 | ns |
26 | tsu(EMDV-EMWEL) | Output setup time, EMIFDATA[15:0] valid to EMIFnWE low | (WS)*E-4 | (WS)*E | (WS)*E+3 | ns |
27 | th(EMWEH-EMDIV) | Output hold time, EMIFnWE high to EMIFDATA[15:0] invalid | (WH)*E-4 | (WH)*E | (WH)*E+3 | ns |
31 | tsu(EMDQMV-EMWEL) | Output setup time, EMIFnDQM[1:0] valid to EMIFnWE low | (WH)*E-4 | (WH)*E | (WH)*E+3 | ns |
32 | th(EMWEH-EMDQMIV) | Output hold time, EMIFnWE high to EMIFnDQM[1:0] invalid | (WH)*E-4 | (WH)*E | (WH)*E+3 | ns |
NO. | MIN | MAX | UNIT | ||
---|---|---|---|---|---|
19 | tsu(EMIFDV-EM_CLKH) | Input setup time, read data valid on EMIFDATA[15:0] before EMIF_CLK rising | 2 | ns | |
20 | th(CLKH-DIV) | Input hold time, read data valid on EMIFDATA[15:0] after EMIF_CLK rising | 1.5 | ns |
NO. | PARAMETER | MIN | MAX | UNIT | |
---|---|---|---|---|---|
1 | tc(CLK) | Cycle time, EMIF clock EMIF_CLK | 20 | ns | |
2 | tw(CLK) | Pulse width, EMIF clock EMIF_CLK high or low | 5 | ns | |
3 | td(CLKH-CSV) | Delay time, EMIF_CLK rising to EMIFnCS[0] valid | 13 | ns | |
4 | toh(CLKH-CSIV) | Output hold time, EMIF_CLK rising to EMIFnCS[0] invalid | 1 | ns | |
5 | td(CLKH-DQMV) | Delay time, EMIF_CLK rising to EMIFnDQM[1:0] valid | 13 | ns | |
6 | toh(CLKH-DQMIV) | Output hold time, EMIF_CLK rising to EMIFnDQM[1:0] invalid | 1 | ns | |
7 | td(CLKH-AV) | Delay time, EMIF_CLK rising to EMIFADDR[21:0] and EMIFBA[1:0] valid | 13 | ns | |
8 | toh(CLKH-AIV) | Output hold time, EMIF_CLK rising to EMIFADDR[21:0] and EMIFBA[1:0] invalid | 1 | ns | |
9 | td(CLKH-DV) | Delay time, EMIF_CLK rising to EMIFDATA[15:0] valid | 13 | ns | |
10 | toh(CLKH-DIV) | Output hold time, EMIF_CLK rising to EMIFDATA[15:0] invalid | 1 | ns | |
11 | td(CLKH-RASV) | Delay time, EMIF_CLK rising to EMIFnRAS valid | 13 | ns | |
12 | toh(CLKH-RASIV) | Output hold time, EMIF_CLK rising to EMIFnRAS invalid | 1 | ns | |
13 | td(CLKH-CASV) | Delay time, EMIF_CLK rising to EMIFnCAS valid | 13 | ns | |
14 | toh(CLKH-CASIV) | Output hold time, EMIF_CLK rising to EMIFnCAS invalid | 1 | ns | |
15 | td(CLKH-WEV) | Delay time, EMIF_CLK rising to EMIFnWE valid | 13 | ns | |
16 | toh(CLKH-WEIV) | Output hold time, EMIF_CLK rising to EMIFnWE invalid | 1 | ns | |
17 | tdis(CLKH-DHZ) | Delay time, EMIF_CLK rising to EMIFDATA[15:0] tri-stated | 7 | ns | |
18 | tena(CLKH-DLZ) | Output hold time, EMIF_CLK rising to EMIFDATA[15:0] driving | 1 | ns |
The vectored interrupt manager (VIM) provides hardware assistance for prioritizing and controlling the many interrupt sources present on this device. Interrupts are caused by events outside of the normal flow of program execution. Normally, these events require a timely response from the central processing unit (CPU); therefore, when an interrupt occurs, the CPU switches execution from the normal program flow to an interrupt service routine (ISR).
The VIM module has the following features:
MODULES | INTERRUPT SOURCES | DEFAULT VIM INTERRUPT CHANNEL |
---|---|---|
ESM | ESM High level interrupt (NMI) | 0 |
Reserved | Reserved | 1 |
RTI | RTI compare interrupt 0 | 2 |
RTI | RTI compare interrupt 1 | 3 |
RTI | RTI compare interrupt 2 | 4 |
RTI | RTI compare interrupt 3 | 5 |
RTI | RTI overflow interrupt 0 | 6 |
RTI | RTI overflow interrupt 1 | 7 |
RTI | RTI time base interrupt | 8 |
GPIO | GPIO interrupt A | 9 |
N2HET1 | N2HET1 level 0 interrupt | 10 |
HTU1 | HTU1 level 0 interrupt | 11 |
MIBSPI1 | MIBSPI1 level 0 interrupt | 12 |
LIN | LIN level 0 interrupt | 13 |
MIBADC1 | MIBADC1 event group interrupt | 14 |
MIBADC1 | MIBADC1 sw group 1 interrupt | 15 |
DCAN1 | DCAN1 level 0 interrupt | 16 |
SPI2 | SPI2 level 0 interrupt | 17 |
Reserved | Reserved | 18 |
CRC | CRC Interrupt | 19 |
ESM | ESM Low level interrupt | 20 |
SYSTEM | Software interrupt (SSI) | 21 |
CPU | PMU Interrupt | 22 |
GPIO | GPIO interrupt B | 23 |
N2HET1 | N2HET1 level 1 interrupt | 24 |
HTU1 | HTU1 level 1 interrupt | 25 |
MIBSPI1 | MIBSPI1 level 1 interrupt | 26 |
LIN | LIN level 1 interrupt | 27 |
MIBADC1 | MIBADC1 sw group 2 interrupt | 28 |
DCAN1 | DCAN1 level 1 interrupt | 29 |
SPI2 | SPI2 level 1 interrupt | 30 |
MIBADC1 | MIBADC1 magnitude compare interrupt | 31 |
Reserved | Reserved | 32 |
DMA | FTCA interrupt | 33 |
DMA | LFSA interrupt | 34 |
DCAN2 | DCAN2 level 0 interrupt | 35 |
DMM | DMM level 0 interrupt | 36 |
MIBSPI3 | MIBSPI3 level 0 interrupt | 37 |
MIBSPI3 | MIBSPI3 level 1 interrupt | 38 |
DMA | HBCA interrupt | 39 |
DMA | BTCA interrupt | 40 |
EMIF | AEMIFINT3 | 41 |
DCAN2 | DCAN2 level 1 interrupt | 42 |
DMM | DMM level 1 interrupt | 43 |
DCAN1 | DCAN1 IF3 interrupt | 44 |
DCAN3 | DCAN3 level 0 interrupt | 45 |
DCAN2 | DCAN2 IF3 interrupt | 46 |
FPU | "OR" of the six Cortex R4F FPU Exceptions | 47 |
Reserved | Reserved | 48 |
SPI4 | SPI4 level 0 interrupt | 49 |
MIBADC2 | MibADC2 event group interrupt | 50 |
MIBADC2 | MibADC2 sw group1 interrupt | 51 |
Reserved | Reserved | 52 |
MIBSPI5 | MIBSPI5 level 0 interrupt | 53 |
SPI4 | SPI4 level 1 interrupt | 54 |
DCAN3 | DCAN3 level 1 interrupt | 55 |
MIBSPI5 | MIBSPI5 level 1 interrupt | 56 |
MIBADC2 | MibADC2 sw group2 interrupt | 57 |
Reserved | Reserved | 58 |
MIBADC2 | MibADC2 magnitude compare interrupt | 59 |
DCAN3 | DCAN3 IF3 interrupt | 60 |
FMC | FSM_DONE interrupt | 61 |
Reserved | Reserved | 62 |
N2HET2 | N2HET2 level 0 interrupt | 63 |
SCI | SCI level 0 interrupt | 64 |
HTU2 | HTU2 level 0 interrupt | 65 |
I2C | I2C level 0 interrupt | 66 |
USB Host | OHCI_INT | 67 |
USB Device | USB_FUNC.IRQISOON | 68 |
USB Device | USB_FUNC.IRQGENION | 69 |
USB Device | USB_FUNC.IRQNONISOON | 70 |
USB Device | not (USB_FUNC.DSWAKEREQON) | 71 |
USB Device | USB_FUNC.USBRESETO | 72 |
N2HET2 | N2HET2 level 1 interrupt | 73 |
SCI | SCI level 1 interrupt | 74 |
HTU2 | HTU2 level 1 interrupt | 75 |
Ethernet | C0_MISC_PULSE | 76 |
Ethernet | C0_TX_PULSE | 77 |
Ethernet | C0_THRESH_PULSE | 78 |
Ethernet | C0_RX_PULSE | 79 |
HWAG1 | HWA_INT_REQ_H | 80 |
HWAG2 | HWA_INT_REQ_H | 81 |
DCC1 | DCC1 done interrupt | 82 |
DCC2 | DCC2 done interrupt | 83 |
Reserved | Reserved | 84 |
PBIST | PBIST_DONE | 85 |
Reserved | Reserved | 86 |
Reserved | Reserved | 87 |
HWAG1 | HWA_INT_REQ_L | 88 |
HWAG2 | HWA_INT_REQ_L | 89 |
Reserved | Reserved | 90-95 |
NOTE
Address location 0x00000000 in the VIM RAM is reserved for the phantom interrupt ISR entry; therefore only request channels 0 to 94 can be used and are offset by 1 address in the VIM RAM.
NOTE
The lower-order interrupt channels are higher priority channels than the higher-order interrupt channels.
NOTE
The application can change the mapping of interrupt sources to the interrupt channels via the interrupt channel control registers (CHANCTRLx) inside the VIM module.
The DMA controller is used to transfer data between two locations in the memory map in the background of CPU operations. Typically, the DMA is used to:
The DMA module on this microcontroller has 16 channels and up to 32 hardware DMA requests. The module contains DREQASIx registers which are used to map the DMA requests to the DMA channels. By default, channel 0 is mapped to request 0, channel 1 to request 1, and so on.
Some DMA requests have multiple sources, as shown in Table 6-32. The application must ensure that only one of these DMA request sources is enabled at any time.
Modules | DMA Request Sources | DMA Request |
---|---|---|
MIBSPI1 | MIBSPI1[1](1) | DMAREQ[0] |
MIBSPI1 | MIBSPI1[0](2) | DMAREQ[1] |
SPI2 | SPI2 receive | DMAREQ[2] |
SPI2 | SPI2 transmit | DMAREQ[3] |
MIBSPI1 / MIBSPI3 / DCAN2 | MIBSPI1[2] / MIBSPI3[2] / DCAN2 IF3 | DMAREQ[4] |
MIBSPI1 / MIBSPI3 / DCAN2 | MIBSPI1[3] / MIBSPI3[3] / DCAN2 IF2 | DMAREQ[5] |
DCAN1 / MIBSPI5 | DCAN1 IF2 / MIBSPI5[2] | DMAREQ[6] |
MIBADC1 / MIBSPI5 | MIBADC1 event / MIBSPI5[3] | DMAREQ[7] |
MIBSPI1 / MIBSPI3 / DCAN1 | MIBSPI1[4] / MIBSPI3[4] / DCAN1 IF1 | DMAREQ[8] |
MIBSPI1 / MIBSPI3 / DCAN2 | MIBSPI1[5] / MIBSPI3[5] / DCAN2 IF1 | DMAREQ[9] |
MIBADC1 / I2C / MIBSPI5 | MIBADC1 G1 / I2C receive / MIBSPI5[4] | DMAREQ[10] |
MIBADC1 / I2C / MIBSPI5 | MIBADC1 G2 / I2C transmit / MIBSPI5[5] | DMAREQ[11] |
RTI / MIBSPI1 / MIBSPI3 | RTI DMAREQ0 / MIBSPI1[6] / MIBSPI3[6] | DMAREQ[12] |
RTI / MIBSPI1 / MIBSPI3 | RTI DMAREQ1 / MIBSPI1[7] / MIBSPI3[7] | DMAREQ[13] |
MIBSPI3 / USB Device / MibADC2 / MIBSPI5 | MIBSPI3[1](1) / USB_FUNC.DMATXREQ_ON[0] / MibADC2 event / MIBSPI5[6] | DMAREQ[14] |
MIBSPI3 / USB Device / MIBSPI5 | MIBSPI3[0](2) / USB_FUNC.DMARXREQ_ON[0] / MIBSPI5[7] | DMAREQ[15] |
MIBSPI1 / MIBSPI3 / DCAN1 / MibADC2 | MIBSPI1[8] / MIBSPI3[8] / DCAN1 IF3 / MibADC2 G1 | DMAREQ[16] |
MIBSPI1 / MIBSPI3 / DCAN3 / MibADC2 | MIBSPI1[9] / MIBSPI3[9] / DCAN3 IF1 / MibADC2 G2 | DMAREQ[17] |
RTI / USB Device / MIBSPI5 | RTI DMAREQ2 / USB_FUNC.DMATXREQ_ON[1] / MIBSPI5[8] | DMAREQ[18] |
RTI / USB Device / MIBSPI5 | RTI DMAREQ3 / USB_FUNC.DMARXREQ_ON[1] / MIBSPI5[9] | DMAREQ[19] |
N2HET1 / N2HET2 / DCAN3 | N2HET1 DMAREQ[4] / N2HET2 DMAREQ[4] / DCAN3 IF2 | DMAREQ[20] |
N2HET1 / N2HET2 / DCAN3 | N2HET1 DMAREQ[5] / N2HET2 DMAREQ[5] / DCAN3 IF3 | DMAREQ[21] |
MIBSPI1 / MIBSPI3 / MIBSPI5 | MIBSPI1[10] / MIBSPI3[10] / MIBSPI5[10] | DMAREQ[22] |
MIBSPI1 / MIBSPI3 / MIBSPI5 | MIBSPI1[11] / MIBSPI3[11] / MIBSPI5[11] | DMAREQ[23] |
N2HET1 / N2HET2 / SPI4 / MIBSPI5 | N2HET1 DMAREQ[6] / N2HET2 DMAREQ[6] / SPI4 receive / MIBSPI5[12] | DMAREQ[24] |
N2HET1 / N2HET2 / SPI4 / MIBSPI5 | N2HET1 DMAREQ[7] / N2HET2 DMAREQ[7] / SPI4 transmit / MIBSPI5[13] | DMAREQ[25] |
CRC / MIBSPI1 / MIBSPI3 | CRC DMAREQ[0] / MIBSPI1[12] / MIBSPI3[12] | DMAREQ[26] |
CRC / MIBSPI1 / MIBSPI3 | CRC DMAREQ[1] / MIBSPI1[13] / MIBSPI3[13] | DMAREQ[27] |
LIN / USB Device / MIBSPI5 | LIN receive / USB_FUNC.DMATXREQ_ON[2] / MIBSPI5[14] | DMAREQ[28] |
LIN / USB Device / MIBSPI5 | LIN transmit / USB_FUNC.DMARXREQ_ON[2] / MIBSPI5[15] | DMAREQ[29] |
MIBSPI1 / MIBSPI3 / SCI / MIBSPI5 | MIBSPI1[14] / MIBSPI3[14] / SCI receive / MIBSPI5[1](1) | DMAREQ[30] |
MIBSPI1 / MIBSPI3 / SCI / MIBSPI5 | MIBSPI1[15] / MIBSPI3[15] / SCI transmit / MIBSPI5[0](2) | DMAREQ[31] |
The real-time interrupt (RTI) module provides timer functionality for operating systems and for benchmarking code. The RTI module can incorporate several counters that define the time bases needed for scheduling an operating system.
The timers also allow you to benchmark certain areas of code by reading the values of the counters at the beginning and the end of the desired code range and calculating the difference between the values.
The RTI module has the following features:
Figure 6-19 shows a high-level block diagram for one of the two 64-bit counter blocks inside the RTI module. Both the counter blocks are identical except the Network Time Unit (NTUx) inputs are only available as time base inputs for the counter block 0.
The RTI module uses the RTI1CLK clock domain for generating the RTI time bases.
The application can select the clock source for the RTI1CLK by configuring the RCLKSRC register in the System module at address 0xFFFFFF50. The default source for RTI1CLK is VCLK.
For more information on clock sources refer to Table 6-8 and Table 6-13.
The RTI module supports four NTU inputs that signal internal system events, and which can be used to synchronize the time base used by the RTI module. On this device, these NTU inputs are connected as shown in Table 6-33.
NTU Input | Source |
---|---|
0 | Reserved |
1 | Reserved |
2 | PLL2 Clock output |
3 | EXTCLKIN1 clock input |
The Error Signaling Module (ESM) manages the various error conditions on the RM4x microcontroller. The error condition is handled based on a fixed severity level assigned to it. Any severe error condition can be configured to drive a low level on a dedicated device terminal called nERROR. This can be used as an indicator to an external monitor circuit to put the system into a safe state.
The features of the ESM are:
The ESM integrates all the device error conditions and groups them in the order of severity. Group1 is used for errors of the lowest severity while Group3 is used for errors of the highest severity. The device response to each error is determined by the severity group it is connected to. Table 6-35 shows the channel assignment for each group.
ERROR GROUP | INTERRUPT CHARACTERISTICS | INFLUENCE ON ERROR PIN |
---|---|---|
Group1 | Maskable, low or high priority | Configurable |
Group2 | Nonmaskable, high priority | Fixed |
Group3 | No interrupt generated | Fixed |
ERROR SOURCES | GROUP | CHANNELS |
---|---|---|
Reserved | Group1 | 0 |
MibADC2 - parity | Group1 | 1 |
DMA - MPU | Group1 | 2 |
DMA - parity | Group1 | 3 |
Reserved | Group1 | 4 |
DMA/DMM - imprecise read error | Group1 | 5 |
FMC - correctable error: bus1 and bus2 interfaces (does not include accesses to EEPROM bank) |
Group1 | 6 |
N2HET1/N2HET2 - parity | Group1 | 7 |
HTU1/HTU2 - parity | Group1 | 8 |
HTU1/HTU2 - MPU | Group1 | 9 |
PLL - Slip | Group1 | 10 |
Clock Monitor - interrupt | Group1 | 11 |
Reserved | Group1 | 12 |
DMA/DMM - imprecise write error | Group1 | 13 |
Reserved | Group1 | 14 |
VIM RAM - parity | Group1 | 15 |
Reserved | Group1 | 16 |
MibSPI1 - parity | Group1 | 17 |
MibSPI3 - parity | Group1 | 18 |
MibADC1 - parity | Group1 | 19 |
Reserved | Group1 | 20 |
DCAN1 - parity | Group1 | 21 |
DCAN3 - parity | Group1 | 22 |
DCAN2 - parity | Group1 | 23 |
MibSPI5 - parity | Group1 | 24 |
Reserved | Group1 | 25 |
RAM even bank (B0TCM) - correctable error | Group1 | 26 |
CPU - self-test | Group1 | 27 |
RAM odd bank (B1TCM) - correctable error | Group1 | 28 |
Reserved | Group1 | 29 |
DCC1 - error | Group1 | 30 |
CCM-R4 - self-test | Group1 | 31 |
Reserved | Group1 | 32 |
Reserved | Group1 | 33 |
Reserved | Group1 | 34 |
FMC - correctable error (EEPROM bank access) | Group1 | 35 |
FMC - uncorrectable error (EEPROM bank access) | Group1 | 36 |
IOMM - Mux configuration error | Group1 | 37 |
Power domain controller compare error | Group1 | 38 |
Power domain controller self-test error | Group1 | 39 |
eFuse Controller Error – this error signal is generated when any bit in the eFuse controller error status register is set. The application can choose to generate an interrupt whenever this bit is set to service any eFuse controller error conditions. | Group1 | 40 |
eFuse Controller - Self Test Error. This error signal is generated only when a self test on the eFuse controller generates an error condition. When an ECC self test error is detected, group 1 channel 40 error signal will also be set. | Group1 | 41 |
PLL2 - Slip | Group1 | 42 |
Ethernet Controller master interface | Group1 | 43 |
USB Host Controller master interface | Group1 | 44 |
Reserved | Group1 | 45 |
Reserved | Group1 | 46 |
Reserved | Group1 | 47 |
Reserved | Group1 | 48 |
Reserved | Group1 | 49 |
Reserved | Group1 | 50 |
Reserved | Group1 | 51 |
Reserved | Group1 | 52 |
Reserved | Group1 | 53 |
Reserved | Group1 | 54 |
Reserved | Group1 | 55 |
Reserved | Group1 | 56 |
Reserved | Group1 | 57 |
Reserved | Group1 | 58 |
Reserved | Group1 | 59 |
Reserved | Group1 | 60 |
Reserved | Group1 | 61 |
DCC2 - error | Group1 | 62 |
Reserved | Group1 | 63 |
GROUP 2 | ||
Reserved | Group2 | 0 |
Reserved | Group2 | 1 |
CCMR4 - compare | Group2 | 2 |
Reserved | Group2 | 3 |
FMC - uncorrectable error (address parity on bus1 accesses) | Group2 | 4 |
Reserved | Group2 | 5 |
RAM even bank (B0TCM) - uncorrectable error | Group2 | 6 |
Reserved | Group2 | 7 |
RAM odd bank (B1TCM) - uncorrectable error | Group2 | 8 |
Reserved | Group2 | 9 |
RAM even bank (B0TCM) - address bus parity error | Group2 | 10 |
Reserved | Group2 | 11 |
RAM odd bank (B1TCM) - address bus parity error | Group2 | 12 |
Reserved | Group2 | 13 |
Reserved | Group2 | 14 |
Reserved | Group2 | 15 |
TCM - ECC live lock detect | Group2 | 16 |
Reserved | Group2 | 17 |
Reserved | Group2 | 18 |
Reserved | Group2 | 19 |
Reserved | Group2 | 20 |
Reserved | Group2 | 21 |
Reserved | Group2 | 22 |
Reserved | Group2 | 23 |
RTI_WWD_NMI | Group2 | 24 |
Reserved | Group2 | 25 |
Reserved | Group2 | 26 |
Reserved | Group2 | 27 |
Reserved | Group2 | 28 |
Reserved | Group2 | 29 |
Reserved | Group2 | 30 |
Reserved | Group2 | 31 |
GROUP 3 | ||
Reserved | Group3 | 0 |
eFuse Controller - autoload error | Group3 | 1 |
Reserved | Group3 | 2 |
RAM even bank (B0TCM) - ECC uncorrectable error | Group3 | 3 |
Reserved | Group3 | 4 |
RAM odd bank (B1TCM) - ECC uncorrectable error | Group3 | 5 |
Reserved | Group3 | 6 |
FMC - uncorrectable error: bus1 and bus2 interfaces (does not include address parity error and errors on accesses to EEPROM bank) |
Group3 | 7 |
Reserved | Group3 | 8 |
Reserved | Group3 | 9 |
Reserved | Group3 | 10 |
Reserved | Group3 | 11 |
Reserved | Group3 | 12 |
Reserved | Group3 | 13 |
Reserved | Group3 | 14 |
Reserved | Group3 | 15 |
Reserved | Group3 | 16 |
Reserved | Group3 | 17 |
Reserved | Group3 | 18 |
Reserved | Group3 | 19 |
Reserved | Group3 | 20 |
Reserved | Group3 | 21 |
Reserved | Group3 | 22 |
Reserved | Group3 | 23 |
Reserved | Group3 | 24 |
Reserved | Group3 | 25 |
Reserved | Group3 | 26 |
Reserved | Group3 | 27 |
Reserved | Group3 | 28 |
Reserved | Group3 | 29 |
Reserved | Group3 | 30 |
Reserved | Group3 | 31 |
ERROR SOURCE | SYSTEM MODE | ERROR RESPONSE | ESM HOOKUP group.channel |
---|---|---|---|
CPU TRANSACTIONS | |||
Precise write error (NCNB/Strongly Ordered) | User/Privilege | Precise Abort (CPU) | n/a |
Precise read error (NCB/Device or Normal) | User/Privilege | Precise Abort (CPU) | n/a |
Imprecise write error (NCB/Device or Normal) | User/Privilege | Imprecise Abort (CPU) | n/a |
Illegal instruction | User/Privilege | Undefined Instruction Trap (CPU)(1) | n/a |
MPU access violation | User/Privilege | Abort (CPU) | n/a |
SRAM | |||
B0 TCM (even) ECC single error (correctable) | User/Privilege | ESM | 1.26 |
B0 TCM (even) ECC double error (noncorrectable) | User/Privilege | Abort (CPU), ESM => nERROR | 3.3 |
B0 TCM (even) uncorrectable error (for example, redundant address decode) | User/Privilege | ESM => NMI => nERROR | 2.6 |
B0 TCM (even) address bus parity error | User/Privilege | ESM => NMI => nERROR | 2.10 |
B1 TCM (odd) ECC single error (correctable) | User/Privilege | ESM | 1.28 |
B1 TCM (odd) ECC double error (noncorrectable) | User/Privilege | Abort (CPU), ESM => nERROR | 3.5 |
B1 TCM (odd) uncorrectable error (for example, redundant address decode) | User/Privilege | ESM => NMI => nERROR | 2.8 |
B1 TCM (odd) address bus parity error | User/Privilege | ESM => NMI => nERROR | 2.12 |
FLASH | |||
FMC correctable error - Bus1 and Bus2 interfaces (does not include accesses to EEPROM bank) | User/Privilege | ESM | 1.6 |
FMC uncorrectable error - Bus1 accesses (does not include address parity error) |
User/Privilege | Abort (CPU), ESM => nERROR | 3.7 |
FMC uncorrectable error - Bus2 accesses (does not include address parity error and EEPROM bank accesses) |
User/Privilege | ESM => nERROR | 3.7 |
FMC uncorrectable error - address parity error on Bus1 accesses | User/Privilege | ESM => NMI => nERROR | 2.4 |
FMC correctable error - Accesses to EEPROM bank | User/Privilege | ESM | 1.35 |
FMC uncorrectable error - Accesses to EEPROM bank | User/Privilege | ESM | 1.36 |
DMA TRANSACTIONS | |||
External imprecise error on read (Illegal transaction with ok response) | User/Privilege | ESM | 1.5 |
External imprecise error on write (Illegal transaction with ok response) | User/Privilege | ESM | 1.13 |
Memory access permission violation | User/Privilege | ESM | 1.2 |
Memory parity error | User/Privilege | ESM | 1.3 |
DMM TRANSACTIONS | |||
External imprecise error on read (Illegal transaction with ok response) | User/Privilege | ESM | 1.5 |
External imprecise error on write (Illegal transaction with ok response) | User/Privilege | ESM | 1.13 |
HTU1 | |||
NCNB (Strongly Ordered) transaction with slave error response | User/Privilege | Interrupt => VIM | n/a |
External imprecise error (Illegal transaction with ok response) | User/Privilege | Interrupt => VIM | n/a |
Memory access permission violation | User/Privilege | ESM | 1.9 |
Memory parity error | User/Privilege | ESM | 1.8 |
HTU2 | |||
NCNB (Strongly Ordered) transaction with slave error response | User/Privilege | Interrupt => VIM | n/a |
External imprecise error (Illegal transaction with ok response) | User/Privilege | Interrupt => VIM | n/a |
Memory access permission violation | User/Privilege | ESM | 1.9 |
Memory parity error | User/Privilege | ESM | 1.8 |
N2HET1 | |||
Memory parity error | User/Privilege | ESM | 1.7 |
N2HET2 | |||
Memory parity error | User/Privilege | ESM | 1.7 |
ETHERNET MASTER INTERFACE | |||
Any error reported by slave being accessed | User/Privilege | ESM | 1.43 |
USB HOST CONTROLLER (OHCI) MASTER INTERFACE | |||
Any error reported by slave being accessed | User/Privilege | ESM | 1.44 |
MIBSPI | |||
MibSPI1 memory parity error | User/Privilege | ESM | 1.17 |
MibSPI3 memory parity error | User/Privilege | ESM | 1.18 |
MibSPI5 memory parity error | User/Privilege | ESM | 1.24 |
MIBADC | |||
MibADC1 Memory parity error | User/Privilege | ESM | 1.19 |
MibADC2 Memory parity error | User/Privilege | ESM | 1.1 |
DCAN | |||
DCAN1 memory parity error | User/Privilege | ESM | 1.21 |
DCAN2 memory parity error | User/Privilege | ESM | 1.23 |
DCAN3 memory parity error | User/Privilege | ESM | 1.22 |
PLL | |||
PLL slip error | User/Privilege | ESM | 1.10 |
PLL #2 slip error | User/Privilege | ESM | 1.42 |
CLOCK MONITOR | |||
Clock monitor interrupt | User/Privilege | ESM | 1.11 |
DCC | |||
DCC1 error | User/Privilege | ESM | 1.30 |
DCC2 error | User/Privilege | ESM | 1.62 |
CCM-R4 | |||
Self-test failure | User/Privilege | ESM | 1.31 |
Compare failure | User/Privilege | ESM => NMI => nERROR | 2.2 |
VIM | |||
Memory parity error | User/Privilege | ESM | 1.15 |
VOLTAGE MONITOR | |||
VMON out of voltage range | n/a | Reset | n/a |
CPU SELF-TEST (LBIST) | |||
CPU self-test (LBIST) error | User/Privilege | ESM | 1.27 |
PIN MULTIPLEXING CONTROL | |||
Mux configuration error | User/Privilege | ESM | 1.37 |
POWER DOMAIN CONTROL | |||
PSCON compare error | User/Privilege | ESM | 1.38 |
PSCON self-test error | User/Privilege | ESM | 1.39 |
eFuse CONTROLLER | |||
eFuse Controller Autoload error | User/Privilege | ESM => nERROR | 3.1 |
eFuse Controller - Any bit set in the error status register | User/Privilege | ESM | 1.40 |
eFuse Controller self-test error | User/Privilege | ESM | 1.41 |
WINDOWED WATCHDOG | |||
WWD Nonmaskable Interrupt exception | n/a | ESM => NMI => nERROR | 2.24 |
ERRORS REFLECTED IN THE SYSESR REGISTER | |||
Power-Up Reset | n/a | Reset | n/a |
Oscillator fail / PLL slip(2) | n/a | Reset | n/a |
Watchdog exception | n/a | Reset | n/a |
CPU Reset (driven by the CPU STC) | n/a | Reset | n/a |
Software Reset | n/a | Reset | n/a |
External Reset | n/a | Reset | n/a |
This device includes a digital windowed watchdog (DWWD) module that protects against runaway code execution.
The DWWD module allows the application to configure the time window within which the DWWD module expects the application to service the watchdog. A watchdog violation occurs if the application services the watchdog outside of this window, or fails to service the watchdog at all. The application can choose to generate a system reset or a nonmaskable interrupt to the CPU in case of a watchdog violation.
The watchdog is disabled by default and must be enabled by the application. Once enabled, the watchdog can only be disabled upon a system reset.
The device contains an ICEPICK module to allow JTAG access to the scan chains (see Figure 6-21).
NOTE
The ETM, RTP and DMM exist in silicon, but are not supported in the PGE package.
MODULE NAME | FRAME CHIP SELECT | FRAME ADDRESS RANGE | FRAME SIZE | ACTUAL SIZE | RESPONSE FOR ACCESS TO UNIMPLEMENTED LOCATIONS IN FRAME | |
---|---|---|---|---|---|---|
START | END | |||||
CoreSight Debug ROM | CSCS0 | 0xFFA00000 | 0xFFA00FFF | 4KB | 4KB | Reads: 0, writes: no effect |
Cortex-R4F Debug | CSCS1 | 0xFFA01000 | 0xFFA01FFF | 4KB | 4KB | Reads: 0, writes: no effect |
ETM-R4 | CSCS2 | 0xFFA02000 | 0xFFA02FFF | 4KB | 4KB | Reads: 0, writes: no effect |
CoreSight TPIU | CSCS3 | 0xFFA03000 | 0xFFA03FFF | 4KB | 4KB | Reads: 0, writes: no effect |
The JTAG ID code for this device is the same as the device ICEPick Identification Code (see Table 6-38).
The Debug ROM stores the location of the components on the Debug APB bus (see Table 6-39).
ADDRESS | DESCRIPTION | VALUE |
---|---|---|
0x000 | pointer to Cortex-R4F | 0x00001003 |
0x001 | ETM-R4 | 0x00002003 |
0x002 | TPIU | 0x00003003 |
0x003 | POM | 0x00004003 |
0x004 | end of table | 0x00000000 |
NO. | PARAMETER | MIN | MAX | UNIT | |
---|---|---|---|---|---|
fTCK | TCK frequency (at HCLKmax) | 12 | MHz | ||
fRTCK | RTCK frequency (at TCKmax and HCLKmax) | 10 | MHz | ||
1 | td(TCK -RTCK) | Delay time, TCK to RTCK | 24 | ns | |
2 | tsu(TDI/TMS - RTCKr) | Setup time, TDI, TMS before RTCK rise (RTCKr) | 26 | ns | |
3 | th(RTCKr -TDI/TMS) | Hold time, TDI, TMS after RTCKr | 0 | ns | |
4 | th(RTCKr -TDO) | Hold time, TDO after RTCKf | 0 | ns | |
5 | td(TCKf -TDO) | Delay time, TDO valid after RTCK fall (RTCKf) | 12 | ns |
This device includes an Advanced JTAG Security Module (AJSM) which provides maximum security to the memory content of the device by letting users secure the device after programming.
The device is unsecure by default by virtue of a 128-bit visible unlock code programmed in the OTP address 0xF0000000. The OTP contents are XOR-ed with the "Unlock By Scan" register contents (see Figure 6-23). The outputs of these XOR gates are again combined with a set of secret internal tie-offs. The output of this combinational logic is compared against a secret hard-wired 128-bit value. A match results in the UNLOCK signal being asserted, so that the device is now unsecure.
A user can secure the device by changing at least one bit in the visible unlock code from 1 to 0. Changing a 0 to 1 is not possible because the visible unlock code is stored in the One Time Programmable (OTP) flash region. Also, changing all the 128 bits to zeros is not a valid condition and will permanently secure the device.
Once secured, a user can unsecure the device by scanning an appropriate value into the "Unlock By Scan" register of the AJSM module. The value to be scanned is such that the XOR of the OTP contents and the Unlock-By-Scan register contents results in the original visible unlock code.
The Unlock-By-Scan register is reset only upon asserting power-on reset (nPORRST).
A secure device only permits JTAG accesses to the AJSM scan chain via the Secondary Tap # 2 of the ICEPick module. All other secondary taps, test taps and the boundary scan interface are not accessible in this state.
The device contains a ETM-R4 module with a 32-bit internal data port. The ETM-R4 module is connected to a TPIU with a 32-bit data bus; the TPIU provides a 35-bit (32-bit data, 3-bit control) external interface for trace. The ETM-R4 is CoreSight compliant and follows the ETM v3 specification; for more details see ARM CoreSight ETM-R4 TRM specification.
The ETM clock source can be selected as either VCLK or the external ETMTRACECLKIN pin. The selection is done by the EXTCTLOUT[1:0] control bits of the TPIU; the default is '00' (see Table 6-41). The address of this register is TPIU base address + 0x404.
Before you begin accessing TPIU registers, TPIU should be unlocked via coresight key and 1 or 2 should be written to this register.
EXTCTLOUT[1:0] | TPIU/TRACECLKIN |
---|---|
00 [default] | tied-zero |
01 | VCLK |
10 | ETMTRACECLKIN |
11 | tied-zero |
PARAMETER | MIN | MAX | UNIT | |
---|---|---|---|---|
tcyc(ETM) | Clock period | t(HCLK) * 4 | ns | |
tl(ETM) | Low pulse width | 20 | ns | |
th(ETM) | High pulse width | 20 | ns | |
tr(ETM) | Clock and data rise time | 3 | ns | |
tf(ETM) | Clock and data fall time | 3 | ns |
PARAMETER | MIN | MAX | UNIT | |
---|---|---|---|---|
td(ETMTRACECLKH-ETMDATAV) | Delay time, ETM trace clock high to ETM data valid | 1.5 | 7 | ns |
td(ETMTRACECLKl-ETMDATAV) | Delay time, ETM trace clock low to ETM data valid | 1.5 | 7 | ns |
NOTE
The ETMTRACECLK and ETMDATA timing is based on a 15-pF load and for ambient temperature lower than 85°C.
The RTP provides the ability to datalog the RAM contents of the RM4x devices or accesses to peripherals without program intrusion. It can trace all data write or read accesses to internal RAM. In addition, it provides the capability to directly transfer data to a FIFO to support a CPU-controlled transmission of the data. The trace data is transmitted over a dedicated external interface.
The RTP offers the following features:
PARAMETER | MIN | MAX | UNIT | |
---|---|---|---|---|
tcyc(RTP) | Clock period, prescaled from HCLK; must not be faster than HCLK / 2 | 11 (= 90 MHz) | ns | |
th(RTP) | High pulse width | ((tcyc(RTP))/2) - ((tr+tf)/2) | ns | |
tl(RTP) | Low pulse width | ((tcyc(RTP))/2) - ((tr+tf)/2) | ns |
PARAMETER | MIN | MAX | UNIT | |
---|---|---|---|---|
td(RTPCLKH-RTPSYNCV) | Delay time, RTPCLK high to RTPSYNC valid | –5 | 4 | ns |
td(RTPCLKH-RTPDATAV) | Delay time, RTPCLK high to RTPDATA valid | –5 | 4 | ns |
PARAMETER | MIN | MAX | UNIT | |
---|---|---|---|---|
tdis(RTP) | time RTPnENA must go high before what would be the next RTPSYNC, to ensure delaying the next packet | 3tc(HCLK) + tr(RTPSYNC) + 12 | ns | |
tena(RTP) | time after RTPnENA goes low before a packet that has been halted, resumes | 4tc(HCLK) + tr(RTPSYNC) | 5tc(HCLK) + tr(RTPSYNC) + 12 | ns |
The Data Modification Module (DMM) provides the capability to modify data in the entire 4-GB address space of the RM4x devices from an external peripheral, with minimal interruption of the application.
The DMM has the following features:
MIN | MAX | UNIT | ||
---|---|---|---|---|
tcyc(DMM) | Cycle time, DMMCLK period | tc(HCLK) * 2 | ns | |
th(DMM) | Pulse duration, DMMCLK high | ((tcyc(DMM))/2) - ((tr+tf)/2) | ns | |
tl(DMM) | Pulse duration, DMMCLK low | ((tcyc(DMM))/2) - ((tr+tf)/2) | ns |
MIN | MAX | UNIT | ||
---|---|---|---|---|
tssu(DMM) | SYNC active to clk falling edge setup time | 2 | ns | |
tsh(DMM) | clk falling edge to SYNC inactive hold time | 3 | ns | |
tdsu(DMM) | DATA to clk falling edge setup time | 2 | ns | |
tdh(DMM) | clk falling edge to DATA hold time | 3 | ns |
Figure 6-31 shows a case with 1 DMM packet per 2 DMMCLK cycles (Mode = Direct Data Mode, data width = 8, port width = 4) where none of the packets received by the DMM are sent out, leading to filling up of the internal buffers. The DMMnENA signal is shown asserted, after the first two packets have been received and synchronized to the HCLK domain. Here, the DMM has the capacity to accept packets D4x, D5x, D6x, D7x. Packet D8 would result in an overflow. Once DMMnENA is asserted, the DMM expects to stop receiving packets after 4 HCLK cycles; once DMMnENA is deasserted, the DMM can handle packets immediately (after 0 HCLK cycles).
The device supports IEEE1149.1-compliant boundary scan for testing pin-to-pin compatibility. The boundary scan chain is connected to the Boundary Scan Interface of the ICEPICK module (see Figure 6-32).
Data is serially shifted into all boundary-scan buffers through TDI and out through TDO.