In these post I will note down my impressions about the components of the kit I used in my project, namely
- MSP430FR4133 LaunchPad Development Kit (MSP-EXP430FR4133MSP-EXP430FR4133)
- TPS92512 Buck Regulator
MSP430FR4133 LaunchPad Development Kit (MSP-EXP430FR4133MSP-EXP430FR4133)
The out-of-the-box impression has been very good. Just providing power by simply connecting the provided USB cable to a PC or a USB charger, makes the pre-installed demo application to run. This gives you a good overview of the display capabilities
The overall layout of the board is very good for prototyping. The display and the switch buttons S1 and S2 are close to you, whereas the pinheaders are a bit farther away, so that connections to the external board to not hinder you. The only drawback is that the USB connector is locate too far from your computer and the provided USB cable is a bit shorter than standard ones. However, it easy to understand the rationale behind this choice: the components required to implement the debug capabilities are kept clearly separated from the rest of the board, and can be easily disconnected by removing some jumpers.
The pin headers can be used to connect a booster pack to extend board capabilities or to connect wires that lead to your bread board. The area around the pin headers is clear from any component. This is good since it makes a bit more difficult to make short-circuit with a scope's probe or a wire
What I liked the most in this processor is the FRAM. FRAM is a non-volatile memory technology that is uniquely flexible and can be used for program or data memory. It can be written to in a bit-wise fashion and with virtually unlimited write cycles.
Variables are allocated in SRAM by the default linker command files. FRAM-based MSP430FR5969 device has 2KB of SRAM. If the variable size is too large to fit in SRAM, the linker command file can be modified or C-language #pragma directives can be used to allocate specific variables or structures in FRAM memory.
The toolchains available for MSP430 all ship with linker command files that define a default memory setup and partitioning, typically allocating program code and constant data into FRAM, and variable data and the system stack to SRAM. In addition, C compiler language extensions are provided that allow you to locate selected variables and data structures into FRAM, allowing you to utilize the benefits of using FRAM for persistent data storage without any further considerations regarding memory partitioning or modifications of the linker command files.
In CCS, there are two C language pragma statements that can be used: #pragma PERSISTENT and #pragma NOINIT. PERSISTENT causes variables to not get initialized by the C startup routine, but rather the debug tool chain initializes them for the first time as the application code is loaded onto the target device. Subsequently, those variables do not get initialized, for example, after a power cycle as they have been completely excluded from the C startup initialization process. Declaring variables as PERSISTENT causes them to get allocated into the .TI.persistent linker memory segment.
Here is a code snippet showing how the variable is declared as persistent:
The MSP430FR133 can be programmed using either the Energia IDE or the CCS. I chose the latter option.
The installation of the CCS environment has been absolutely hassle-free. On the Texas Instruments site there is plenty of examples to start with programming with.
However, I'd like here to talk about two features I think are very useful to develop the low-power applications:
Energy Trace
This tool continuously monitor the consumption of the CPU. Probably the CPU consumption is just a fraction of the consumption of the complete board, but this at least a useful tool for easily optimizing the usage of Low-power modes supported by the MSP430
ULP Advisor
This tool analyzes your code and provides hints to reduce power consumptions. Some hints are so easy to implement that worths the while. An example of the hints the ULP advisor provides is to initialize unused pins: this can be easily accomplished and can save important microamperes in battery-powered applications
TPS92512 Buck Regulator
The evaluation board uses a very good step-down current regulator (the TPS92512) that can draw up to 2.5A. I didn't push the TPS92512 to the limits, but I really appreciated it's capability to keep the output current very stable even with the PDIM input switched at the maximum allowed frequency
The evaluation board is built with quality components. From a maker's point of view, I appreciated the screw connectors for the power input and LEDs output. However, I would have added some holes for soldering wires to the control pins (on the evaluation board there are only pin headers)