SSZTAO4 november 2016
Have you ever found yourself needing to update firmware on a product that has been released for field operation? Lifetime dependability is not guaranteed after all, a software bug could be discovered or the program’s functionality could be further optimized after the initial release date. Quick action is necessary to update the products which have already left the factory.
But what if these units do not include an easily available JTAG or bootloader communication port? What if the product itself is likewise inaccessible, located in a hard-to-reach location or in an environment that should not be disturbed or tampered with? What tools do you have at your disposal to easily update such devices?
System-on-chip (SoC) solutions are always an option, and TI provides a wide range of SimpleLink™ wireless microcontrollers (MCUs) that implement low-power, low-cost solutions across a variety of communication protocols including Wi-Fi®, Bluetooth® low energy, 6LowPAN, ZigBee®, RF4CE™, proprietary 2.4 GHz and Sub-1 GHz technologies. Any of these devices could wirelessly access the JTAG or built-in bootloader interface of a product using the MSP430™ MCU but are hindered by compatible communication peripherals — defined communication protocols— and the overhead from adding an extra MCU to the system. There must be a more flexible solution available!
The MSP430FRBoot bootloader could be the answer you are looking for. An extension of the MSPBoot main memory bootloader, MSP430FRBoot is a customizable programming solution that supports all MSP430 FRAM large memory model MCUs (where addresses can be greater than 16 bits) and furthermore demonstrates how over-the-air (OTA) updates can be realized. With a minimal memory footprint of less than 4KB in size, this software solution illustrates the ability to update device memory with configurable entry sequences, application validation and shared interrupt vectors.
But what if wireless communication is lost or interrupted halfway through an update? Direct memory access could leave the device in a hazardous unknown state, bricking the application and disabling further contact attempts. No problem – simply use the dual-image feature, a mode that downloads and verifies the entirety of the transmitted code before it is copied to the device’s application memory. If a complete download cycle is unsuccessful, no harm is done as the MSP430 MCU recognizes the issue and continues operation of the original firmware.
The MSP430FRBoot application report provides a software package that contains the necessary source code for implementing a main memory bootloader. eUSCI supports both wired UART and wireless SPI (for use with a Sub-1 GHz CC110x RF transceiver) is provided, but the hardware layers are abstracted and as such can be ported to support a multitude of communication peripherals and protocols. Host and target project examples are provided for multiple FRAM LaunchPad™ development kit variants to be used with a radio BoosterPack™ plug-in module, which can be directly connected to the LaunchPad kit headers and does not require any further hardware connections in order to run the provided demonstrations. The software package furthermore includes all tools, including a text to array converter and command linker generator script, necessary to jump-start a custom project.
What application can you imagine using MSP430FRBoot for over-the-air updates? Log in and comment below to share your ideas.