Ultra-Low-Power FRAM-Based MCUs Target Next-Gen Applications

We are currently poised at the beginning of an exponential increase in the deployment of sensors and microcontrollers (MCUs) for a wide range of applications, including smart utility metering, wearable electronics, data acquisition systems, and industrial and remote control systems.

A modern factory, for example, contains numerous building automation systems and data acquisition systems, all involving sensors and MCUs as illustrated below:

Similarly, a modern home features an ever-increasing number of security and automation systems, and -- once again -- these all involve sensors and MCUs as illustrated below:

A major consideration for all these systems is reducing power consumption and increasing reliability as much as possible. Designers are driven to add functionality while simultaneously reducing the system's power budget -- at the same time, embedded software is becoming larger and more complex, requiring more memory and further stressing the power budget.

The majority of today's MCUs come equipped with two sorts of memory: Flash and SRAM. The Flash is relatively slow and supports a limited number of write cycles, but it is non-volatile and so is used to hold the code. By comparison, the SRAM is fast and has unlimited write cycle endurance, but it volatile and can only hold temporary data.

All of this furthers the complexity of the designer's choice of MCU -- how much Flash is required (how little will suffice)? How much SRAM will be needed (how little can one get by with)?

In order to address all of these issues, Texas Instruments (TI) has developed a line of FRAM-based MCUs. The original family was the MSP430FR57x series of devices. Now, TI has introduced two new families: the MSP430FR59x series and the MSP430FR69x series.

FRAM conveys many advantages, including the fact that it is non-volatile, which means it can maintain both code and data when power is removed from the system. Unlike Flash, FRAM has an extremely high write speed, it's bit-wise programmable, and it can be written to an unlimited amount of times. Unlike SRAM, FRAM is non-volatile and it's not susceptible to soft (radiation-induced) errors.

Another key consideration is that the FRAM simplifies the software architecture by allowing flexible code and data partitioning coupled with fast writes and unlimited endurance (FRAM does not require pre-erase and is the only non-volatile embedded memory that can be written at 8MBps).

This means that the same FRAM-based MCU can be used to address both "code-heavy data-lite" and "data-heavy code-lite" applications.

One more piece to the puzzle is TI's EnergyTrace++ technology. Developers of embedded systems with low power budgets typically spend a huge amount of time figuring out where power is "leaking" out of their system. As illustrated in the image below, traditional debug systems -- which are expensive and incompatible -- are difficult to use, are limited by a one-way data flow, and don't provide visibility into real-world MCU activity.

In order to address this, TI's EnergyTrace++ technology enables developers to analyze power consumption in real-time for each peripheral, thereby allowing them to make intelligent decisions about code execution and to optimize peripheral use based on the power profile.

Costing less than US$30, EnergyTrace++ technology provides a closed-loop seamless integration of the IDE, tools, and devices, thereby resulting in embedded systems that are optimized for the lowest-possible power consumption.

I think it has a shot at replacing SRAM but Flash is currently used for MB storage. MRAM is another candidate commonly proposed for the same purpose, because of its high (also not unlimited) endurance. Both can also be disturbed by cumulative if not direct reads. I wonder which would be the preference.

My big concern is the write-ability: We've all had a pointer go blooie (which is less likely in high(er)-level languages like C than in assembler, but a 16k chip is probably going to see assembler). Do they provide some way to lock/protect the code portion of the memory?

The devices in the MSP430FR59x/FR69x series can protect portions of code using a couple of built-in modules. The Memory Protection Unit (MPU) monitors and supervises memory segments as defined in software to be protected as read, write, execute or a combination of the three. What's more, these devices have built-in IP Encapsulation (IPE) capabilities to lock sections of code from access via JTAG, BSL or Direct Memory Access.

@resistion: Each read takes a cycle as well, you still have to write after read.

But reading from any form of memory (Flash, EPROM, FRAM) doesn'd degrade it and doesn't count as part of the total number of cycles -- when they say Flash can support only 10,000 cycles, for example, they are talking about erase-&-write cycles, not read cycles.

FRAM based controllers from TI are really a very nice design and provide improvement both in terms of speed and power. Many small size embedded systems are adopting these controllers especially in biomedical equipments.