Official Blog of Silicon Labs

    Publish
     
      • Choose Wisely: An MCU is Only As Good as Its Development Tools

        Alf | 07/187/2016 | 09:32 PM

        Selecting an MCU for your next project? Only looking at datasheets is no longer enough. Other important factors are well-written documentation, nicely organized software, and development tools. And when you start to look at development tools? Big, small, square, round, black, green, red, pin-out, features? There's a lot of factors to take into account when deciding what vendor to go with.

         

        Our starter-kits (STKs) are so easy that you can pick them up and start coding within five minutes of opening the kits. But they do not stop there. They continue to grow with you as you take all the steps of development. Want a more professional IDE? No problem, all major IDEs are supported. Want to optimize the battery life of your product? No problem, all our STKs support Advanced Energy Monitoring (AEM) to accurately measure the energy consumption of your code. Want to create your own PCB? No problem, the STK doubles as an external debugger, allowing you even to use the same 30 dollar kit even for production programming, as we do in our production line.

         

        EFR32 Starter Kits.png

         

        So, if you want to try out our MCUs and development kits, get a kit from here and head over to mbed.com and check out the online IDE. Here you can get the first programs up running in a matter of minutes. Make sure to check out the example mbed_blinky_low_power to see why the EFM32 will give you 1000x the battery life of a competing MCU, when using mbed. Then, when you've gotten the feeling and are starting your proper design, download our Simplicity Studio and get all the software and supporting tools in one, easy package.

         

        Not sure which kit to chose? Check out these videos for a run-down of the different chips and kits:

         

      • Helping TYLT Bring Heart Rate Monitoring to the Pebble Time Smartwatch

        Lance Looper | 04/97/2016 | 10:56 AM

        Since launching in 2015 on the strength of a wildly successful KickStarter campaign, the Pebble Time smartwatch has made a name for itself in the crowded wearables space - with good reason; it’s reasonably priced and boasts an armful of great features. And it’s about to get even more useful thanks to the folks at TYLT (the same crew responsible for all the great Qi-enabled wireless chargers).

         

        TYLT is using our EFM32 Jade Gecko MCU and our Si1144-AAG optical heart rate sensor to bring heart rate monitoring to the Pebble Time. The TYLT VÜ Pulse is a case that connects to the accessory port of the Pebble Time, bringing with it useful heart rate monitoring functionality, extending the usefulness of this nifty device even further. The LED-based monitor tracks your heart rate during your workout and will alert you when you’ve reached your max threshold. The data then syncs with Google Fit or Apple Health via the watch’s Bluetooth connection.

        EFM32JG copy.png

         

        We’re always excited to see customers doing innovative things and we’re not alone. Nearly 6,000 supporters have raised more than $350,000 through crowdsourcing platforms Indiegogo and KickStarter. The EFM32 Jade Gecko, which we released late last year is ideally suited for this type of battery-powered application thanks to its ultra-low current active mode and short wake-up time from energy-saving modes.

         

        Feeling inspired? Check out our Simplicity Studio development platform. Simplicity Studio streamlines the process of creating IoT applications by offering one-click access to everything you need - from initial concept to final product - in a unified software environment.

      • Superfast Sensor Evaluation Using the EFM8 Sleepy Bee

        Anonymous | 08/239/2015 | 04:13 PM

        Quickly Evaluating a Sensor with EFM8 Sleepy Bee MCU

        Getting a sensor and an MCU to communicate reliably can be a challenge—especially if you are new to the MCU. When you just want to quickly evaluate a sensor, or something else, the best solution is a fast way to configure the peripherals (an ADC in this case), and capture the effects of the different sensors.

         

        To illustrate this, I designed an experiment to test a flex sensor with the Silicon Labs EFM8 Sleepy Bee SB1 8-bit MCU. I chose the EFM8 Sleepy Bee MCU because my (fictional) target application will run on a battery and needs to be ultra-low power.

         

        EFM8SB Kit.jpgEFM8 Sleepy Bee EVB

         

        Sleepy Bee a great fit for this application because the ADC operates in configurable low power modes, which is a feature that is hard to find in a low cost MCU.  The ADC will support 12-bit ADC with 75ksps or 300ksps with 10 bit mode, which I chose to take many rapid readings from the sensor. 

         

        Which Sensors?

        Next I selected the sensors I wanted to evaluate. I chose a couple of different sensors. One from Spectra Symbol part number SEN-08606. And one from Flexpoint Sensor Systems part number 176-3-001.

         

        Flex Sensor.jpgFlex Sensor Options from Spectra Symbol and Flexpoint

         

        Each sensor can be powered by 5V or 3.3V, depending on performance and signal coming from the MCU. They work as a variable resistor, so as the bend of the sensor changes the resistance changes as well, altering the voltage across it.  This voltage drop corresponds to the bend or arch the sensor is. I used 3.3V for this design to reduce power consumption. So the sensor divides this and returns a voltage somewhere in the 0.5-2.5V range.

         

        Configuring the EFM8 Sleepy Bee ADC

        Next I needed to configure the ADC on the MCU. For this, I downloaded Simplicity Studio which includes a free IDE and compiler.

         

        Simplicity Studio also includes an ADC reference design, which made getting the ADC up and running superfast.  Loading the reference design was simple and it had the ADC configured with the settings I needed above. 

         

        Simp Studio Check Boxes.pngSimplicity Studio ADC Input Pin Dialog Box

         

        Simp Studio Config Boxes.png

        Simplicity Studio ADC Configuration Dialog

         

        Once I finished configuring the ADC settings and pins, the Simplicity Studio reference design spit out code for me too. In other words, I had to write no code to evaluate these sensors. All I had to do was select configuration options and check boxes.

         

        Simp Studio Code Example.png

        Simplicity Studio Code Snippet

         

        Sensor Evaluation Set-Up

        Next I configured the set up on my desktop. In the sensor set up image, the red wire runs 3.3V to the sensor. The green wire is the input to the ADC. And the brown wire goes to a potentiometer and then to ground so I can alter the pot’s resistence to create the largest voltage swing.

         

        Set-up Image.jpg

        The last step was to see if my set-up worked, and to take some power measurements.

         

        As I bent the sensor, the voltage drop increased and the voltage read back decreased. Success! My set-up was working.

         

        Voltage Image.png

        Output of Voltage Readback from Sensor

         

         

        Simplicity Studio Energy Profiler

        Now to Test power consumption. Simplicity Studio’s Energy Profiler allowed me to see the auto-generated code’s power consumption in real-time.

         

        Simp Studio Energy Profiler.png

        Simplicity Studio Energy Profiler Power Consumption Readings

         

        Energy Profiler also allows the code to be broken down to provide insight into where the most power is consumed. This is a simple example where I am reading the ADC so the current consumption is relatively flat. When I am ready to develop the application further this will be a powerful tool to extend my battery life.

         

        Summary

        10 minutes is all it took to evaluate two sensors and compare their current consumption. EFM8 Sleepy Bee is super flexible and has a perfectly suited, low-power ADC. And Simplicity Studio has a ton of EFM8 examples that make it easy to configure and utilize its functionality including its ADC, SPI, LCD, and many more.

         

        Check out the EFM8 Sleepy Bee

        Check out Simplicity Studio

         

         

         

      • What's Your Energy Score?

        lethawicker | 07/201/2015 | 03:52 PM

        Simpliclity-Studio-3-Profiler-laptop.png

         

        Beat your own Energy Score

        The newest version of Simplicity Studio, released today, contains the completely redesigned Energy Profiler tool. This intuitive, real-time interface tells you how changes to your project effect energy consumption and battery life.

         

        Improvements include:

        • Greater accuracy and reliability
        • A current graph presentation that looks like a real oscilloscope with X&Y zoom
        • An Energy Score to compare sessions so you can compete against yourself
        • Improved usability and flow

        Up and running in minutes

        To speed installation we customized the process to only install the components of Simplicity Studio that you care about as a user. This results in a drastic reduction of the installation package to as little as 120MB for EFM8 to 1.3GB for EZR32.

         

        Get to work faster

        Simplicity Studio launches 43% faster compared to the last version of the software (based on a 2 year old Dell Latitude running Windows). Time to launch key tasks such as softwarwe examples and demos was improved by more than 200%. This means you can sit down at your workbench and get cranking in a fraction of the time.

         

        Download Simplicity Studio here.

      • Webinar Recap: What's New in Simplicity Studio

        Nari | 04/107/2015 | 09:26 AM

        Missed our latest Simplicity Studio webinar? Fret not! Here’s a recap for you.

         

        The webinar gives a quick introduction to Simplicity Studio for those who are new to the platform or just need a refresher. So what is Simplicity Studio? Fundamentally, it’s a window into Silicon Labs’ MCUs and Wireless solutions. It is a one-stop-shop development solution that allows you to get from idea to product faster using precompiled demos, application notes, and project examples.

         

         SS-2.0.png

         

        Meeting MCU and wireless development challenges can be extremely difficult, especially when dealing with tight development schedules. To start a new project, one normally has to select the right MCU or radio for the application, learn about the selected device by reading documentation, reviewing training material, or watching tutorial videos, find sample code and projects to jumpstart the development process, learn how to use the specific software tools, download the latest user guide and get technical support when stuck.

         

        Most of these are found on different platforms, websites, installers, and tools that make keeping track of everything difficult and inefficient. Simplicity Studio provides three major solutions for these problems as below:

         

        SS-3.0.png

         

        First, Simplicity Studio allows for concurrent development of MCU and wireless projects, fixing fractured tool chains. The Simplicity IDE is a fully integrated tool chain. It is an Eclipse-based IDE supporting Keil®, IAR®, and GCC build tools. The Eclipse-platform enables support for additional Eclipse plugins as well. To improve performance during debug, the Simplicity IDE uses the Eclipse Debugger for C/C++ (or EDC) instead of the GNU debugger (or GDB). It also includes integration with Keil µVision or IAR Embedded Workbench. For 8-bit MCU development, Silicon Labs provides the leading 8051 toolset, Keil PK51 development tools, for free.

         

        SS-4.0.png

         

        Second, unique and differentiated tools like Energy Profiler and Configurator  are examples of optimization tools that reduce risk and complexity and get you from idea to product faster. 

         

        The Energy Profiler makes energy debugging simple by analyzing current consumption in real-time. It quickly identify areas of code that draw the most current and maps graphical output to lines of code. Clicking on an area on the graph will highlight the specific line of code executed during that point in time. Another nice feature is the bar graph identifying the energy consumption of each function.

         

        Watch the Energy Profiler in action: 

         

        The Simplicity Configurator helps manage pin assignments easily & resolve pin conflicts automatically to save development time. It graphically configures Wireless, 32-bit and 8-bit MCUs, automatically generates C-code and creates a complete application using mode transitions. It has built-in intelligence for error checking and calculators to simplify settings. Also includes a Configurator project file for each code example.

         

        SS-6.0.png

         

        Finally, find what you need when you need it – it’s all in one place. No more searching for datasheet updates, code examples, and other time consuming development tasks. Simplicity Studio gives you instant access to the latest software, documentation, tools, support and resources in one place, all free of charge.

         

        SS-7.0.png

         

        In late February 2015, we released the newest version of Simplicity Studio. The latest release includes support for Silicon Labs IoT Products and several new design optimization tools, like the Network analyzer and the Appbuilder. So, what’s new in Simplicity Studio 3.0?

         

        Microcontrollers and Wireless & RF

        One of the newest products to be supported in Simplicity Studio is the new energy-friendly EFM8 MCUs based on the popular 8051 core. These devices are ideal for IoT systems processing data that comes from port I/O or sensor inputs. Simplicity Studio also gives you powerful choices when it comes to developing with EZR32 Wireless MCUs. The new EZR32 wireless MCUs deliver best-in-class power efficiency and sub-GHz RF performance which makes them ideal for any application requiring longer battery life, increased wireless range and small form factor. The Connect software stack within Simplicity Studio will provide a complete sub-GHz networking stack for building simple point-to-point and star networks. This can take care of all content, development, and optimization needs.

         

        Network Analyzer

        This is a packet tracer and network analysis tool that can examine live or previously captured network traffic in detail. It includes API tracing, a virtual UART and provides network-aware energy debugging to get the most robust networks and the smallest batteries. When used together with the Simplicity Energy Profiler, phenomenally energy-friendly designs can be created in a fraction of the time.

         

        Watch a video to learn more about the Network Analyzer: 

         

        AppBuilder

        The AppBuilder is a graphical tool with an embedded software framework and scenario templates for rapid development. New projects can be started based on an existing framework of best-practices developed and tested by Silicon Labs. The framework sits on top of the wireless networking stack to interface with the Hardware Abstraction Layer (HAL) and provide application layer functionality such as startup routines and high-level APIs for creating and handling message payloads. It is also the fastest way to create certified products using ZigBee standard public application profiles—a feature that’s coming soon!

         

        Watch a video about the AppBuilder: 

         

        Visit the Simplicity Studio Forum for questions and answers, training videos and development resources including sample project ideas.

         

        Install Simplicity Studio for free at www.silabs.com/simplicity-studio! Available for Windows, Mac, and Linux with 5 installation options and a custom option.

      • Concurrent Wireless and MCU Development with EZR32 and Simplicity Studio

        lethawicker | 03/68/2015 | 02:49 PM

        If you could develop your wireless and your MCUs at the same time, in the same development platform, how much time do you think you’d save? What if that same platform provided you with a full range of code examples?

         

        The winning combination of our new EZR32 Wireless MCU and Simplicity Studio allows you to do just that. Check out a short video to see just how easy it is to work with wireless and MCU concurrently in Simplicity Studio.

         

        You can also download our EZR32 white paper for more information on this ground-breaking product.

      • Come see what's new in Simplicity Studio

        lethawicker | 02/55/2015 | 05:28 PM

        simplicity-studio-958x230.jpg

        We’re excited to announce that we’ve added some great new functionality to the already-fantastic Simplicity Studio. This one-stop-shop development platform now supports MCU and wireless products, from our new EFM8 Bee MCU family to the EZR32 Wireless STK. Find out just what’s changed if you’re a veteran, and learn about the platform if you’re new to it, at our live webinar. Join us Tuesday, March 10 at 10:00 AM CDT to learn about:

         

        • Configuration and optimization tools to quickly configure pinouts and peripherals, automatically generate source code, and debug energy consumption.
        • The Eclipse-based Simplicity IDE that enables code development and debugging for Silicon Labs MCUs and wireless SOCs
        • And more!

        If you’ve been wondering what’s next for Simplicity Studio, or just considering dipping your toe in the water, this is the perfect opportunity to learn and experience the platform for yourself. See you there!

      • A cross platform approach to embedded development – part 4 : Simplifying embedded development

        Nari | 10/286/2014 | 06:10 AM

        Original Posting Date: July 8, 2014

         

        So your task is as easy as selecting a microcontroller (MCU) and then implementing the code that meets your application´s needs. Sounds straightforward, right? Well, both inexperienced and seasoned engineers might recognize some significant challenges here. In this blog series, we´ll take a look at some cross platform tools, tools that run on major operating systems like Microsoft Windows, Mac OS X and Linux, that can really simplify some of the challenges when undertaking a new embedded development project. Read part 3 here.

         

        Part 4 - Simplifying embedded development

         

         

         

        In part 1, 2 and 3 we covered how we can select the “perfect MCU” for our application, and then initialization and optimization of our application code. We also looked at the benefits of having our development tool automatically show us relevant information and give us documentation and code updates.

         

        The final item to consider is cross platform support in the development tools we choose. A comprehensive development ecosystem can have abstract complexities associated with firmware development, and at the same time enable the design team to use their favorite operating system. Maybe it´s a personal choice, but this little detail can help maintaining as well as boosting the speed of the design team.

        Although most developers only look at MCU specifications, we now know that the software development tools should not be overlooked. After all, an MCU’s performance is ultimately limited by us as developers, how well we utilize the feature set and how well the code we write performs.

         

        If a developer does not know how to configure a device for the most efficient mode of operation, the capabilities of today´s MCU are potentially under-utilized. In addition, development costs can quickly balloon and impact the overall schedule and costs of a project. As designers, we should look for vendors that provide everything we need in a single software cross platform suite, that can simplify the design cycle, reduce development time, development costs and time to market.

        simplicity-studio-software (1)

        Video: Simplicity Studio for Windows, OS X and Linux from Silicon Labs

         

         

        Download the free Simplicity Studio software tool here.

         

      • A cross platform approach to embedded development – Part 3 : Code Optimization

        Nari | 10/286/2014 | 06:04 AM

        Original Posting Date: July 8, 2014 

         

        So your task is as easy as selecting a microcontroller (MCU) and then implementing the code that meets your application´s needs. Sounds straightforward, right? Well, both inexperienced and seasoned engineers might recognize some significant challenges here. In this blog series, we´ll take a look at some cross platform tools, tools that run on major operating systems like Microsoft Windows, Mac OS X and Linux, that can really simplify some of the challenges when undertaking a new embedded development project. Read part 2 here.

         

        Part 3- Code Optimization

         

         

        Video: energyAware Profiler   

         

        The major concerns when developing MCU software are typically related to reducing memory usage and having the smallest possible code size. But for applications with a tight energy budget there are other software-dependent factors that enter into the equation.

         

        To achieve energy friendliness, aiming to spend the longest time in sleep mode is a very typical scenario, but it is not the only way to save energy. Energy efficient MCUs are often packed with other functions that enable even lower energy consumption. In addition to the sleep modes available on these MCUs, efficient use of their functions is the real secret for energy sensitive applications.

         

        As the development process moves forward, the code gets larger and optimizing for energy efficiency becomes a hard and time-consuming task. Without proper tools, identifying errors, such as avoidable wait cycles that could be replaced by interrupt service routines, or peripheral misusage, becomes increasingly difficult. If these "energy bugs" are not spotted and solved during the development stage it is virtually impossible to detect them in field or burn-in tests.

         

        The most common way to track how much energy a system draws is by sampling the current over a certain period followed by averaging and extrapolation to longer time periods. This kind of measurement can be done using a multimeter or oscilloscope, but it is not possible to relate the results to code routines. On the other hand, a logic analyzer can be used to keep track of the routines but cannot relate that to the energy consumption. For battery life estimation purposes, the results obtained with extrapolation should not be too far away from a real-case usage scenario, but when you optimize the code for energy efficiency you really want to relate code with energy consumption using development tools.

         

        For example, the ability to view a graphical output of current consumption quickly shows if there are any significant increases in consumption. Taking this a step further, having the ability to click on a point in the graph and profile the application (Figure 3) to show the corresponding line of C code associated with that current consumption is extremely valuable when you develop low-power applications. This means that a developer can trace spikes in the current consumption down to the specific lines of code that caused the spike, and then perform optimizations. Again, this “energy-aware” capability can be especially critical in battery-powered applications where every micro amp and even nano amp counts.

         

        Figure 3. A profiler associates system performance with the corresponding code

         

        When driving toward creating a final code image, developers will surely need some form of technical support or design resources. Comprehensive development ecosystems have integrated resource portals that allow developers to reach technical support, community forums, knowledge bases and applications notes within a single click.

         

        This may seem like a minor point, but when your final code image is due the next week or day and you hit a design issue, quickly finding design support is absolutely critical. You do not want to waste time trying to find the correct support portal. In addition to support channels, providing developers with the most up-to-date information is key to making embedded development simpler.

        This means that developers will always have the latest code examples, technical documentations, and software at all times. Ideally, a software development tool will provide all the required support in one location. After solving these issues, developers move on to production-related questions, and this is covered in part 4 here.

         

        Download Simplicity Studio here: 

        http://www.silabs.com/products/mcu/Pages/simplicity-studio.aspx

         

         

      • A cross platform approach to embedded development - Part 1: The helpful design environment

        Nari | 10/279/2014 | 12:53 PM

        Original Posting Date: July 8, 2014

         

        A cross platform approach to embedded development - Part 1: The helpful design environmentSo your task is as easy as selecting a microcontroller (MCU) and then implementing the code that meets your application´s needs. Sounds straightforward, right? Well, both inexperienced and seasoned engineers might recognize some significant challenges here. In this blog series, we´ll take a look at some cross platform tools, tools that run on major operating systems like Microsoft Windows, Mac OS X and Linux, that can really simplify some of the challenges when undertaking a new embedded development project.

        Part 1 - The helpful design environment

         

         

         

        As we mentioned in the beginning, we have two tasks going at this stage; the MCU selection process and the actual code implementation. To further complicate the example case, it is an energy-conscious application that must meet strict power-budget requirements. This normally means that you need extensive knowledge of the actual inner workings the MCU you're working on. In the current embedded market, learning how to use and configure an MCU can often take more time than what is allotted for a development project.

         

        To make matters even more challenging, configuring an MCU to meet advertised data sheet specifications can be an extremely tedious and complex task. In fact, MCU vendors advertise power numbers that are often not easily reproducible since they use corner cases to optimize the presented numbers. So our initial canvas is not as white as we thought, with several factors that make embedded development more complicated than it needs to be.

        Using a low-power MCU as an example, we should be able to easily configure it to achieve the lowest power operation, enabling the longest battery life for our application. With a longer lasting battery, we can reduce the size of the battery and hence the end product costs, in addition to also giving the product an edge over the competition.

         

        The best way to accomplish such tasks is to use a comprehensive development platform, not just an integrated development environment (IDE). First, let’s define the criteria for a “comprehensive development platform” (Figure 1) as follows:

         

        • Complete and educational view of available products
        • Quick and easy way to order or sample a device or kit
        • Ability to configure, develop, analyze and optimize code for a target MCU
        • Technical resources for development hiccups
        • Automatic updates to provide the most up-to-date documentation, software, and examples

        blogImage

        Figure 1. A comprehensive development system includes an IDE

         

        Software tools that provide solutions to the criteria above can simplify the development process and reduce time to market. In part 2 we will take a look at how the first development challenge (complete and educational view of available products) fits into the comprehensive development platform.

         

        Video: Simplify your embedded development with Simplicity Studio

        Download the free Simplicity Studio software tool here.