Virtually every electronic product contains at least one embedded controller. For that reason, it’s safe to say that at some point every design ultimately becomes a software development project. That makes software design and coding the critical chore of the project. The result is a massive amount of stress and responsibility on the engineer or team creating the software. The hardware is dead in the water until the code comes along. However, some new hardware and software tools have arrived to help speed up and simplify such designs.
- Simplifying software development to maximize return on investment
- Deep dive into the tools and development kits of the SimpleLink™ MCU platform
- SimpleLink MCU Platform SDK code portability
A good representation of a contemporary embedded project is creating an Internet of Things (IoT) product. Many engineers are engaged in designing one of those 50 billion IoT products that are supposed to come on line by 2020. The design goals are always the same:
- Low cost
- Ultra-low-power consumption to lengthen battery life.
- Use a wireless standard that’s proven and available.
- Include security measures appropriate to the application.
- Beat the competition to the market.
- Make the software reusable
- Have it complete and error free by “yesterday”
Another goal and challenge is producing code that can be reused if a spinoff, upgrade, or variation is to be developed later. No reinventing the wheel is allowed. The objective here is to generate code that can be reused and enhanced quickly. Your goal as a developer is to create code that’s flexible so that your investment in time and money will produce a reasonable return.
But just how do you go about simplifying software development to maximize return on investment? The answer is to adopt hardware and software that has not only been proven earlier, but also offers features to make modifications fast and easy.
Today’s software development for embedded systems forces designers to add advanced functionality with higher speed interfaces and multiple connectivity options. This, in turn, drives the need for more sophisticated scheduling algorithms, not to mention the inevitable increased power consumption and code size.
End-product requirements are also changing rapidly as companies strive to serve multiple markets with different adaptations of a base product. The time-to-market window keeps shrinking adding even more stress to the project. What developers need is a software system with intuitive levels of abstraction and operating system support to enable faster creation of applications. The solution is clearly an appropriate software-development system.
An IoT Example
The IoT market keeps getting more competitive. End users demand more functionality and features, while expecting cost and size to decrease without any impact on battery life. Solutions are getting more complex, forcing designers to become system-level experts who can handle wireless as well as software development. Your job is to find a way of extracting the full feature set of the chips that you choose. And to stay competitive, your product must be differentiated.
As a first step, you need to select the wireless standard to use. There are over 30 choices for IoT applications, so you’re sure to find one that fits your needs. However, it’s usually advantageous to stay with the more popular and widely used standards like Wi-Fi, Bluetooth, Zigbee, Z-Wave, Thread or a custom sub-1-GHz design. Sticking with a popular standard means that more chips, pre-certified wireless modules, reference designs and sub-assemblies are available to reduce the wireless design to a virtual plug-and-play. Just add the antenna.
1. Here’s TI’s line of SimpleLink devices (note that two of them are for wired connections). The CC3120 facilitates the design of a wireless gateway device that communicates with the IoT devices.
A good place to start is with Texas Instruments’ SimpleLink Platform. It provides silicon ICs, evaluation boards, and reference designs for all of the standards listed earlier: Wi-Fi, Bluetooth, ZigBee, Z-Wave, Thread, or a custom sub-1-GHz design. Even a wired Ethernet, UART, or RS-495 solution may be best.
Figure 1 shows the available TI devices. For Wi-Fi, choose the TI CC31xx/CC32xx. For Bluetooth, select CC31xx/CC26xx; the CC31xx also works for sub-1-GHz projects. For Zigbee and Thread, choose CC31xx/CC26xx—Thread and Zigbee will give you mesh-network capability.
All of the chips and designs use an ARM Cortex-M-based MCU. That leaves a project as one now requiring sophisticated software skills. The TI SimpleLink MCU Platform Software Development Kit (SDK) can help you design the next generation of connected devices by giving you full code portability.
To help you ramp up a project fast, you can get a LaunchPad Development Kit for any of the wireless standards. With the hardware in hand, you can get right to the software.
The SimpleLink SDK
The SimpleLink microcontroller (MCU) SDK is a complete set of validated, fully documented drivers, stacks, and code examples. A comprehensive suite of TI drivers combined with a POSIX-compliant API and integrated RTOS support streamlines integration and ensures compatibility with numerous third-party software components. In addition, the common components of the SDK are available under industry-standard, open-source licensing models that enable you to use them directly in your application. Figure 2 summarizes the SDK’s main components.
2. Shown are the main components of the SimpleLink SDK.
As an example, you may initially want to introduce an ultra-low-power Ethernet-enabled thermostat using the SimpleLink MSP432E4 MCU. Later on, you may need a Wi-Fi-enabled security device. For that, you may choose the SimpleLink CC3220 wireless MCU or host MSP432 MCU and CC3120 wireless network processor.
All control software, user interfaces, and applications that were developed for the MSP432 MCU-based thermostat are 100% reusable for the new Wi-Fi-based device without having to start the design from scratch. Again, later you may want to create a Bluetooth Low Energy device or connect to an existing Thread/Zigbee network. Your original software is portable regardless of the application.
In addition to the TI drivers, the SimpleLink SDK contains integrated TI-RTOS, POSIX-compatible APIs, encryption-enabled security features, and IoT stacks and plugins. Communications stacks and graphics libraries are also included. And if you need training, go to TI’s SimpleLink Academy, which offers formal education with examples, exercises, and workshops.
For a deeper dive into the tools and development kits of the SimpleLink MCU platform, click here.