31.3.9.3 CTRLB SFR Description

PRM - Power Reduction Mode

The PRM field allows the user to manually control the Flash power mode. Writing CTRLB.PRM to a 1 toggles the power reduction mode. The current mode is reflected in STATUS.PRM. When in Flash Hibernate the panel wakes up on access but does not return to Flash Hibernate. Note that when awake the Flash enters auto Auto Standby if not accessed for one read cycle time.

To change the Flash Power Reduction Mode:

  1. Read current PRM value. curr_prm = STATUS.PRM.
  2. Write 0x01 to BYTE 0 of CTRLB.
  3. Wait until STATUS.PRM toggles while (curr_prm == STATUS.PRM) {}.

No flags get set nor are interrupts generated from a power reduction mode change. The power status of the Flash is reflected in STATUS.PRM.

TEMP - High Temp Read Control

Some Flash panels have a High Temperature Read mode that supports read operations up to 150C junction. High Temp Read is a Read Mode of the Flash and therefore the Flash must be place in this mode when reading at high temperature is required. The High Temp Read mode incurs a longer Flash access time regardless of actual temperature.

CTRLB.TEMP controls entry/exit to/from High Temp Read operation. STATUS.TEMP reflects the current state of High Temp Read. The reset value of STATUS.TEMP is controlled by a Flash-based user configuration fuse typically called NVMTEMP.

The TEMP field allows the user to manually control the High Temp Read mode or Standard Read mode. Writing CTRLB.TEMP to a 1 toggles the temperature read mode. When changing to High Temp Read mode, change FWS to support TACC (HIGH TEMP) before writing the CTRLB.TEMP. When changing from High Temp reads, change FWS after reading STATUS.TEMP = 0. If AUTOWS = 1 then no wait state changes are needed.

Note: It is recommended that if the device can be arbitrarily operated at high temperature to always have High Temp Reads enabled.

Note that TEMP only affects read operation. Write/Erase operation is controlled an on board temperature monitor.

The following sequence can be performed while code is executing from Flash (or any other memory). If the sequence is performed when STATUS.PRM = 1, when the Flash wakes up it will be in the selected mode.

  1. Read current TEMP value: curr_temp = STATUS.TEMP.
  2. Write 0x02 to BYTE 0 of CTRLB.
  3. Wait until STATUS.TEMP toggles while (curr_temp == STATUS.TEMP) {}.

No flags get set nor are interrupts generated from a read mode change.

Note: Changing TEMP changes the read mode of the Flash. Flash read mode changes stall Flash reads for TMS + TMH and synchronization delays.

SLP[1:0] - Power Mode in Standby Sleep

The SLP field controls the Power Reduction Mode during System Standby Sleep. Waking the flash from its power down mode takes at least TDPDH. Upon system wakeup, the current Power Reduction Mode is reflected in STATUS.PRM. See the SLP SFR field for more detail.