50. Tamper and backup registers (TAMP)

50.1 TAMP introduction

The anti-tamper detection circuit is used to protect sensitive data from external attacks. 32 32-bit backup registers are retained in all low-power modes and also in \( V_{BAT} \) mode. The backup registers, as well as other secrets in the device, are protected by this anti-tamper detection circuit with 8 tamper pins and 11 internal tampers. The external tamper pins can be configured for edge detection, or level detection with or without filtering, or active tamper which increases the security level by auto checking that the tamper pins are not externally opened or shorted.

50.2 TAMP main features

50.3 TAMP functional description

50.3.1 TAMP block diagram

Figure 678. TAMP block diagram

Detailed block diagram of the TAMP (Tamper and backup registers) functional description. The diagram is divided into two main clock domains: 'tamp_ker_ck clock domain' (top) and 'tamp_pclk clock domain' (bottom). In the top domain, external tamper inputs (TAMP_IN1 to TAMP_INx) and internal tamper detection signals (ITAMP1 to ITAMP8) are processed through 'Tamper detection' blocks. Each block contains 'EDGE detection (passive mode)', 'LEVEL detection (passive mode)', and 'COMPARATOR (active mode)'. These blocks generate flags (TAMP1F to TAMPxF) and triggers (tamp_trg1, tamp_trg2). A 'Monotonic counter overflow' signal is also present. A 'PRNG' block takes 'tamp_ker_ck' as input. In the bottom domain, flags and signals are processed through a series of multiplexers and logic gates (RPCFGz, BKBLOCK, BKERASE) to generate 'tamp_evt', 'tamp_potential_rpcfgz', 'tamp_potential', 'tamp_confirmed_rpcfgz', and 'tamp_confirmed' outputs. The 'Backup registers' and 'Monotonic counter' are connected to the 'Registers interface' and 'IRQ interface', which in turn connect to 'tamp_it' and 'tamp_pclk' inputs. The 'Backup registers' output is 'tamp_bhk'. A note at the bottom right indicates 'MSV67571V5'.
Detailed block diagram of the TAMP (Tamper and backup registers) functional description. The diagram is divided into two main clock domains: 'tamp_ker_ck clock domain' (top) and 'tamp_pclk clock domain' (bottom). In the top domain, external tamper inputs (TAMP_IN1 to TAMP_INx) and internal tamper detection signals (ITAMP1 to ITAMP8) are processed through 'Tamper detection' blocks. Each block contains 'EDGE detection (passive mode)', 'LEVEL detection (passive mode)', and 'COMPARATOR (active mode)'. These blocks generate flags (TAMP1F to TAMPxF) and triggers (tamp_trg1, tamp_trg2). A 'Monotonic counter overflow' signal is also present. A 'PRNG' block takes 'tamp_ker_ck' as input. In the bottom domain, flags and signals are processed through a series of multiplexers and logic gates (RPCFGz, BKBLOCK, BKERASE) to generate 'tamp_evt', 'tamp_potential_rpcfgz', 'tamp_potential', 'tamp_confirmed_rpcfgz', and 'tamp_confirmed' outputs. The 'Backup registers' and 'Monotonic counter' are connected to the 'Registers interface' and 'IRQ interface', which in turn connect to 'tamp_it' and 'tamp_pclk' inputs. The 'Backup registers' output is 'tamp_bhk'. A note at the bottom right indicates 'MSV67571V5'.

1. The number of external and internal tampers depends on products.

50.3.2 TAMP pins and internal signals

Table 513. TAMP input/output pins

Pin nameSignal typeDescription
TAMP_INx (x = pin index)InputTamper input pin
TAMP_OUTx (x = pin index)OutputTamper output pin (active mode only)

Table 514. TAMP internal input/output signals

Internal signal nameSignal typeDescription
tamp_ker_ckInputTAMP kernel clock, connected to rtc_ker_ck and also named RTCCLK in this document
tamp_pclkInputTAMP APB clock, connected to rtc_pclk
tamp_itamp[y]
(y = signal index)
InputsInternal tamper event sources
tamp_evtOutputTamper event detection flag (internal or external tamper), whatever confirmed or potential mode configuration.
tamp_potentialOutputPotential tamper detection signal, used for device secrets (1) protection.
This signal is active when:
– a tamper event detection flag (internal or external tamper), is generated in potential mode.
– or a software request is done by writing BKBLOCK to 1
tamp_confirmedOutputConfirmed tamper detection signal, used for device secrets (1) protection.
This signal is active when:
– a tamper event detection flag (internal or external tamper), is generated in confirmed mode.
– or a software request is done by writing BKERASE to 1
tamp_potential_rpcfgz
(z = signal index)
OutputPotential tamper detection signal generated only when RPCFGz = 1.
This signal is active when:
– a tamper event detection flag (internal or external tamper), is generated in potential mode.
– or a software request is done by writing BKBLOCK to 1

Table 514. TAMP internal input/output signals (continued)

Internal signal nameSignal typeDescription
tamp_confirmed_rpcfgz
(z = signal index)
OutputConfirmed tamper detection signal generated only when RPCFGZ = 1.
This signal is active when:
– a tamper event detection flag (internal or external tamper), is generated in confirmed mode.
– or a software request is done by writing BKERASE to 1
tamp_itOutputTAMP interrupt (refer to Section 50.5: TAMP interrupts for details)
tamp_trg[x]
(x = signal index)
OutputTamper detection trigger
tamp_bhkOutputTamper boot hardware key bus

1. Refer to Table 515: TAMP interconnection .

The TAMP kernel clock is usually the LSE at 32.768 kHz although it is possible to select other clock sources in the RCC (refer to RCC for more details). The TAMP kernel clock is required only for external tamper inputs level with filtering, and for external active tamper detection modes. Internal tampers detection and external tampers inputs edge detection are functional without requiring any kernel clock.

Read and write access to backup registers and all other TAMP registers are also functional without any kernel clock (only APB clock is needed).

Some detections modes are not available in some low-power modes or V BAT depending on the selected clock (refer to for more details).

Table 515. TAMP interconnection

Signal nameSource/Destination
tamp_evtrtc_tamp_evt used to generate a timestamp event
tamp_potential

The tamp_potential signal is used to block the read and write accesses to the device secrets listed hereafter:

  • – backup registers

RHUK (root hardware unique key) in system Flash memory and BHK (boot hardware key) hardware buses to SAES are blocked.

The tamp_potential signal is used to erase the device secrets listed hereafter:

  • – SAES, AES, HASH peripherals
  • – PKA SRAM

The device secrets access is blocked when erase is on-going.

Table 515. TAMP interconnection (continued)

Signal nameSource/Destination
tamp_confirmed

The tamp_confirmed signal is used to erase the device secrets listed hereafter:

  • – backup registers
  • – MCE keys and CRC registers
  • – SAES, AES, HASH peripherals
  • – PKA SRAM

The device secrets access is blocked when erase is on-going.
RHUK in system Flash memory (root hardware unique key) hardware bus to SAES is blocked.

tamp_potential_rpcfg0

When the bit RPCFG0 is set in the TAMP_RPCFGGR, the tamp_potential_rpcfg0 signal is used to block the read and write accesses to the device secrets listed hereafter:

  • – Backup SRAM
tamp_confirmed_rpcfg0

When the bit RPCFG0 is set in the TAMP_RPCFGGR, the tamp_confirmed_rpcfg0 signal is used to erase the device secrets listed hereafter:

  • – Backup SRAM

The device secrets access is blocked when erase is on-going.

tamp_itamp1Backup domain voltage threshold monitoring (1)
tamp_itamp2Temperature monitoring (1)
tamp_itamp3LSE monitoring (LSECSS) (2)
tamp_itamp4HSE monitoring (rcc_hsecss_fail)
tamp_itamp5RTC calendar overflow (rtc_calovf)
tamp_itamp6JTAG/SWD access when NVSTATE ≠ OPEN
tamp_itamp7ADC2 watchdog monitoring 1
tamp_itamp8 (3)Monotonic counter 1 overflow
tamp_itamp9Cryptographic peripherals fault (SAES or AES or PKA or TRNG)
tamp_itamp11IWDG reset when tamper flag is set (potential tamper timeout)
tamp_itamp15System fault
tamp_bhksaes_bhk. This bus is used to load the boot hardware key in the secure AES co-processor.

1. This monitoring must be enabled by setting MONEN in PWR control status register 1 (PWR_CSR1) .

2. This monitoring must be enabled by setting LSECSSON in RCC Backup domain control register (RCC_BDCR) .

3. This signal is generated in the TAMP peripheral.

50.3.3 GPIOs controlled by the RTC and TAMP

Refer to Section 49.3.3: GPIOs controlled by the RTC and TAMP .

50.3.4 TAMP register write protection

After system reset, the TAMP registers (including backup registers) are protected against parasitic write access by the DBP bit in the power control peripheral (refer to the PWR power control section). DBP bit must be set in order to enable TAMP registers write access.

50.3.5 Backup registers protection zones

The backup registers protection is configured thanks to BKPRW[7:0] and BKPW[7:0] (refer to the figure below):

Figure 679. Backup registers protection zones

Diagram showing backup registers protection zones. It consists of three stacked boxes labeled 'Protection Zone 3', 'Protection Zone 2', and 'Protection Zone 1'. To the right of each box is a list of registers: Zone 3 includes TAMP_BKPI<sup>(1)</sup>R; Zone 2 includes TAMP_BKPtR (t = BKPW) and TAMP_BKPzR (z = BKPW-1); Zone 1 includes TAMP_BKPyR (y = BKPRW) and TAMP_BKPxR (x = BKPRW-1). Below the boxes is the register TAMP_BKP0R. The diagram is labeled MSv67557V1 in the bottom right corner.
Diagram showing backup registers protection zones. It consists of three stacked boxes labeled 'Protection Zone 3', 'Protection Zone 2', and 'Protection Zone 1'. To the right of each box is a list of registers: Zone 3 includes TAMP_BKPI (1) R; Zone 2 includes TAMP_BKPtR (t = BKPW) and TAMP_BKPzR (z = BKPW-1); Zone 1 includes TAMP_BKPyR (y = BKPRW) and TAMP_BKPxR (x = BKPRW-1). Below the boxes is the register TAMP_BKP0R. The diagram is labeled MSv67557V1 in the bottom right corner.

1. I = last backup register index

50.3.6 TAMP privilege protection modes

By default after a backup domain power-on reset, all TAMP registers can be read or written in both privileged and unprivileged modes, except for the TAMP privilege configuration register (TAMP_PRIVCFGGR) which can be written in privilege mode only. The TAMP protection configuration is not affected by a system reset.

The backup registers protection is configured thanks to BKPRW[7:0] and BKPRWPRIV for the protection zone 1, and thanks to BKPRW[7:0], BKPW[7:0] and BKPRWPRIV for the

protection zone 2 (refer to Figure 679 ). The BHKLOCK bit can be written only in privileged mode when the BKPRWPRIV bit is set.

A unprivileged access to a privileged-protected register is denied:

50.3.7 Boot hardware key (BHK)

The eight first backup registers from TAMP_BKP0R to TAMP_BKP7R can be used to store a boot hardware key for the secure AES.

Once the backup registers are written with the boot hardware key, the BHKLOCK bit must be set in the TAMP_CFGR register. Once BHKLOCK is set, the 8 backup registers cannot be accessed anymore by software: they are read as 0 and write to these registers is ignored. BHKLOCK cannot be cleared by software, and is cleared by hardware following a tamper event or when the product state is opened. It is also cleared with BKERASE command (in all cases the backup registers are also erased).

Refer to section secure AES co-processor (SAES) for details on procedure to download the boot hardware key in the SAES.

50.3.8 Tamper detection

The tamper detection main purpose is to protect the device secrets from device external attacks. The detection is made on events on TAMP_INx (x = pin index) I/Os, or on internal monitors detecting out-of-range device conditions.

The tamper detection can be configured for the following purposes:

The external I/Os tamper detection supports 2 main configurations:

A digital filter can be applied on external tamper detection to avoid false detection. In addition, it is possible to configure each tamper source in potential mode, so that the secrets erase is not launched by hardware on tamper detection. The secrets erase can then be launched by software after software checks.

50.3.9 TAMP backup registers and other device secrets erase

The backup registers (TAMP_BKPxR) are not reset by system reset or when the device wakes up from Standby mode.

The backup registers and the other device secrets are not reset when the corresponding mask is set (TAMPxMSK=1 in the TAMP_CR2 register).

Note: The backup registers are also erased when the product state is changed from Closed to Open.

Tamper detection – confirmed mode

The confirmed mode is selected for TAMPx (external tamper x) when TAMPxPOM = 0 in the TAMP_CR2 register. The confirmed mode is selected for ITAMPx (internal tamper x) when ITAMPxPOM = 0 in the TAMP_CR3 register. The effects of a tamper detection in confirmed mode are described with tamp_confirmed and tamp_confirmed_rpcfgx signals in the Table 515: TAMP interconnection .

This mode is selected to erase automatically the device secrets when the tamper is detected.

Tamper detection – potential mode

The potential mode is selected for TAMPx (external tamper x) when TAMPxPOM = 1 in the TAMP_CR2 register. The potential tamper mode is selected for ITAMPx (internal tamper x) when ITAMPxPOM = 1 in the TAMP_CR3 register. The effects of a tamper detection in potential mode are described with tamp_potential and tamp_potential_rpcfgx signals in the Table 515: TAMP interconnection .

This mode is selected to avoid irreversible erasure of some device secrets when the tamper is detected. In this mode, some device secrets are not erased when the corresponding tamper event is detected. In addition, the read and write accesses to these device secrets are blocked as soon as the tamper detection flag is set in potential mode, until this flag is cleared by setting the corresponding clear flag in the TAMP_SCR register. Therefore the software can perform some checks to discriminate false from true tampers, and decide to launch secrets erase only in case of the potential tamper is confirmed to be a true tamper. The device secrets are erased by software by setting the BKERASE bit in the TAMP_CR2 register.

Potential tamper to confirmed tamper timeout

Some internal tampers generate a tamper event if the independent watchdog reset occurs when another tamper flag is set (refer to Table 515: TAMP interconnection ). The IWDG tamper must be configured with ITAMPxPOM = 0. This permits the erasure of device secrets to be forced by hardware after a timeout, in case the previous tamper event was in potential mode. This is equivalent to change the “potential tamper” into “confirmed tamper” if a watchdog reset occurs before any software decision following the potential tamper event.

Device resources protection configuration

Some device resources can be configured in order to be included to the list of the device secrets protected by tamper detection.

When RPCFGz = 0 in the TAMP_RPCFGR, the device resource associated to RPCFGz is not protected by the TAMP peripheral:

When RPCFGz = 1 in the TAMP_RPCFGR, the device resource associated to RPCFGz is protected by the TAMP peripheral:

Table 516. Device resource x tamper protection

-Potential tamper or BKBLOCKConfirmed tamper or BKERASE
RPCFGx = 0No effect on device resource xNo effect on device resource x
RPCFGx = 1Device secret x protected as described by tamp_potential_rpcfgx (1)Device secret x protected as described by tamp_confirmed_rpcfgx (1)

1. Refer to Table 515: TAMP interconnection .

Device secrets access blocked by software

By default, the device secrets can be accessed by the application, except if a tamper event flag is detected: the device secrets access is not possible as long as a tamper flag is set.

It is possible to block the access to the device secrets by software, by setting the BKBLOCK bit of the TAMP_CR2 register. The device secrets access is possible only when BKBLOCK = 0 and no tamper flag is set.

50.3.10 Tamper detection configuration and initialization

Each input can be enabled by setting the corresponding TAMPxE bits to 1 in the TAMP_CR register.

Each TAMP_INx tamper detection input is associated with a flag TAMPxF in the TAMP_SR register.

By setting the TAMPxIE bit in the TAMP_IER register, an interrupt is generated when a tamper detection event occurs (when TAMPxF is set). Setting TAMPxIE is not allowed when the corresponding TAMPxMSK is set.

Trigger output generation on tamper event

The tamper event detection can be used as trigger input by the low-power timers.

When TAMPxMSK bit is cleared in TAMP_CR register, the TAMPxF flag must be cleared by software in order to allow a new tamper detection on the same pin.

When TAMPxMSK bit is set, the TAMPxF flag is masked, and kept cleared in TAMP_SR register. This configuration permits the low-power timers to be triggered automatically in

Stop mode, without requiring the system wake-up to perform the TAMPxF clearing. In this case, the backup registers are not cleared.

This feature is available only when the tamper is configured in level detection with filtering mode (TAMPFLT \( \neq \) 00 and active mode is not selected). Refer to Section : Level detection with filtering on tamper inputs (passive mode) .

Timestamp on tamper event

With TAMPTS set to 1 in the RTC_CR, any internal or external tamper event causes a timestamp to occur. In case a timestamp occurs due to tamper event, either the TSF bit or the TSOVF bit is set in RTC_SR, in the same manner as if a normal timestamp event occurs.

Note: TSF is set up to 3 ck_apre cycles after TAMPxF flags. TSF is not set if RTCCLK is stopped (it is set when RTCCLK restarts).

Note: If TAMPxF is cleared before the expected rise of TSF, TSF is not set. Consequently, in case TAMPTS = 1, the software should either wait for timestamp flag before clearing the tamper flag, or should read the RTC counters values in the TAMP interrupt routine.

Edge detection on tamper inputs (passive mode)

If the TAMPFLT bits are 00, the TAMP_INx pins generate tamper detection events when either a rising edge or a falling edge is observed depending on the corresponding TAMPxTRG bit. The internal pull-up resistors on the TAMP_INx inputs are deactivated when edge detection is selected.

Caution: When TAMPFLT = 00 and TAMPxTRG = 0 (rising edge detection), a tamper event may be detected by hardware if the tamper input is already at high level before enabling the tamper detection.

After a tamper event has been detected and cleared, the TAMP_INx should be disabled and then re-enabled (TAMPxE set to 1) before re-programming the backup registers (TAMP_BKPxR). This prevents the application from writing to the backup registers while the TAMP_INx input value still indicates a tamper detection. This is equivalent to a level detection on the TAMP_INx input.

Note: Tamper detection is still active when \( V_{DD} \) power is switched off. To avoid unwanted resetting of the backup registers, the pin to which the TAMPx is mapped should be externally tied to the correct level.

Level detection with filtering on tamper inputs (passive mode)

Level detection with filtering is performed by setting TAMPFLT to a non-zero value. A tamper detection event is generated when either 2, 4, or 8 (depending on TAMPFLT) consecutive samples are observed at the level designated by the TAMPxTRG bits.

The TAMP_INx inputs are precharged through the I/O internal pull-up resistance before its state is sampled, unless disabled by setting TAMPPUDIS to 1. The duration of the precharge is determined by the TAMPPRCH bits, allowing for larger capacitances on the TAMP_INx inputs.

The trade-off between tamper detection latency and power consumption through the pull-up can be optimized by using TAMPFREQ to determine the frequency of the sampling for level detection. The TAMP_IN I/O schmitt trigger is enabled only during the precharge duration to avoid any extra consumption if the tamper switch is open (floating state).

Figure 680. Tamper sampling with precharge pulse

Timing diagram for Figure 680 showing RTC clock, Floating input, and Switch opened signals. It illustrates sampling points after precharge durations of 1, 2, 4, and 8 RTCCLK cycles.

Figure 680 shows a timing diagram for tamper sampling with a precharge pulse. The top signal is the RTC clock, a periodic square wave. Below it is the Floating input signal, which is high before the switch opens and drops to a lower level when the switch opens. The bottom signal is the Switch opened signal, which shows a transition from a high state to a low state. The diagram indicates the sampling point on the Floating input signal, which occurs after the switch has opened. The precharge duration is shown as a time interval starting from the switch opening and ending at the sampling point. The precharge duration can be 1, 2, 4, or 8 RTCCLK cycles, with the 8 RTCCLK cycle duration not shown.

Timing diagram for Figure 680 showing RTC clock, Floating input, and Switch opened signals. It illustrates sampling points after precharge durations of 1, 2, 4, and 8 RTCCLK cycles.

Figure 681. Low level detection with precharge and filtering

Timing diagram for Figure 681 showing RTCCLK, Internal pull-up enable, TAMP_INx, and Schmitt trigger enable. It demonstrates sampling and filtering logic.

Figure 681 shows a timing diagram for low level detection with precharge and filtering. The top signal is the RTCCLK, a periodic square wave. Below it is the Internal pull-up enable (TAMPPUDIS=0) signal, which is high. The TAMP_IN x (TAMPPUDIS=0) signal is shown as floating and then tied to 0. The Schmitt trigger enable signal is shown as high. The diagram illustrates the sampling process, which occurs when the TAMP_IN x signal is low. The precharge duration is 1 RTCCLK cycle. The TAMP x TRG signal is shown as a low-level detection signal. The TAMP x PRCH signal is shown as a precharge pulse. The TAMP x REQ signal is shown as a tamper event request signal. The TAMP x F signal is shown as a tamper event flag signal.

Configuration:
TAMPxTRG=0: Low level detection
TAMPPRCH=1: 1 RTCCLK cycle pre-charge duration (internal pull-up is applied)
TAMPFLT=1: Tamper event is activated after 2 consecutive samples at active level

Timing diagram for Figure 681 showing RTCCLK, Internal pull-up enable, TAMP_INx, and Schmitt trigger enable. It demonstrates sampling and filtering logic.

Note: Refer to the microcontroller datasheet for the electrical characteristics of the pull-up resistors.

Active tamper detection

When the TAMPxAM bit is set in the TAMP_ATCR, the tamper events are configured in active mode, which is based on a comparison between a TAMP_OUTy pin and a TAMP_INx pin. By default (ATOSHARE = 0) the comparison is made between TAMP_INx and TAMP_OUTx (y = x). When ATOSHARE bit is set, the same output can be used for several tamper inputs. The TAMP_OUTy function is enabled on the I/O as soon as it is selected for comparison with an active tamper input TAMP_INx (TAMPxEN = TAMPxAM = 1), thanks to

ATOSHARE and ATOSELx bits. Refer to ATOSHARE and ATOSEL bits descriptions in the TAMP_ATCRx (x = 1, 2) registers.

Every two CK_ATPER cycles ( \( CK\_ATPER = 2^{ATPER} \times CK\_ATPRE \) ), TAMP_OUTy output pin provides a value provided by a pseudo random number generator (PRNG). After outputting this value, the TAMP_OUTy pin outputs its opposite value one CK_ATPER cycle after.

Table 517. Active tamper output change period

ATCKSEL[3:0]CK_ATPRE frequencyATPER[2:0]Tamper output change (CK_ATPER) frequencyTamper output change period (1) (ms)
0x0\( f_{RTCCLK} \)0x0\( f_{RTCCLK} \)0.030
0x1\( f_{RTCCLK}/2 \)0.061
0x2\( f_{RTCCLK}/4 \)0.122
0x3\( f_{RTCCLK}/8 \)0.244
0x4\( f_{RTCCLK}/16 \)0.488
0x5\( f_{RTCCLK}/32 \)0.977
0x6\( f_{RTCCLK}/64 \)1.953
0x7\( f_{RTCCLK}/128 \)3.906
...............
0x7\( f_{RTCCLK}/128 \)0x0\( f_{RTCCLK}/128 \)3.906
0x1\( f_{RTCCLK}/256 \)7.8125
0x2\( f_{RTCCLK}/512 \)15.625
0x3\( f_{RTCCLK}/1024 \)31.250
0x4\( f_{RTCCLK}/2048 \)62.5
0x5\( f_{RTCCLK}/4096 \)125
0x6\( f_{RTCCLK}/8192 \)250
0x7\( f_{RTCCLK}/16384 \)500
0xB\( f_{RTCCLK}/2048^{(2)} \)0x0\( f_{RTCCLK}/2048 \)62.5
0x1\( f_{RTCCLK}/4096 \)125
0x2\( f_{RTCCLK}/8192 \)250
0x3\( f_{RTCCLK}/16384 \)500
0x4\( f_{RTCCLK}/32768 \)1000
0x5\( f_{RTCCLK}/65536 \)2000
0x6\( f_{RTCCLK}/131072 \)4000
0x7\( f_{RTCCLK}/262144 \)8000

1. Assuming \( f_{RTCCLK} = 32768 \) Hz.

2. This setting requires that (PREDIV_A+1) = 128 and (PREDIV_S+1) is a multiple of 16.

PRNG is consumed by the selected tamper outputs at a different frequency depending on

the number of selected tamper outputs. The number of selected outputs depends on TAMPxAM, TAMPxE, ATOSEL and ATOSHARE.

The PRNG needs minimum 9 CK_ATPRE cycles to output a new value. Consequently the minimum ATPER values for correct functionality are provided in the table below:

Table 518. Minimum ATPER value

Number of selected outputsMinimum ATPER
10
21
3 or 42
5 or more3

The TAMP_INx pin is externally connected to TAMP_OUTy pin. The comparison is made between TAMP_OUTy output value and TAMP_INx received value, every CK_ATPRE cycle. In case a comparison mismatch occurs, the TAMPxF bit is set in the TAMP_SR register.

As an example, TAMP_OUT1 can be used for comparison with TAMP_IN1 and TAMP_IN2 by configuring and enabling both TAMP1 and TAMP2 in active mode, with ATOSHARE = 1, ATOSEL1 = 000 and ATOSEL2 = 000.

The active tamper can be combined with input filtering when FLTEN = 1. In this case, the tamper is detected only when 2 comparisons are false, in 4 consecutive comparison samples.

Figure 682. Active tamper filtering

Timing diagram for active tamper filtering. The diagram shows five waveforms: CK_ATPRE (clock), TAMP_OUTy (output), TAMP_INx (a), TAMP_INx (b), and TAMP_INx (c). The CK_ATPRE clock is a periodic square wave. The TAMP_OUTy output is a step function that changes state. The TAMP_INx inputs are also step functions. The diagram illustrates the comparison interval for the tamper detection logic. It shows three examples (a, b, and c) where a mismatch occurs between the TAMP_OUTy output and the TAMP_INx input. For example (a), if FLTEN=0, a tamper is detected; if FLTEN=1, no tamper is detected. For examples (b) and (c), a tamper is detected. The diagram is labeled MSv67573V1.
Timing diagram for active tamper filtering. The diagram shows five waveforms: CK_ATPRE (clock), TAMP_OUTy (output), TAMP_INx (a), TAMP_INx (b), and TAMP_INx (c). The CK_ATPRE clock is a periodic square wave. The TAMP_OUTy output is a step function that changes state. The TAMP_INx inputs are also step functions. The diagram illustrates the comparison interval for the tamper detection logic. It shows three examples (a, b, and c) where a mismatch occurs between the TAMP_OUTy output and the TAMP_INx input. For example (a), if FLTEN=0, a tamper is detected; if FLTEN=1, no tamper is detected. For examples (b) and (c), a tamper is detected. The diagram is labeled MSv67573V1.

As illustrated in Figure 682 , if FLTEN = 0, any mismatch between the TAMP_OUTy output and the associated TAMP_INx input when the latter is sampled generates a tamper. This is the case in all three examples (a), (b) and (c).

If FLTEN = 1, example (a) does not generate a tamper, since only one mismatch is detected in four consecutive comparisons. In example (b), a tamper is generated since two successive mismatches are detected. Example (c) also generates a tamper, since two mismatches occur in four consecutive comparisons, even though the mismatches do not occur on successive samples.

Setting FLTEN = 1 avoids unwanted detection of tampers due to glitches, bounce or transitory states on the TAMP_INx inputs, by ignoring single pulses which are shorter than one period of CK_ATPRE, programmed in the ATCKSEL field of the TAMP_ATCR1 register. The minimum filtered pulse width is listed in Table 519 for each possible setting of ATCKSEL, assuming \( f_{RTCCLK} = 32.768 \text{ kHz} \) .

Table 519. Active tamper filtered pulse duration

ATCKSEL[3:0]CK_ATPRE frequencyMinimum filtered pulse width (ms)
0x0\( f_{RTCCLK} \)0.030
0x1\( f_{RTCCLK}/2 \)0.061
0x2\( f_{RTCCLK}/4 \)0.122
0x3\( f_{RTCCLK}/8 \)0.244
0x4\( f_{RTCCLK}/16 \)0.488
0x5\( f_{RTCCLK}/32 \)0.977
0x6\( f_{RTCCLK}/64 \)1.953
0x7\( f_{RTCCLK}/128 \)3.906
0xB\( f_{RTCCLK}/2048 \)62.500 (1)

1. This setting requires that (PREDIV_A+1) = 128 and (PREDIV_S+1) is a multiple of 16.

Note: Multiple pulses which are shorter than one CK_ATPRE period may nevertheless cause a tamper if they result in two mismatches in four consecutive comparisons.

Caution: Entering RTC initialization mode stops CK_ATPRE and CK_ATPER clocks when ATCKSEL[3] = 1. Therefore, TAMP_OUTy pin stops toggling until INIT mode exit.

Refer to section Section : Calendar initialization and configuration .

Refer also to RTC alarm A subsecond register (RTC_ALRMASSR) , RTC alarm B subsecond register (RTC_ALRMBSSR) , RTC alarm A binary mode register (RTC_ALRABINR) and RTC alarm B binary mode register (RTC_ALRBBINR) in case RTC binary mode is used in conjunction with ATCKSEL[3] = 1.

Caution: The active tamper detection is no more functional in case of calendar overflow when ATCKSEL[3] = 1. It is mandatory to enable the internal tamper 5 on calendar overflow to ensure tamper protection.

The pseudo-random generator must be initialized with a seed. This is done by writing consecutively four 32-bit random values in the TAMP_ATSEEDR register. Programming the seed automatically sends it to the PRNG. As long as the new seed is transferred and elaborated by the PRNG, the SEEDF bit is set in the TAMP_ATOR and it is not allowed to switch off the TAMP APB clock. The duration of the elaboration is up to 184 APB clock cycles after the forth seed is written. Consequently, after writing a new seed, the user must wait until SEEDF is cleared before entering low-power modes.

The active tamper outputs are activated only after the first seed is written and the elaboration is completed. Then new seeds can be written and elaborated during active tamper activity.

Active tamper initialization

Here is the software procedure to initialize the active tampers after system reset:

Read INITS in TAMP_ATOR register.

50.4 TAMP low-power modes

Table 520. Effect of low-power modes on TAMP

ModeDescription
SleepNo effect.
TAMP interrupts cause the device to exit the Sleep mode.
StopNo effect on all features, except for level detection with filtering and active tamper modes which remain active only when the clock source is LSE or LSI.
TAMP interrupts cause the device to exit the Stop mode.
StandbyNo effect on all features, except for level detection with filtering and active tamper modes which remain active only when the clock source is LSE or LSI.
TAMP interrupts cause the device to exit the Standby mode.

Table 521. TAMP pins functionality over modes

Pin nameFunctional in all low-power modesFunctional in V BAT mode
TAMP_IN[8:1]YesYes/no (1)
TAMP_OUT[8:1]YesYes/no (2)

50.5 TAMP interrupts

Table 522. Interrupt requests

Interrupt acronymInterrupt eventEvent flag (1)Enable control bitInterrupt clear methodExit from low-power modes
TAMPTamper x (2)TAMPxFTAMPxEWrite 1 in CTAMPxFYes (3)
Internal tamper y (2)ITAMPyFITAMPyEWrite 1 in CITAMPyFYes (3)

50.6 TAMP registers

Refer to Section 1.2 of the reference manual for a list of abbreviations used in register descriptions. The peripheral registers can be accessed by words (32-bit).

50.6.1 TAMP control register 1 (TAMP_CR1)

This register can be protected against unprivileged access. Refer to Section 50.3.6: TAMP privilege protection modes .

Address offset: 0x00

Backup domain reset value: 0x0000 0000

System reset: not affected

31302928272625242322212019181716
Res.ITAMP15ERes.Res.Res.ITAMP11ERes.ITA-MP9EITAMP8EITA-MP7EITAMP6EITAMP5EITAMP4EITAMP3EITAMP2EITAMP1E
rwrwrwrwrwrwrwrwrwrwrw

1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.TAMP8ETAMP7ETAMP6ETAMP5ETAMP4ETAMP3ETAMP2ETAMP1E
rwrwrwrwrwrwrwrw
  1. Bit 31 Reserved, must be kept at reset value.
  2. Bit 30 ITAMP15E : Internal tamper 15 enable
    0: Internal tamper 15 disabled.
    1: Internal tamper 15 enabled.
  3. Bit 29 Reserved, must be kept at reset value.
  4. Bit 28 Reserved, must be kept at reset value.
  5. Bit 27 Reserved, must be kept at reset value.
  6. Bit 26 ITAMP11E : Internal tamper 11 enable
    0: Internal tamper 11 disabled.
    1: Internal tamper 11 enabled.
  7. Bit 25 Reserved, must be kept at reset value.
  8. Bit 24 ITAMP9E : Internal tamper 9 enable
    0: Internal tamper 9 disabled.
    1: Internal tamper 9 enabled.
  9. Bit 23 ITAMP8E : Internal tamper 8 enable
    0: Internal tamper 8 disabled.
    1: Internal tamper 8 enabled.
  10. Bit 22 ITAMP7E : Internal tamper 7 enable
    0: Internal tamper 7 disabled.
    1: Internal tamper 7 enabled
  11. Bit 21 ITAMP6E : Internal tamper 6 enable
    0: Internal tamper 6 disabled.
    1: Internal tamper 6 enabled.
  12. Bit 20 ITAMP5E : Internal tamper 5 enable
    0: Internal tamper 5 disabled.
    1: Internal tamper 5 enabled.
  13. Bit 19 ITAMP4E : Internal tamper 4 enable
    0: Internal tamper 4 disabled.
    1: Internal tamper 4 enabled.
  14. Bit 18 ITAMP3E : Internal tamper 3 enable
    0: Internal tamper 3 disabled.
    1: Internal tamper 3 enabled.
  15. Bit 17 ITAMP2E : Internal tamper 2 enable
    0: Internal tamper 2 disabled.
    1: Internal tamper 2 enabled.
  16. Bit 16 ITAMP1E : Internal tamper 1 enable
    0: Internal tamper 1 disabled.
    1: Internal tamper 1 enabled.
  17. Bits 15:8 Reserved, must be kept at reset value.
  18. Bit 7 TAMP8E : Tamper detection on TAMP_IN8 enable (1)
    0: Tamper detection on TAMP_IN8 is disabled.
    1: Tamper detection on TAMP_IN8 is enabled.

1. Tamper detection mode (selected with TAMP_FLTCR, TAMP_ATCR1, TAMP_ATCR2 registers and TAMPxTRG bits in TAMP_CR2), must be configured before enabling the tamper detection.

50.6.2 TAMP control register 2 (TAMP_CR2)

This register can be protected against unprivileged access. Refer to Section 50.3.6: TAMP privilege protection modes .

Address offset: 0x04

Backup domain reset value: 0x0000 0000

System reset: not affected

31302928272625242322212019181716
TAMP8 TRGTAMP7 TRGTAMP6 TRGTAMP5 TRGTAMP4 TRGTAMP3 TRGTAMP2 TRGTAMP1 TRGBK ERASEBK BLOCKRes.Res.Res.TAMP3 MSKTAMP2 MSKTAMP1 MSK
rwrwrwrwrwrwrwrwwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.TAMP8 POMTAMP7 POMTAMP6 POMTAMP5 POMTAMP4 POMTAMP3 POMTAMP2 POMTAMP1 POM
rwrwrwrwrwrwrwrw

Bit 31 TAMP8TRG : Active level for tamper 8 input (active mode disabled)

Bit 30 TAMP7TRG : Active level for tamper 7 input (active mode disabled)

Bit 29 TAMP6TRG : Active level for tamper 6 input (active mode disabled)

Bit 28 TAMP5TRG : Active level for tamper 5 input (active mode disabled)

Bit 27 TAMP4TRG : Active level for tamper 4 input (active mode disabled)

Bit 26 TAMP3TRG : Active level for tamper 3 input

Bit 25 TAMP2TRG : Active level for tamper 2 input

Bit 24 TAMP1TRG : Active level for tamper 1 input

Bit 23 BKERASE : Backup registers and device secrets (1) erase

Writing '1' to this bit reset the backup registers and device secrets (1) . Writing 0 has no effect.
This bit is always read as 0.

Bit 22 BKBLOCK : Backup registers and device secrets (1) access blocked

Bits 21:19 Reserved, must be kept at reset value.

Bit 18 TAMP3MSK : Tamper 3 mask

0: Tamper 3 event generates a trigger event and TAMP3F must be cleared by software to allow next tamper event detection.

1: Tamper 3 event generates a trigger event. TAMP3F is masked and internally cleared by hardware. The backup registers and device secrets (1) are not erased.

The tamper 3 interrupt must not be enabled when TAMP3MSK is set.

Bit 17 TAMP2MSK : Tamper 2 mask

0: Tamper 2 event generates a trigger event and TAMP2F must be cleared by software to allow next tamper event detection.

1: Tamper 2 event generates a trigger event. TAMP2F is masked and internally cleared by hardware. The backup registers and device secrets (1) are not erased.

The tamper 2 interrupt must not be enabled when TAMP2MSK is set.

Bit 16 TAMP1MSK : Tamper 1 mask

0: Tamper 1 event generates a trigger event and TAMP1F must be cleared by software to allow next tamper event detection.

1: Tamper 1 event generates a trigger event. TAMP1F is masked and internally cleared by hardware. The backup registers and device secrets (1) are not erased.

The tamper 1 interrupt must not be enabled when TAMP1MSK is set.

Bits 15:8 Reserved, must be kept at reset value.

Bit 7 TAMP8POM : Tamper 8 potential mode

0: Tamper 8 event detection is in confirmed mode (1) .

1: Tamper 8 event detection is in potential mode (2) .

Bit 6 TAMP7POM : Tamper 7 potential mode

0: Tamper 7 event detection is in confirmed mode (1) .

1: Tamper 7 event detection is in potential mode (2) .

Bit 5 TAMP6POM : Tamper 6 potential mode

0: Tamper 6 event detection is in confirmed mode (1) .

1: Tamper 6 event detection is in potential mode (2) .

Bit 4 TAMP5POM : Tamper 5 potential mode

0: Tamper 5 event detection is in confirmed mode (1) .

1: Tamper 5 event detection is in potential mode (2) .

Bit 3 TAMP4POM : Tamper 4 potential mode

0: Tamper 4 event detection is in confirmed mode (1) .

1: Tamper 4 event detection is in potential mode (2) .

Bit 2 TAMP3POM : Tamper 3 potential mode

0: Tamper 3 event detection is in confirmed mode (1) .

1: Tamper 3 event detection is in potential mode (2) .

Bit 1 TAMP2POM : Tamper 2 potential mode

0: Tamper 2 event detection is in confirmed mode (1) .

1: Tamper 2 event detection is in potential mode (2) .

Bit 0 TAMP1POM : Tamper 1 potential mode

0: Tamper 1 event detection is in confirmed mode (1) .

1: Tamper 1 event detection is in potential mode (2) .

  1. 1. The effects of tamper detection in confirmed mode is described with tamp_confirmed and tamp_confirmed_rpcfgx signals in Table 515: TAMP interconnection .
  2. 2. The effects of tamper detection in potential mode is described with tamp_potential and tamp_potential_rpcfgx signals in Table 515: TAMP interconnection .

50.6.3 TAMP control register 3 (TAMP_CR3)

This register can be protected against unprivileged access. Refer to Section 50.3.6: TAMP privilege protection modes .

Address offset: 0x08

Backup domain reset value: 0x0000 0000

System reset: not affected

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.ITAMP15POMRes.Res.Res.ITAMP11POMRes.ITAMP9POMITAMP8POMITAMP7POMITAMP6POMITAMP5POMITAMP4POMITAMP3POMITAMP2POMITAMP1POM
rwrwrwrwrwrwrwrwrwrwrw

Bits 31:16 Reserved, must be kept at reset value.

Bit 15 Reserved, must be kept at reset value.

Bit 14 ITAMP15POM : Internal tamper 15 potential mode

0: Internal tamper 15 event detection is in confirmed mode (1) .

1: Internal tamper 15 event detection is in potential mode (2) .

Bit 13 Reserved, must be kept at reset value.

Bit 12 Reserved, must be kept at reset value.

Bit 11 Reserved, must be kept at reset value.

Bit 10 ITAMP11POM : Internal tamper 11 potential mode

0: Internal tamper 11 event detection is in confirmed mode (1) .

1: Internal tamper 11 event detection is in potential mode (2) .

Bit 9 Reserved, must be kept at reset value.

Bit 8 ITAMP9POM : Internal tamper 9 potential mode

0: Internal tamper 9 event detection is in confirmed mode (1) .

1: Internal tamper 9 event detection is in potential mode (2) .

Bit 7 ITAMP8POM : Internal tamper 8 potential mode

0: Internal tamper 8 event detection is in confirmed mode (1) .

1: Internal tamper 8 event detection is in potential mode (2) .

Bit 6 ITAMP7POM : Internal tamper 7 potential mode

0: Internal tamper 7 event detection is in confirmed mode (1) .

1: Internal tamper 7 event detection is in potential mode (2) .

Bit 5 ITAMP6POM : Internal tamper 6 potential mode

0: Internal tamper 6 event detection is in confirmed mode (1) .

1: Internal tamper 6 event detection is in potential mode (2) .

Bit 4 ITAMP5POM : Internal tamper 5 potential mode

0: Internal tamper 5 event detection is in confirmed mode (1) .

1: Internal tamper 5 event detection is in potential mode (2) .

Bit 3 ITAMP4POM : Internal tamper 4 potential mode

Bit 2 ITAMP3POM : Internal tamper 3 potential mode

Bit 1 ITAMP2POM : Internal tamper 2 potential mode

Bit 0 ITAMP1POM : Internal tamper 1 potential mode

  1. 1. The effects of internal tamper detection in confirmed mode is described with tamp_confirmed and tamp_confirmed_rpcfgx signals in Table 515: TAMP interconnection
  2. 2. The effects of internal tamper detection in potential mode is described with tamp_potential and tamp_potential_rpcfgx signals in Table 515: TAMP interconnection .

50.6.4 TAMP filter control register (TAMP_FLTCR)

This register can be protected against unprivileged access. Refer to Section 50.3.6: TAMP privilege protection modes .

Address offset: 0x0C

Backup domain reset value: 0x0000 0000

System reset: not affected

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.TAMP
PUDIS
TAMPPRCH
[1:0]
TAMPFLT
[1:0]
TAMPFREQ
[2:0]
rwrwrwrwrwrwrwrw

Bits 31:8 Reserved, must be kept at reset value.

Bit 7 TAMPPUDIS : TAMP_INx pull-up disable

This bit determines if each of the TAMPx pins are precharged before each sample.

Bits 6:5 TAMPPRCH[1:0] : TAMP_INx precharge duration

These bit determines the duration of time during which the pull-up/is activated before each sample. TAMPPRCH is valid for each of the TAMP_INx inputs.
0x0: 1 RTCCLK cycle
0x1: 2 RTCCLK cycles
0x2: 4 RTCCLK cycles
0x3: 8 RTCCLK cycles

Bits 4:3 TAMPFLT[1:0] : TAMP_INx filter count

These bits determines the number of consecutive samples at the specified level (TAMP*TRG) needed to activate a tamper event. TAMPFLT is valid for each of the TAMP_INx inputs.

0x0: Tamper event is activated on edge of TAMP_INx input transitions to the active level (no internal pull-up on TAMP_INx input).

0x1: Tamper event is activated after 2 consecutive samples at the active level.

0x2: Tamper event is activated after 4 consecutive samples at the active level.

0x3: Tamper event is activated after 8 consecutive samples at the active level.

Bits 2:0 TAMPFREQ[2:0] : Tamper sampling frequency

Determines the frequency at which each of the TAMP_INx inputs are sampled.

0x0: RTCCLK / 32768 (1 Hz when RTCCLK = 32768 Hz)
0x1: RTCCLK / 16384 (2 Hz when RTCCLK = 32768 Hz)
0x2: RTCCLK / 8192 (4 Hz when RTCCLK = 32768 Hz)
0x3: RTCCLK / 4096 (8 Hz when RTCCLK = 32768 Hz)
0x4: RTCCLK / 2048 (16 Hz when RTCCLK = 32768 Hz)
0x5: RTCCLK / 1024 (32 Hz when RTCCLK = 32768 Hz)
0x6: RTCCLK / 512 (64 Hz when RTCCLK = 32768 Hz)
0x7: RTCCLK / 256 (128 Hz when RTCCLK = 32768 Hz)

Note: This register concerns only the tamper inputs in passive mode.

50.6.5 TAMP active tamper control register 1 (TAMP_ATCR1)

This register can be protected against unprivileged access. Refer to Section 50.3.6: TAMP privilege protection modes .

Address offset: 0x10

Backup domain reset value: 0x0007 0000

System reset: not affected

31302928272625242322212019181716
FLTENATO SHARERes.Res.Res.ATPER[2:0]Res.Res.Res.Res.ATCKSEL[3:0]
rwrwrwrwrwrwrwrwrw
1514131211109876543210
ATOSEL4[1:0]ATOSEL3[1:0]ATOSEL2[1:0]ATOSEL1[1:0]TAMP8 AMTAMP7 AMTAMP6 AMTAMP5 AMTAMP4 AMTAMP3 AMTAMP2 AMTAMP1 AM
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bit 31 FLTEN : Active tamper filter enable

Bit 30 ATOSHARE : Active tamper output sharing

Bits 29:27 Reserved, must be kept at reset value.

Bits 26:24 ATPER[2:0] : Active tamper output change period

The tamper output is changed every \( CK\_ATPER = (2^{ATPER} \times CK\_ATPRE) \) cycles. Refer to Table 518: Minimum ATPER value .

Bits 23:20 Reserved, must be kept at reset value.

Bits 19:16 ATCKSEL[3:0] : Active tamper RTC asynchronous prescaler clock selection

These bits selects the RTC asynchronous prescaler stage output. The selected clock is \( CK\_ATPRE \) .

Note: These bits can be written only when all active tampers are disabled. The write protection remains for up to 1.5 CK_ATPRE cycles after all the active tampers are disable.

Bits 15:14 ATOSEL4[1:0] : Active tamper shared output 4 selection

If the TAMP_OUTx output is not available in the package pinout, the ouput selection value is reserved and must not be used.

Bits 13:12 ATOSEL3[1:0] : Active tamper shared output 3 selection

If the TAMP_OUTx output is not available in the package pinout, the ouput selection value is reserved and must not be used.

Bits 11:10 ATOSEL2[1:0] : Active tamper shared output 2 selection

00: TAMPOUTSEL2 = TAMP_OUT1

01: TAMPOUTSEL2 = TAMP_OUT2

10: TAMPOUTSEL2 = TAMP_OUT3

11: TAMPOUTSEL2 = TAMP_OUT4

If the TAMP_OUTx output is not available in the package pinout, the output selection value is reserved and must not be used.

Bits 9:8 ATOSEL1[1:0] : Active tamper shared output 1 selection

00: TAMPOUTSEL1 = TAMP_OUT1

01: TAMPOUTSEL1 = TAMP_OUT2

10: TAMPOUTSEL1 = TAMP_OUT3

11: TAMPOUTSEL1 = TAMP_OUT4

If the TAMP_OUTx output is not available in the package pinout, the output selection value is reserved and must not be used.

Bit 7 TAMP8AM : Tamper 8 active mode

0: Tamper 8 detection mode is passive.

1: Tamper 8 detection mode is active.

Bit 6 TAMP7AM : Tamper 7 active mode

0: Tamper 7 detection mode is passive.

1: Tamper 7 detection mode is active.

Bit 5 TAMP6AM : Tamper 6 active mode

0: Tamper 6 detection mode is passive.

1: Tamper 6 detection mode is active.

Bit 4 TAMP5AM : Tamper 5 active mode

0: Tamper 5 detection mode is passive.

1: Tamper 5 detection mode is active.

Bit 3 TAMP4AM : Tamper 4 active mode

0: Tamper 4 detection mode is passive.

1: Tamper 4 detection mode is active.

Bit 2 TAMP3AM : Tamper 3 active mode

0: Tamper 3 detection mode is passive.

1: Tamper 3 detection mode is active.

Bit 1 TAMP2AM : Tamper 2 active mode

0: Tamper 2 detection mode is passive.

1: Tamper 2 detection mode is active.

Bit 0 TAMP1AM : Tamper 1 active mode

0: Tamper 1 detection mode is passive.

1: Tamper 1 detection mode is active.

Note: Changing the active tampers configuration in this register is not allowed when a TAMPxAM bit is set, unless the corresponding TAMPxE bits are all cleared in the TAMP_CR1 register.

All tampers configured in active mode must be enabled at the same time (by setting all related TAMPxE in the same TAMP_CR1 write).

All tampers configured in active mode must be disabled at the same time (by clearing all related TAMPxE in the same TAMP_CR1 write).

A minimum duration of 1 CK_ATPRE period must be waited for after disabling the active tampers and before re-enabling them.

50.6.6 TAMP active tamper seed register (TAMP_ATSEEDR)

This register can be protected against unprivileged access. Refer to Section 50.3.6: TAMP privilege protection modes .

Address offset: 0x14

Backup domain reset value: 0x0000 0000

System reset: not affected

31302928272625242322212019181716
SEED[31:16]
wwwwwwwwwwwwwwww
1514131211109876543210
SEED[15:0]
wwwwwwwwwwwwwwww

Bits 31:0 SEED[31:0] : Pseudo-random generator seed value

This register must be written four times with 32-bit values to provide the 128-bit seed to the PRNG. Writing to this register automatically sends the seed value to the PRNG.

50.6.7 TAMP active tamper output register (TAMP_ATOR)

This register can be protected against unprivileged access. Refer to Section 50.3.6: TAMP privilege protection modes .

Address offset: 0x18

Backup domain reset value: 0x0000 0000

System reset: not affected, except for SEEDF which is reset to 0.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
INITSSEEDFRes.Res.Res.Res.Res.Res.PRNG[7:0]
rrrrrrrrrr

Bits 31:16 Reserved, must be kept at reset value.

Bit 15 INITS : Active tamper initialization status

This flag is set by hardware when the PRNG has absorbed the first 128-bit seed, meaning that the enabled active tampers are functional. This flag is cleared when the active tampers are disabled.

Bit 14 SEEDF : Seed running flag

This flag is set by hardware when a new seed is written in the TAMP_ATSEEDR. It is cleared by hardware when the PRNG has absorbed this new seed, and by system reset. The TAMP APB clock must not be switched off as long as SEEDF is set.

Bits 13:8 Reserved, must be kept at reset value.

Bits 7:0 PRNG[7:0] : Pseudo-random generator value

This field provides the values of the PRNG output. Because of potential inconsistencies due to synchronization delays, PRNG must be read at least twice. The read value is correct if it is equal to previous read value.

50.6.8 TAMP active tamper control register 2 (TAMP_ATCR2)

This register can be protected against unprivileged access. Refer to Section 50.3.6: TAMP privilege protection modes .

Address offset: 0x1C

Backup domain reset value: 0x0000 0000

System reset: not affected

31302928272625242322212019181716
ATOSEL8[2:0]ATOSEL7[2:0]ATOSEL6[2:0]ATOSEL5[2:0]ATOSEL4[2:0]ATOSEL3[2]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
ATOSEL3[1:0]ATOSEL2[2:0]ATOSEL1[2:0]Res.Res.Res.Res.Res.Res.Res.Res.
rwrwrwrwrwrwrwrw

Bits 31:29 ATOSEL8[2:0] : Active tamper shared output 8 selection

000: TAMPOUTSEL8 = TAMP_OUT1
001: TAMPOUTSEL8 = TAMP_OUT2
010: TAMPOUTSEL8 = TAMP_OUT3
011: TAMPOUTSEL8 = TAMP_OUT4
100: TAMPOUTSEL8 = TAMP_OUT5
101: TAMPOUTSEL8 = TAMP_OUT6
110: TAMPOUTSEL8 = TAMP_OUT7
111: TAMPOUTSEL8 = TAMP_OUT8

If the TAMP_OUTx output is not available in the package pinout, the output selection value is reserved and must not be used.

Bits 28:26 ATOSEL7[2:0] : Active tamper shared output 7 selection

000: TAMPOUTSEL7 = TAMP_OUT1
001: TAMPOUTSEL7 = TAMP_OUT2
010: TAMPOUTSEL7 = TAMP_OUT3
011: TAMPOUTSEL7 = TAMP_OUT4
100: TAMPOUTSEL7 = TAMP_OUT5
101: TAMPOUTSEL7 = TAMP_OUT6
110: TAMPOUTSEL7 = TAMP_OUT7
111: TAMPOUTSEL7 = TAMP_OUT8

If the TAMP_OUTx output is not available in the package pinout, the output selection value is reserved and must not be used.

Bits 25:23 ATOSEL6[2:0] : Active tamper shared output 6 selection

000: TAMPOUTSEL6 = TAMP_OUT1
001: TAMPOUTSEL6 = TAMP_OUT2
010: TAMPOUTSEL6 = TAMP_OUT3
011: TAMPOUTSEL6 = TAMP_OUT4
100: TAMPOUTSEL6 = TAMP_OUT5
101: TAMPOUTSEL6 = TAMP_OUT6
110: TAMPOUTSEL6 = TAMP_OUT7
111: TAMPOUTSEL6 = TAMP_OUT8

If the TAMP_OUTx output is not available in the package pinout, the output selection value is reserved and must not be used.

Bits 22:20 ATOSEL5[2:0] : Active tamper shared output 5 selection

000: TAMPOUTSEL5 = TAMP_OUT1
001: TAMPOUTSEL5 = TAMP_OUT2
010: TAMPOUTSEL5 = TAMP_OUT3
011: TAMPOUTSEL5 = TAMP_OUT4
100: TAMPOUTSEL5 = TAMP_OUT5
101: TAMPOUTSEL5 = TAMP_OUT6
110: TAMPOUTSEL5 = TAMP_OUT7
111: TAMPOUTSEL5 = TAMP_OUT8

If the TAMP_OUTx output is not available in the package pinout, the output selection value is reserved and must not be used.

Bits 19:17 ATOSEL4[2:0] : Active tamper shared output 4 selection

000: TAMPOUTSEL4 = TAMP_OUT1
001: TAMPOUTSEL4 = TAMP_OUT2
010: TAMPOUTSEL4 = TAMP_OUT3
011: TAMPOUTSEL4 = TAMP_OUT4
100: TAMPOUTSEL4 = TAMP_OUT5
101: TAMPOUTSEL4 = TAMP_OUT6
110: TAMPOUTSEL4 = TAMP_OUT7
111: TAMPOUTSEL4 = TAMP_OUT8

If the TAMP_OUTx output is not available in the package pinout, the output selection value is reserved and must not be used.

Bits 18:17 are the mirror of ATOSEL4[1:0] in the TAMP_ATCR1, and so can also be read or written through TAMP_ATCR1.

Bits 16:14 ATOSEL3[2:0] : Active tamper shared output 3 selection

000: TAMPOUTSEL3 = TAMP_OUT1
001: TAMPOUTSEL3 = TAMP_OUT2
010: TAMPOUTSEL3 = TAMP_OUT3
011: TAMPOUTSEL3 = TAMP_OUT4
100: TAMPOUTSEL3 = TAMP_OUT5
101: TAMPOUTSEL3 = TAMP_OUT6
110: TAMPOUTSEL3 = TAMP_OUT7
111: TAMPOUTSEL3 = TAMP_OUT8

If the TAMP_OUTx output is not available in the package pinout, the output selection value is reserved and must not be used.

Bits 15:14 are the mirror of ATOSEL3[1:0] in the TAMP_ATCR1, and so can also be read or written through TAMP_ATCR1.

Bits 13:11 ATOSEL2[2:0] : Active tamper shared output 2 selection

000: TAMPOUTSEL2 = TAMP_OUT1
001: TAMPOUTSEL2 = TAMP_OUT2
010: TAMPOUTSEL2 = TAMP_OUT3
011: TAMPOUTSEL2 = TAMP_OUT4
100: TAMPOUTSEL2 = TAMP_OUT5
101: TAMPOUTSEL2 = TAMP_OUT6
110: TAMPOUTSEL2 = TAMP_OUT7
111: TAMPOUTSEL2 = TAMP_OUT8

If the TAMP_OUTx output is not available in the package pinout, the output selection value is reserved and must not be used.

Bits 12:11 are the mirror of ATOSEL2[1:0] in the TAMP_ATCR1, and so can also be read or written through TAMP_ATCR1.

Bits 10:8 ATOSEL1[2:0] : Active tamper shared output 1 selection

000: TAMPOUTSEL1 = TAMP_OUT1
001: TAMPOUTSEL1 = TAMP_OUT2
010: TAMPOUTSEL1 = TAMP_OUT3
011: TAMPOUTSEL1 = TAMP_OUT4
100: TAMPOUTSEL1 = TAMP_OUT5
101: TAMPOUTSEL1 = TAMP_OUT6
110: TAMPOUTSEL1 = TAMP_OUT7
111: TAMPOUTSEL1 = TAMP_OUT8

If the TAMP_OUTx output is not available in the package pinout, the output selection value is reserved and must not be used.

Bits 9:8 are the mirror of ATOSEL1[1:0] in the TAMP_ATCR1, and so can also be read or written through TAMP_ATCR1.

Bits 7:0 Reserved, must be kept at reset value.

Note: Changing the active tamper configuration in this register is not allowed when a TAMPxAM bit is set, unless the corresponding TAMPxE bits are all cleared in the TAMP_CR1 register. All tamper configured in active mode must be enabled at the same time (by setting all related TAMPxE in the same TAMP_CR1 write). All tamper configured in active mode must be disabled at the same time (by clearing all related TAMPxE in the same TAMP_CR1 write). A minimum duration of 1 CK_ATPRE period must be waited for after disabling the active tamper and before re-enabling them.

50.6.9 TAMP configuration register (TAMP_CFGR)

This register can be globally write-protected, or each bit of this register can be individually write-protected against unprivileged access depending on the TAMP_PRIVCFG configuration (refer to Section 50.3.6: TAMP privilege protection modes ).

Address offset: 0x20

Backup domain reset value: 0x0000 0000

System reset: not affected

31302928272625242322212019181716
Res.BHK
LOCK
Res.Res.Res.Res.Res.Res.BKPW[7:0]
rsrwrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.BKPRW[7:0]
rwrwrwrwrwrwrwrw

Bit 31 Reserved, must be kept at reset value.

Bit 30 BHKLOCK : Boot hardware key lock

This bit can be read and can only be written to 1 by software. It is cleared by hardware together with the backup registers following a tamper detection event or when the product state is opened.

0: The Backup registers from TAMP_BKP0R to TAMP_BKP7R can be accessed according to the Protection zone they belong to.

1: The backup registers from TAMP_BKP0R to TAMP_BKP7R cannot be accessed neither in read nor in write (they are read as 0 and write ignore).

Bits 29:24 Reserved, must be kept at reset value.

Bits 23:16 BKPW[7:0] : Backup registers write protection offset

BKPW value must be from 0 to 32.

Protection zone 2 is defined for backup registers from TAMP_BKPyR (y = BKPRW) to TAMP_BKPzR (z = BKPW-1, with BKPW > BKPRW):

If BKPW = 0 or if BKPW ≤ BKPRW: there is no protection zone 2.

Protection zone 3 is defined for backup registers from TAMP_BKPtR (t = BKPW if BKPW ≥ BKPRW, else t = BKPRW).

If BKPW = 32: there is no protection zone 3.

Refer to Figure 679: Backup registers protection zones .

Note: If BKPWPRIV is set, BKPW[7:0] can be written only in privileged mode.

Bit 15 Reserved, must be kept at reset value.

Bits 14:8 Reserved, must be kept at reset value.

Bits 7:0 BKPRW[7:0] : Backup registers read/write protection offset

BKPRW value must be from 0 to 32.

Protection zone 1 is defined for backup registers from TAMP_BKP0R to TAMP_BKPxR (x = BKPRW-1, with BKPRW ≥ 1).

If BKPRW = 0: there is no protection zone 1.

Refer to Figure 679: Backup registers protection zones .

Note: If BKPRWPRIV or BKPWPRIV is set, BKPRW[7:0] can be written only in privileged mode.

50.6.10 TAMP privilege configuration register (TAMP_PRIVCFGR)

This register can be written only when the APB access is privileged.

Address offset: 0x24

Backup domain reset value: 0x0000 0000

System reset: not affected

31302928272625242322212019181716
TAMP
PRIV
BKP
WPRIV
BKPR
WPRIV
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
rwrwrw
1514131211109876543210
CNT1
PRIV
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
rw

Bit 31 TAMPPRIV : Tamper privilege protection (excluding monotonic counters and backup registers)

Note: Refer to Section 50.3.6: TAMP privilege protection modes for details on the read protection.

Bit 30 BKPWPRIV : Backup registers zone 2 privilege protection

Bit 29 BKPRWPRIV : Backup registers zone 1 privilege protection

Bits 28:16 Reserved, must be kept at reset value.

Bit 15 CNT1PRIV : Monotonic counter 1 privilege protection

Bits 14:0 Reserved, must be kept at reset value.

50.6.11 TAMP interrupt enable register (TAMP_IER)

This register can be protected against unprivileged access. Refer to Section 50.3.6: TAMP

privilege protection modes.

Address offset: 0x2C

Backup domain reset value: 0x0000 0000

System reset: not affected

31302928272625242322212019181716
Res.ITAMP15IERes.Res.Res.ITAMP11IERes.ITAMP9IEITAMP8IEITAMP7IEITAMP6IEITAMP5IEITAMP4IEITAMP3IEITAMP2IEITAMP1IE
rwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.TAMP8IETAMP7IETAMP6IETAMP5IETAMP4IETAMP3IETAMP2IETAMP1IE
rwrwrwrwrwrwrwrw

Bit 31 Reserved, must be kept at reset value.

Bit 30 ITAMP15IE : Internal tamper 15 interrupt enable

0: Internal tamper 15 interrupt disabled.

1: Internal tamper 15 interrupt enabled.

Bit 29 Reserved, must be kept at reset value.

Bit 28 Reserved, must be kept at reset value.

Bit 27 Reserved, must be kept at reset value.

Bit 26 ITAMP11IE : Internal tamper 11 interrupt enable

0: Internal tamper 11 interrupt disabled.

1: Internal tamper 11 interrupt enabled.

Bit 25 Reserved, must be kept at reset value.

Bit 24 ITAMP9IE : Internal tamper 9 interrupt enable

0: Internal tamper 9 interrupt disabled.

1: Internal tamper 9 interrupt enabled.

Bit 23 ITAMP8IE : Internal tamper 8 interrupt enable

0: Internal tamper 8 interrupt disabled.

1: Internal tamper 8 interrupt enabled.

Bit 22 ITAMP7IE : Internal tamper 7 interrupt enable

0: Internal tamper 7 interrupt disabled.

1: Internal tamper 7 interrupt enabled.

Bit 21 ITAMP6IE : Internal tamper 6 interrupt enable

0: Internal tamper 6 interrupt disabled.

1: Internal tamper 6 interrupt enabled.

Bit 20 ITAMP5IE : Internal tamper 5 interrupt enable

0: Internal tamper 5 interrupt disabled.

1: Internal tamper 5 interrupt enabled.

Bit 19 ITAMP4IE : Internal tamper 4 interrupt enable

0: Internal tamper 4 interrupt disabled.

1: Internal tamper 4 interrupt enabled.

  1. Bit 18 ITAMP3IE : Internal tamper 3 interrupt enable
    0: Internal tamper 3 interrupt disabled.
    1: Internal tamper 3 interrupt enabled.
  2. Bit 17 ITAMP2IE : Internal tamper 2 interrupt enable
    0: Internal tamper 2 interrupt disabled.
    1: Internal tamper 2 interrupt enabled.
  3. Bit 16 ITAMP1IE : Internal tamper 1 interrupt enable
    0: Internal tamper 1 interrupt disabled.
    1: Internal tamper 1 interrupt enabled
  4. Bits 15:8 Reserved, must be kept at reset value.
  5. Bit 7 TAMP8IE : Tamper 8 interrupt enable
    0: Tamper 8 interrupt disabled.
    1: Tamper 8 interrupt enabled.
  6. Bit 6 TAMP7IE : Tamper 7 interrupt enable
    0: Tamper 7 interrupt disabled.
    1: Tamper 7 interrupt enabled.
  7. Bit 5 TAMP6IE : Tamper 6 interrupt enable
    0: Tamper 6 interrupt disabled.
    1: Tamper 6 interrupt enabled.
  8. Bit 4 TAMP5IE : Tamper 5 interrupt enable
    0: Tamper 5 interrupt disabled.
    1: Tamper 5 interrupt enabled.
  9. Bit 3 TAMP4IE : Tamper 4 interrupt enable
    0: Tamper 4 interrupt disabled.
    1: Tamper 4 interrupt enabled.
  10. Bit 2 TAMP3IE : Tamper 3 interrupt enable
    0: Tamper 3 interrupt disabled.
    1: Tamper 3 interrupt enabled..
  11. Bit 1 TAMP2IE : Tamper 2 interrupt enable
    0: Tamper 2 interrupt disabled.
    1: Tamper 2 interrupt enabled.
  12. Bit 0 TAMP1IE : Tamper 1 interrupt enable
    0: Tamper 1 interrupt disabled.
    1: Tamper 1 interrupt enabled.

50.6.12 TAMP status register (TAMP_SR)

This register can be protected against unprivileged access. Refer to Section 50.3.6: TAMP

privilege protection modes.

Address offset: 0x30

Backup domain reset value: 0x0000 0000

System reset: not affected

31302928272625242322212019181716
Res.ITAMP15FRes.Res.Res.ITAMP11FRes.ITAMP9FITAMP8FITAMP7FITAMP6FITAMP5FITAMP4FITAMP3FITAMP2FITAMP1F
rrrrrrrrrrr
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.TAMP8FTAMP7FTAMP6FTAMP5FTAMP4FTAMP3FTAMP2FTAMP1F
rrrrrrrr

Bit 31 Reserved, must be kept at reset value.

Bit 30 ITAMP15F : Internal tamper 15 flag

This flag is set by hardware when a tamper detection event is detected on the internal tamper 15.

Bit 29 Reserved, must be kept at reset value.

Bit 28 Reserved, must be kept at reset value.

Bit 27 Reserved, must be kept at reset value.

Bit 26 ITAMP11F : Internal tamper 11 flag

This flag is set by hardware when a tamper detection event is detected on the internal tamper 11.

Bit 25 Reserved, must be kept at reset value.

Bit 24 ITAMP9F : Internal tamper 9 flag

This flag is set by hardware when a tamper detection event is detected on the internal tamper 9.

Bit 23 ITAMP8F : Internal tamper 8 flag

This flag is set by hardware when a tamper detection event is detected on the internal tamper 8.

Bit 22 ITAMP7F : Internal tamper 7 flag

This flag is set by hardware when a tamper detection event is detected on the internal tamper 7.

Bit 21 ITAMP6F : Internal tamper 6 flag

This flag is set by hardware when a tamper detection event is detected on the internal tamper 6.

Bit 20 ITAMP5F : Internal tamper 5 flag

This flag is set by hardware when a tamper detection event is detected on the internal tamper 5.

Bit 19 ITAMP4F : Internal tamper 4 flag

This flag is set by hardware when a tamper detection event is detected on the internal tamper 4.

Bit 18 ITAMP3F : Internal tamper 3 flag

This flag is set by hardware when a tamper detection event is detected on the internal tamper 3.

Bit 17 ITAMP2F : Internal tamper 2 flag

This flag is set by hardware when a tamper detection event is detected on the internal tamper 2.

Bit 16 ITAMP1F : Internal tamper 1 flag

This flag is set by hardware when a tamper detection event is detected on the internal tamper 1.

Bits 15:8 Reserved, must be kept at reset value.

Bit 7 TAMP8F : TAMP8 detection flag

This flag is set by hardware when a tamper detection event is detected on the TAMP8 input

Bit 6 TAMP7F : TAMP7 detection flag

This flag is set by hardware when a tamper detection event is detected on the TAMP7 input.

Bit 5 TAMP6F : TAMP6 detection flag

This flag is set by hardware when a tamper detection event is detected on the TAMP6 input.

Bit 4 TAMP5F : TAMP5 detection flag

This flag is set by hardware when a tamper detection event is detected on the TAMP5 input.

Bit 3 TAMP4F : TAMP4 detection flag

This flag is set by hardware when a tamper detection event is detected on the TAMP4 input.

Bit 2 TAMP3F : TAMP3 detection flag

This flag is set by hardware when a tamper detection event is detected on the TAMP3 input.

Bit 1 TAMP2F : TAMP2 detection flag

This flag is set by hardware when a tamper detection event is detected on the TAMP2 input.

Bit 0 TAMP1F : TAMP1 detection flag

This flag is set by hardware when a tamper detection event is detected on the TAMP1 input.

50.6.13 TAMP masked interrupt status register (TAMP_MISR)

This register can be protected against unprivileged access. Refer to Section 50.3.6: TAMP privilege protection modes .

Address offset: 0x34

Backup domain reset value: 0x0000 0000

System reset: not affected

31302928272625242322212019181716
Res.ITAMP1
5MF
Res.Res.Res.ITAMP1
1MF
Res.ITAMP9
MF
ITAMP8
MF
ITAMP
7MF
ITAMP6
MF
ITAMP5
MF
ITAMP4
MF
ITAMP3
MF
ITAMP2
MF
ITAMP1
MF
rrrrrrrrrrr
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.TAMP
8MF
TAMP
7MF
TAMP
6MF
TAMP
5MF
TAMP
4MF
TAMP
3MF
TAMP
2MF
TAMP
1MF
rrrrrrrr
  1. Bit 31 Reserved, must be kept at reset value.
  2. Bit 30 ITAMP15MF : internal tamper 15 interrupt masked flag
    This flag is set by hardware when the internal tamper 15 interrupt is raised.
  3. Bit 29 Reserved, must be kept at reset value.
  4. Bit 28 Reserved, must be kept at reset value.
  5. Bit 27 Reserved, must be kept at reset value.
  6. Bit 26 ITAMP11MF : internal tamper 11 interrupt masked flag
    This flag is set by hardware when the internal tamper 11 interrupt is raised.
  7. Bit 25 Reserved, must be kept at reset value.
  8. Bit 24 ITAMP9MF : internal tamper 9 interrupt masked flag
    This flag is set by hardware when the internal tamper 9 interrupt is raised.
  9. Bit 23 ITAMP8MF : Internal tamper 8 interrupt masked flag
    This flag is set by hardware when the internal tamper 8 interrupt is raised.
  10. Bit 22 ITAMP7MF : Internal tamper 7 tamper interrupt masked flag
    This flag is set by hardware when the internal tamper 7 interrupt is raised.
  11. Bit 21 ITAMP6MF : Internal tamper 6 interrupt masked flag
    This flag is set by hardware when the internal tamper 6 interrupt is raised.
  12. Bit 20 ITAMP5MF : Internal tamper 5 interrupt masked flag
    This flag is set by hardware when the internal tamper 5 interrupt is raised.
  13. Bit 19 ITAMP4MF : Internal tamper 4 interrupt masked flag
    This flag is set by hardware when the internal tamper 4 interrupt is raised.
  14. Bit 18 ITAMP3MF : Internal tamper 3 interrupt masked flag
    This flag is set by hardware when the internal tamper 3 interrupt is raised.
  15. Bit 17 ITAMP2MF : Internal tamper 2 interrupt masked flag
    This flag is set by hardware when the internal tamper 2 interrupt is raised.
  16. Bit 16 ITAMP1MF : Internal tamper 1 interrupt masked flag
    This flag is set by hardware when the internal tamper 1 interrupt is raised.
  17. Bits 15:8 Reserved, must be kept at reset value.
  18. Bit 7 TAMP8MF : TAMP8 interrupt masked flag
    This flag is set by hardware when the tamper 8 interrupt is raised.
  19. Bit 6 TAMP7MF : TAMP7 interrupt masked flag
    This flag is set by hardware when the tamper 7 interrupt is raised.
  20. Bit 5 TAMP6MF : TAMP6 interrupt masked flag
    This flag is set by hardware when the tamper 6 interrupt is raised.
  21. Bit 4 TAMP5MF : TAMP5 interrupt masked flag
    This flag is set by hardware when the tamper 5 interrupt is raised.
  22. Bit 3 TAMP4MF : TAMP4 interrupt masked flag
    This flag is set by hardware when the tamper 4 interrupt is raised.

50.6.14 TAMP status clear register (TAMP_SCR)

This register can be protected against unprivileged access. Refer to Section 50.3.6: TAMP privilege protection modes .

Address offset: 0x3C

System reset value: 0x0000 0000

31302928272625242322212019181716
Res.C
ITAMP
15F
Res.Res.Res.C
ITAMP
11F
Res.C
ITAMP
9F
C
ITAMP
8F
C
ITAMP
7F
C
ITAMP
6F
C
ITAMP
5F
C
ITAMP
4F
C
ITAMP
3F
C
ITAMP
2F
C
ITAMP
1F
wwwwwwwwwww
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.CTAMP
8F
CTAMP
7F
CTAMP
6F
CTAMP
5F
CTAMP
4F
CTAMP
3F
CTAMP
2F
CTAMP
1F
wwwwwwww
  1. Bit 19 CITAMP4F : Clear ITAMP4 detection flag
    Writing 1 in this bit clears the ITAMP4F bit in the TAMP_SR register.
  2. Bit 18 CITAMP3F : Clear ITAMP3 detection flag
    Writing 1 in this bit clears the ITAMP3F bit in the TAMP_SR register.
  3. Bit 17 CITAMP2F : Clear ITAMP2 detection flag
    Writing 1 in this bit clears the ITAMP2F bit in the TAMP_SR register.
  4. Bit 16 CITAMP1F : Clear ITAMP1 detection flag
    Writing 1 in this bit clears the ITAMP1F bit in the TAMP_SR register.
  5. Bits 15:8 Reserved, must be kept at reset value.
  6. Bit 7 CTAMP8F : Clear TAMP8 detection flag
    Writing 1 in this bit clears the TAMP8F bit in the TAMP_SR register.
  7. Bit 6 CTAMP7F : Clear TAMP7 detection flag
    Writing 1 in this bit clears the TAMP7F bit in the TAMP_SR register.
  8. Bit 5 CTAMP6F : Clear TAMP6 detection flag
    Writing 1 in this bit clears the TAMP6F bit in the TAMP_SR register.
  9. Bit 4 CTAMP5F : Clear TAMP5 detection flag
    Writing 1 in this bit clears the TAMP5F bit in the TAMP_SR register.
  10. Bit 3 CTAMP4F : Clear TAMP4 detection flag
    Writing 1 in this bit clears the TAMP4F bit in the TAMP_SR register.
  11. Bit 2 CTAMP3F : Clear TAMP3 detection flag
    Writing 1 in this bit clears the TAMP3F bit in the TAMP_SR register.
  12. Bit 1 CTAMP2F : Clear TAMP2 detection flag
    Writing 1 in this bit clears the TAMP2F bit in the TAMP_SR register.
  13. Bit 0 CTAMP1F : Clear TAMP1 detection flag
    Writing 1 in this bit clears the TAMP1F bit in the TAMP_SR register.

50.6.15 TAMP monotonic counter 1 register (TAMP_COUNT1R)

This register can be protected against unprivileged access. Refer to Section 50.3.6: TAMP privilege protection modes .

Address offset: 0x040

Backup domain reset value: 0x0000 0000

System reset: not affected

31302928272625242322212019181716
COUNT[31:16]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
COUNT[15:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:0 COUNT[31:0] : Monotonic counter

The monotonic counter increments by one when a write access to this register occurs, regardless of the written value. Reading this register returns the monotonic counter value. This register does not roll-over and freezes upon reaching its maximum value.

50.6.16 TAMP resources protection configuration register (TAMP_RPCFGR)

This register can be protected against unprivileged access. Refer to Section 50.3.6: TAMP privilege protection modes .

Address offset: 0x54

Backup domain reset value: 0x0000 0000

System reset: not affected

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.RP
CFG0
rw

Bit 31 Reserved, must be kept at reset value.

Bits 30:8 Reserved, must be kept at reset value.

Bit 7 Reserved, must be kept at reset value.

Bit 6 Reserved, must be kept at reset value.

Bit 5 Reserved, must be kept at reset value.

Bit 4 Reserved, must be kept at reset value.

Bit 3 Reserved, must be kept at reset value.

Bit 2 Reserved, must be kept at reset value.

Bit 1 Reserved, must be kept at reset value.

Bit 0 RPCFG0 : Configurable resource 0 protection (1)

0: Resource 0 is not included in the device secrets protected by TAMP peripheral

1: Resource 0 is included in the device secrets protected by TAMP peripheral

  1. 1. Refer to tamp_confirmed_rpcfg0 and tamp_potential_rpcfg0 signals in Table 513: TAMP input/output pins and Table 515: TAMP interconnection .

50.6.17 TAMP backup x register (TAMP_BKPxR)

This register can be protected against unprivileged access. Refer to Section 50.3.6: TAMP privilege protection modes .

Address offset: \( 0x100 + 0x04 \times x \) , ( \( x = 0 \) to \( 31 \) )

Backup domain reset value: 0x0000 0000

System reset: not affected

31302928272625242322212019181716
BKP[31:16]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
BKP[15:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwwrwrw

Bits 31:0 BKP[31:0] :

The application can write or read data to and from these registers.

In the default (ERASE) configuration this register is reset on a tamper detection event. It is forced to reset value as long as there is at least one internal or external tamper flag being set. This register is also reset when the product state is opened.

50.6.18 TAMP register map

Table 523. TAMP register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x00TAMP_CR1Res.ITAMP15ERes.Res.Res.ITAMP11ERes.ITAMP9EITAMP8EITAMP7EITAMP6EITAMP5EITAMP4EITAMP3EITAMP2EITAMP1ERes.Res.Res.Res.Res.Res.Res.Res.Res.TAMP8ETAMP7ETAMP6ETAMP5ETAMP4ETAMP3ETAMP2ETAMP1E
Reset value0000000000000000000
0x04TAMP_CR2TAMP8TRGTAMP7TRGTAMP6TRGTAMP5TRGTAMP4TRGTAMP3TRGTAMP2TRGTAMP1TRGBKERASEBKBLOCKRes.Res.Res.TAMP3MSKTAMP2MSKTAMP1MSKRes.Res.Res.Res.Res.Res.Res.Res.Res.TAMP8POMTAMP7POMTAMP6POMTAMP5POMTAMP4POMTAMP3POMTAMP2POMTAMP1POM
Reset value000000000000000000000
0x08TAMP_CR3Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.ITAMP15POMRes.Res.Res.ITAMP11POMRes.Res.ITAMP9POMITAMP8POMITAMP7POMITAMP6POMITAMP5POMITAMP4POMITAMP3POMITAMP2POMITAMP1POM
Reset value0000000000
0x0CTAMP_FLTCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TAMPPUDISTAMP1PRCH[1:0]TAMPFLT1[1:0]TAMPFREQ[2:0]
Reset value00000000
0x10TAMP_ATCR1FLTENATOSHARERes.Res.Res.ATPER[2:0]Res.Res.Res.Res.ATCKSEL[3:0]ATOSEL4[1:0]ATOSEL3[1:0]ATOSEL2[1:0]ATOSEL1[1:0]TAMP8AMTAMP7AMTAMP6AMTAMP5AMTAMP4AMTAMP3AMTAMP2AMTAMP1AM
Reset value0000001110000000000000000
0x14TAMP_ATSEEDRSEED[31:0]
Reset value00000000000000000000000000000000
0x18TAMP_ATORRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.INITSSEEDFRes.Res.Res.Res.Res.Res.PRNG[7:0]
Reset value0000000000
0x1CTAMP_ATCR2ATOSEL8[2:0]ATOSEL7[2:0]ATOSEL6[2:0]ATOSEL5[2:0]ATOSEL4[2:0]ATOSEL3[2:0]ATOSEL2[2:0]ATOSEL1[2:0]Res.Res.Res.Res.Res.Res.Res.Res.
Reset value000000000000000000000000
0x20TAMP_CFGRRes.BHKLOCKRes.Res.Res.Res.Res.Res.BKPW[7:0]Res.Res.Res.Res.Res.Res.Res.Res.BKPRW[7:0]
Reset value00000000000000000
0x24TAMP_PRIVCFGRTAMPPRIVBKWPWPRIVBKPRWPRIVRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CNT1PRIVRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value0000

Table 523. TAMP register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x2CTAMP_IERRes.ITAMP15IERes.Res.Res.ITAMP11IERes.ITAMP9IEITAMP8IEITAMP7IEITAMP6IEITAMP5IEITAMP4IEITAMP3IEITAMP2IEITAMP1IERes.Res.Res.Res.Res.Res.Res.Res.Res.TAMP8IETAMP7IETAMP6IETAMP5IETAMP4IETAMP3IETAMP2IETAMP1IE
Reset value0000000000000000000
0x30TAMP_SRRes.ITAMP15FRes.Res.Res.ITAMP11FRes.ITAMP9FITAMP8FITAMP7FITAMP6FITAMP5FITAMP4FITAMP3FITAMP2FITAMP1FRes.Res.Res.Res.Res.Res.Res.Res.Res.TAMP8FTAMP7FTAMP6FTAMP5FTAMP4FTAMP3FTAMP2FTAMP1F
Reset value0000000000000000000
0x34TAMP_MISRRes.ITAMP15MFRes.Res.Res.ITAMP11MFRes.ITAMP9MFITAMP8MFITAMP7MFITAMP6MFITAMP5MFITAMP4MFITAMP3MFITAMP2MFITAMP1MFRes.Res.Res.Res.Res.Res.Res.Res.Res.TAMP8MFTAMP7MFTAMP6MFTAMP5MFTAMP4MFTAMP3MFTAMP2MFTAMP1MF
Reset value0000000000000000000
0x3CTAMP_SCRRes.CITAMP15FRes.Res.Res.CITAMP11FRes.CITAMP9FCITAMP8FCITAMP7FCITAMP6FCITAMP5FCITAMP4FCITAMP3FCITAMP2FCITAMP1FRes.Res.Res.Res.Res.Res.Res.Res.Res.CTAMP8FCTAMP7FCTAMP6FCTAMP5FCTAMP4FCTAMP3FCTAMP2FCTAMP1F
Reset value0000000000000000000
0x40TAMP_COUNT1RCOUNT[31:0]
Reset value00000000000000000000000000000000
0x54TAMP_RPFCGRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.RPCFG0
Reset value0
0x100 + 0x04*x, (x= 0 to 31)TAMP_BKPxRBKP[31:0]
Reset value00000000000000000000000000000000

Refer to Section 2.3: Memory organization for the register boundary addresses.