Ferroelectric Random Access Memory (FRAM), also known as FeRAM or F-RAM, is a memory technology that combines the best of Flash and SRAM. It is non-volatile like Flash, but offers fast and low power writes, write endurance of 1015 cycles, code and data security that is less vulnerable to attackers than Flash/EEPROM, resistance to radiation and electromagnetic fields, and unmatched flexibility. This memory technology has been around for decades, but is now being integrated in MSP430 ultra-low-power microcontrollers (MCUs) to bring its unique advantages to real-world applications.
FRAM is a random access memory, meaning that each bit is read and written individually. This non-volatile memory is similar in structure to DRAM, which uses one transistor and one capacitor (1T-1C), but FRAM stores data as a polarization of a ferroelectric material (Lead-Zirkonate-Titanate). As an electric field is applied, dipoles shift in a crystalline structure to store information. This structure results in a number of advantages:
The use of crystal polarization as opposed to charge storage enables state retention, lower voltage requirements (as low as 1.5V) and fast write speeds when compared against Flash, EEPROM and SRAM technologies used in typical MSP430 microcontroller applications. In addition to benefits associated with traditional memory technologies, FRAM offers system level security advantages. The lack of a charge pump removes a key vulnerability against physical attacks. FRAM is also resistant to electric/magnetic fields as well as radiation. Since FRAM state is not stored as a charge, alpha particles are not likely to cause bits to flip and the FRAM Soft Error Rate (SER) is below detectable limits. On top of this resistance to external interference, FRAM is anti-tearing, meaning power lost during a write/erase cycle will not cause data corruption. Finally, data can often be protected using encryption. The fast write speed and high endurance of FRAM enables developers to generate keys more frequently to better secure data transmission.
The previous section described some of the advantages of FRAM, but does FRAM really stack-up well against traditional forms of memory technologies? The answer is yes! The table below will summarize the key advantages of FRAM when compared against Flash, EEPROM, and SRAM.
|All-in-one: FRAM MCU delievers max benefits|
Retains data w/o power
|10ms||<10ms||2 secs||1 sec|
|Average active Power [µA/MHz]
16 bit word access by the CPU
|Soft Errors||Below Measurable Limits||Yes||Yes||Yes|
Flexible code and data partitioning
* Based on devices from Texas Instruments
Are you ready to take a closer look at FRAM technology? The documents below will provide key insights into it’s importance, reliability and even security advantages.
FRAM technology offers several advantages over traditional memory technologies. These advantages can lead to real function-level benefits in low-power and basic microcontroller applications.
|Fast Write Speeds||
|No Erase Needed||
|Low Energy Writes||
FRAM technology offers several advantages over traditional memory technologies. These advantages can lead to real function-level benefits in low-power applications.
EEPROM Replacement - Low power and high endurance means external EEPROM may be unnecessary
Low energy backup on power fail - FRAM enables data backup when power is lost
Over-the-Air Updates - Speed of FRAM writes can make over the air updates more reliable
Remote Sensing or Data Logging - Extend product life and reduce maintenance
Energy Harvesting - Improve battery efficiency or remove them all together
Data Security – Protect intellectual property and transmissions with FRAM
Development Flexibility - Eliminate traditional boundaries between code, variable and constant data
Manufacturing Efficiency - Saving time = saving money
Engineers around the world are adding FRAM-based microcontrollers to their systems. Check-out some of the exciting applications from electronic shelf labels (ESLs) to asteroid mining below:
"Lower power = longer battery life“
"The unique flexibility of TI's FRAM MCUs allowed us to set the partition between RAM-type memory and program memory anywhere within the FRAM and create a unique, low-cost e-ink display solution within a compact footprint,” said Don Powrie, CEO of DLP Design. “Normally, in order to get this amount of RAM, we would require a much larger MCU, thereby driving up the overall product cost.“
"The MSP430 FRAM micro-controller is a key element of our spacecraft avionics architecture. Its extremely low power requirements make it very well suited to the spacecraft environment. It has been great working with TI to integrate this element into our spacecraft and I am really looking forward to seeing its performance on orbit”
Is FRAM technology a key piece of your application? If you are excited about this new non-volatile memory and would like to share, please complete the survey below for a chance to be featured on this page!
The MSP430 ultra-low-power microcontroller (MCU) family now features a new series of FRAM-based devices. The MSP430FRxx FRAM series offers a full portfolio of devices ranging from 4 KB to 128 KB of non-volatile memory.
MSP430FR2033 – Small memory (up to 16 KB FRAM) footprint with abundant input/output (IO) pins. IO are capacitive touch enabled and devices also feature special Infrared (IR) modulation logic for simplifying design in applications including remote controls.
MSP430FR4133 – Small memory footprint with an ultra-low-power LCD controller and abundant capacitive touch enabled IO pins. The 256-segment LCD controller has an integrated charge pump for maintained contrast in low-power modes and features software configurable pins for simplified hardware layout of LCDs. IR modulation logic is also available on these MCUs.
MSP430FR5739 – The first set of devices featuring FRAM technology. These microcontrollers offer 5 timers, a 12-channel 10-bit ADC, and direct memory access (DMA) for minimizing time in active mode. This series also offers the smallest packaged device in the MSP430 portfolio (24-pin 2x2 DSBGA).
MSP430FR5969 – World’s lowest power MCU series (codename: Wolverine) with a medium-sized memory footprint (up to 64 KB FRAM). These devices feature 100 µA/MHz active mode current and 450 nA standby mode current with the real-time clock (RTC) enabled. The portfolio also includes a new 16-channel 12-bit analog-to-digital converter (ADC) that can accept single or differential inputs. A window comparator is integrated for extended time in low-power modes. These MCUs also feature a 256-bit Advanced Encryption Standard (AES) accelerator and Intellectual Property (IP) Encapsulation module for protecting important data.
MSP430FR6989 – These microcontrollers expand our MSP430FR59x/58x series with more memory and integration. These devices feature a large memory footprint (up to 128 KB FRAM), a low-power 320-segment LCD controller with integrated charge pump, and a new Extended Scan Interface (ESI) for measuring rotation or even proximity.
Texas Instruments has the right evaluation tools to help you choose the FRAM device for your application and start developing. Whether new to microcontrollers, an experienced engineer, just starting evaluation, or integrating MSP430 microcontrollers into a design, the Ultra-low-power MSP430FRxx FRAM microcontroller series. For quick evaluation or rapid prototyping, the MSP430 FRAM-based LaunchPad Development Kits offer everything necessary to get started for under $20. This low-cost MCU platform is complemented with Target Socket boards for a full pin breakout of our microcontrollers. These evaluation modules (EVMs) enable full integration of MSP430 MCUs into a developer’s system. These kits are all enabled by the MSP430 microcontroller programmer/debugger, MSP-FET.
Integrated Development Environments (IDE) or application libraries are also available to jumpstart development. Getting started has never been simpler with TI’s Code Composer Studio or the IAR® Embedded Workbench IDEs. These are supplemented by free, optimized libraries to improve performance of math operations and simplify development when using capacitive touch or graphics in an application. Optimizers, such as EnergyTrace™ Technology, are also available to enable shortened time to market.
Reference designs are also available to help developers form their systems. TI Designs provide the foundation that you need including methodology, testing and design files to quickly evaluate and customize the system. TI Designs help you accelerate your time to market.
We know that moving to a new series, with or without a new memory technology, can be daunting. Continue reading for the short summary of what to consider when porting your microcontroller application to our new FRAM-based MCUs.
Depending on the device selected, additional considerations should be taken to understand more than the memory itself. For example, microcontrollers may differ in power management or serial communications on previous MCU families. Additionally, several analog peripherals and special functions may be different. Please utilize the microcontroller specific datasheet and user’s guides to fully understand the MCU of interest. To dig into the details for specific families now, please explore the following documents:
|Comparison of Flash and FRAM on MSP430 MCUs|
|Program time for byte or word (max)||120 ns||85 us (approximately)|
|Erase time for segment (max)||Not applicable (pre-erase not required)||18 ms|
|Supply current during program (max)||No extra current during write (included in active power specification)||5 mA|
|Supply current during erase (max)||Not applicable (pre-erase not required)||2 mA|
Nonvolatile memory maximum read frequency
The system clock for the CPU or DMA may exceed the FRAM access and cycle time requirements. For these scenarios, a wait state generator mechanism is implemented. The "Recommended Operating Conditions" of the device-specific data sheet lists the frequency ranges with the required wait state settings. The number of wait states is controlled by the NWAITS[2:0] bits in the FRCTL0 register.To increase the system clock frequency beyond the maximum frequency allowed by the current wait state setting, the following steps are required:
In terms of the write time, FRAM is written in four-word blocks, and the write time is built into each read cycle. Hence, there is no difference between the read time and write time for an FRAM byte, word, or 4‑word block. With regards to the read frequency, FRAM accesses (both read and write) are capped at 8 MHz. However, flash reads can take place at the maximum speed allowed by the device (fSYSTEM), which
is either 8 MHz or 16 MHz in MSP430F4x microcontrollers for example.
Note: The speed of instruction execution in an FRAM-based system is affected by the architecture. The MSP430FRx MCUs use a 2-way associative cache that employs a combination of register and FRAM accesses when executing from nonvolatile memory. This allows the system throughput to be higher than the maximum allowable read frequency of 8 MHz.
Please see the MSP430 FRAM Technology – How To and Best Practices for more information on execution using MSP430FRx MCUs.
Since FRAM memory can be used as universal memory for program code, variables, constants, stacks, and so forth, the memory has to be partitioned for the application. Code Composer Studio™ and IAR Embedded Workbench® for MSP430 IDEs can both be used to set up an application’s memory layout to make best-possible use of the underlying FRAM depending on the application needs. These memory partitioning schemes are generally located inside the IDE-specific linker command file. By default, the linker command files will typically allocate variables and stacks into SRAM. And, program code and constants are allocated in FRAM. These memory partitions can be moved or sized depending on your application needs.
Please see the MSP430 FRAM Technology – How To and Best Practices for more information and to take a closer look at memory partitioning using IAR Embedded Workbench.
Because FRAM is very easy to reprogram, it also makes it easy for erroneous code execution to unintentionally overwrite application code, just as it would if executing from RAM. To safeguard against erroneous overwriting of FRAM, memory protection is provided.
MSP430FR2x/4x MCUs provide two separate write protection bits:
SYSCFG0.PFWP – User Program FRAM protection
SYSCFG0.DFWP – User Data FRAM (1800h to 19FFh) protection
When a write protection bit is set, any write to the protected FRAM is blocked but does not generate an
illegal interrupt or reset.
MSP430FR5x/6x MCUs utilizes the Memory Protection Unit (MPU) to safeguard the memory with increased flexibility. The MPU monitors and supervises memory segments as defined in software to be protected as read, write, execute or a combination of them. For example, if a memory block is assigned 'read only‘ status, any write access to that block is prevented and an error is flagged. This is useful for storing constant data or application code that is not expected to change over the device lifetime.
Note: The MPU should be enabled as early as possible after the device starts executing code coming from a power-on or reset at the beginning of the C startup routine even before the main() routine is entered.
A closer look at setting up the MPU in Code Composer Studio manually or using a wizard within your development environment:
Analyze the MAP file to determine the start and size of the memory segments that constitute the application firmware image: constants, variables, no-init, persistent, and program code.
Please see the MSP430 FRAM Technology – How To and Best Practices for more information and to take a closer look at securing FRAM using IAR Embedded Workbench.
|Memory Segmentation Inside CCS Map File|
|.bss/data||Varaibles||Read and Write|
|.Ti.noinit||Data defined using #pragma MOINIT||Read and Write|
|.TI.persistent||Data defined using
|Read and Write|
|.sysmem||Heap used by 'malloc' and 'free'||Read and Write|
|.text||Program Code||Read and Execute|
Next, the MPU can be configured to protect three different memory segments in software. Each segment can be individually configured to read, write, execute, or a combination of them. Most applications would have some form of variables that should be protected as read and write, constants to be read only, and program code should be read and execute only. There are two registers that define how the segment boundaries are configured: Memory Protection Unit Segmentation Border 1 (MPUSEGB1) and Memory Protection Unit Segmentation Border 2 Register (MPUSEGB2). Before writing to the register, the address needs to be shifted to the right by 4 bits.
Note: the smallest MPU segment size allocation is 1KB or 0x0400. For additional information, see the device-specific family user's guide.
Code Composer Studio v6’s built-in MSP MPU Wizard is accessible through the CCS Project Properties. To open this dialog, right-click on the project in the CCS’ Project Explorer view and select Properties.
Enable the MPU by checking the Enable Memory Protection Unit (MPU) box. Then, the configuration should be left at default for allowing the compiler to automatically configure and partition the memory regions based in the application usage. For example, constants are configured as read only or program code is configured as read and execute only. When configured through the MPU Wizard, the C startup routine automatically configures and enables the MPU before entering main() without any additional steps needed by you.
Please see the MSP430 FRAM Technology – How To and Best Practices for more information and to take a closer look at securing FRAM using IAR Embedded Workbench.
The MSP Ultra-Low-Power microcontroller (MCU) series from Texas Instruments (TI) offers the lowest power consumption and the perfect mix of integrated peripherals for a wide range of low power and portable applications. This could include use as a metering mcu or as a microcontroller in remote control designs, with integration that enables functionality of a segment lcd driver or ir modulator. TI provides robust design support for the MSP low-power MCU family including technical documents, training, and microcontroller development kit and embedded software tools you need to get started today! This makes the MSP430, an easy to use microcontroller to begin development. This low cost microcontroller is the perfect place to start for battery powered mcu applications.