Fig 1. Core memory used to be ubiquitous.
Fig 2. Texas Instruments’ 16-bit MSP430FR57xx looks like most microcontrollers except it only has one memory block.
Magnetic memory such as core memory used to be the dominant runtime storage for computers (Fig. 1). Its nonvolatile nature allowed a system to be powered down without loss of data and led to some interesting restart procedures since applications did not have to be reloaded from other storage mediums.
Ferroelectric RAM (FRAM) and magnetoresistive RAM (MRAM) share many of the characteristics of core memory such as nonvolatility and high performance. Both technologies are growing in capacity and performance (see “Magnetic Cores To MRAM: Nonvolatile Tipping Point?”).
FRAM has been included in microcontrollers as data memory like Ramtron’s 8051 line (see “8051 MCU Gives Ferroelectric Memory A Try”). The microcontrollers still used flash memory for programs. They also utilized SRAM for volatile local storage. This approach balanced cost, performance, and volatility at the expense of complexity since programmers had to deal with three kinds of memory.
Tradeoffs were numerous since there were two types of nonvolatile memory. Flash is much slower to program, though a large amount of storage was available. FRAM was fast but only a limited amount was available. SRAM lacked the ability to survive a power cycle and was also limited in terms of capacity.
Unified Memory
The Texas Instruments 16-bit MSP430FR57xx returns to core memory roots with a single, unified program and data memory (Fig. 2). Programmers can split the 16 kbytes of FRAM between program and data storage, but this is done to simplify addressing and application protection.
The implications of a unified FRAM environment are significant, especially compared to systems that mix flash, SRAM, FRAM, EEPROM, or other nonvolatile memory. Programmers don’t have to consider read and write access times, programming power issues, or capacity issues.
Microcontroller designers of mixed memory environments have to determine capacities based on estimates of what programmers will need. This is why microcontrollers come in so many versions with flash/RAM ratios ranging from 4:1 to 16:1.
A larger capacity chip often is needed to accommodate programming or data requirements. A unified memory system reduces the number of stock keeping units (SKUs) necessary for a particular market.
Programming Issues
Self-modifying code usually isn’t recommended, but it can provide a more compact and possibly more efficient solution where a small application is being implemented.
FRAM is bit programmable versus flash’s block programming mode. Likewise, FRAM writes will complete once started even if power is lost. This has implications for field updates.
TI’s FRAM is rated at 100 Tcycles, making it essentially unlimited for most applications. It is 100 times faster than flash and on par with SRAM. It’s also very power efficient. All these features make it ideal for low-power, wireless sensor applications.
Other than its use of FRAM, the MSP430FR57xx is a typical 16-bit microcontroller. It will be a very familiar programming platform to MSP430 users. It has a 32- by 32-bit multiplier and a three-channel DMA system. The analog side includes a comparator and a 12-channel, 10-bit analog-to-digital converter (ADC).
Pricing starts at $1.20. Development and eval kits start at $29. Expect FRAM to permeate the MSP430 offerings. It may even show up in other TI micros.