The Texas Instruments FRAM Utilities is designed to grow as a collection of embedded software utilities that leverage the ultra-low-power and virtually unlimited write endurance of FRAM. The utilities are available for MSP430FRxx FRAM microcontrollers and provide example code to help start application development.
Compute Through Power Loss (CTPL): A utility API set that enables ease of use with LPMx.5 low-power modes and a powerful shutdown mode that allows an application to save and restore critical system components when a power loss is detected.
Traditionally, use of the low-power-mode 3.5 and 4.5 on MSP430 MCUs requires waking up with neither application state nor peripheral state retained. This can increase the start-up time and the complexity of applications. The CTPL utility leverages the non-volatile FRAM to provide an easier solution for embedded software developers. The utility enables application execution using the power-saving low-power modes 3.5 or 4.5, with the new ability to save and restore system state. It also enables a new shutdown mode to detect when power is lost either internally using an ADC or comparator peripheral or externally with an energy harvesting IC providing a GPIO interrupt that puts the device into shutdown mode. When power is restored the CTPL shutdown function restores the state and program execution continues.
LZ4 compression utility: A software utility that offers real time compression and decompression on embedded MSP430FRxx devices. The LZ4 compression utility includes an open source command line tool that can be used to compress or decompress the same LZ4 files on a PC or host processor. This can enable increased storage capacity of FRAM devices as well as reduced wireless transmission time for over-the-air software updates or sensor data to a host device.
Random Number Generator (RNG): Implementation of a counter mode deterministic random byte generator (CTR-DRBG) according to the NIST SP 800-90A Rev 1 specification. Random numbers are generated using seed information stored in the TLV tables that are unique to each device. This utility also takes advantage of the 256-bit AES hardware accelerator present on MSP430FR5xx and MSP430FR6xx devices to create random bytes.
Non-Volatile Storage (NVS): Library that makes handling of non-volatile data easy and robust against intermittent power loss or asynchronous device resets. MSP430 devices with FRAM non-volatile memory guarantee 16-bit writes in all scenarios however more often than not the data being stored is a larger data type or a structure containing multiple types. That means an unintended reset or power loss while data is written to the non-volatile memory will can result in partial data write and corrupted entries. To keep data storage constant, the non-volatile storage library contains functions that store data in a way that is guaranteed to recover the last valid entry without data corruption.