8-bit Knowledge Base

      • Wire bonds

        cgiga | 01/13/2016 | 08:09 PM


        Will Silicon Labs change current devices that use gold wire bonds to copper?


        Anything currently in production with the gold bond wires will remain that way. Silicon Labs is not going to change any of the devices in production with gold to copper.

      • Universal Bee battery charger detect support

        cgiga | 01/13/2016 | 08:06 PM


        Can the Universal Bee product with the charger detect built-in detect all battery chargers?


        The charge detection is compatible to the USB BC1.2 specification, so it can handle chargers compliant to that standard and provide the interrupt response based on the charger configuration as it passes through the stages of detection.

        For chargers that may not be compliant and set their own proprietary voltages on the D+/D- pins, you can use the ADC to monitor those voltages. D+/D- inputs are brought to the ADC input mux internally for this purpose (ADC0.28 and ADC0.29 on EFM8UB1). The voltage reference for the ADC is flexible as well so you can accommodate different ADC input voltage ranges up to VDD of 3.3V. 


        The charge detect sequencing is controlled via the firmware. For example, once you perform the initial data contact detect, the firmware can enable the next phase or primary detection, and so on. The firmware controls the peripheral settings (enable/disable) and can decouple each scenario. For the chargers that would require the ADC, you can measure D+/D- after VBUS detection before going through the data contact detection sequence.

      • Hardware design guidelines for capacitive sensing

        jstine | 01/13/2016 | 07:59 PM

        These guidelines apply for both EFM32 and C8051/EFM8. 


        There should be a ground plane on side of the board that has sensors (usually the top side).  There should be a hatched ground on the opposite side of the sensors (usually the bottom side).  Traces between the sensors and pins should be as short as possible, not criss-crossed or running through stitching vias, and not run parallel to high frequency switching signals sucha s SPI or PWM signals. 


        For more information see application notes AN447 (8-bit) and AN0040 (32-bit). Application Notes can be found in Simplicity Studio using the [Application Notes] tile or here: www.silabs.com/32bit-appnotes, www.silabs.com/8bit-appnotes

      • I2C SDA pin stuck low

        jstine | 01/13/2016 | 07:57 PM


        What is happening when the SDA signal is held low by the MCU?  Is there a way to detect and recover?


        It is possible for the MCU to get into an erroneous state due to noise that appears as extra transitions on the I2C SCK. There is no hardware equivalent of SCL low timeout for the SDA signal.  The failure can be detected in software by checking if the SDA pin is held low for an unreasonable amount of time. When this failure is detected, disabling and re-enabling the SMBus will fix the problem.

      • EFM8 UID and UUID

        Stephen | 01/13/2016 | 07:56 PM


        Are EFM8 UIDs and UUIDs guaranteed to be unique for all time?


        The short answer is no.


        EFM8 families have a 32-bit unique identifier (UID) or a 128-bit universally unique identifier (UUID).


        The number of unique combinations for a 32-bit number is 2^32 (4,294,967,296). Once Silicon Labs manufactures this quantity of a single MCU part number, the ID will no longer be unique.


        The number of unique combinations for a 128-bit number is 2^128 (340,282,366,920,938,463,463,374,607,431,768,211,456). Once Silicon Labs manufactures this quantity of a single MCU part number, the ID will no longer be unique. Although this number is not guaranteed to be unique for all time, this UUID is considered "practically unique" because it is not likely that this quantity of a single MCU part number will ever be manufactured.


        The only way to guarantee uniqueness would be to use your own process/serial number.

      • EFM8 support in IAR Workbench 8051

        Stephen | 01/13/2016 | 07:55 PM


        Does IAR Workbench 8051 IDE support EFM8 devices? Does it include Segger debug support?


        Yes. IAR includes support for EFM8 devices and the Segger debugger on the EFM8 starter kits (STKs) in Workbench 8051 versions v9.2 and later.


        The IAR Workbench 8051 release notes can be found here:



        However, the EFM8 header files (SI_EFM8*_Defs.h and SI_EFM8*_Register_Enums.h) included with Simplicity Studio currently do not support IAR. To add IAR support, si_toolchain.h (included by SI_EFM8*_Defs.h) will need to be modified.


        Attached below is a IAR project for the EFM8BB1 blinky example with the modified si_toolchain.h.




      • MCU start up with an external oscillator

        Stephen | 01/13/2016 | 07:54 PM


        Do any Silicon Labs 8-bit or 32-bit MCUs start up with an external oscillator?



        • All of the 8-bit MCUs (p/n's: C8051* and EFM8*) start up with an internal oscillator. 
        • The SiM3* line of 32-bit MCUs also start up with an internal oscillator.
        • The EFM32 line of 32-bit MCUs start up with an internal high frequency RC oscillator.

        Firmware can switch the system clock to an external oscillator at the beginning of code execution.

      • High GPIO source current

        Stephen | 01/13/2016 | 07:53 PM


        My application requires a GPIO to source 25 mA of current. How can this be achieved?


        For a single GPIO pin, VOH decreases as source current increases. The datasheet provides VOH specifications at certain source currents. For example:


        source current = 10 mA, VOH = VDD - 0.8V (typical)


        To source more current without decreasing VOH, short multiple GPIO pins together. With three pins shorted:

        source current = 30mA, VOH = VDD - 0.8V (typical)

      • Increased power consumption when disabling the prefetch of the C8051F36x family

        cgiga | 01/13/2016 | 07:44 PM


        How is the current consumption affected in the C8051F36x family when the prefetch engine is disabled?


        There are a couple consequences of disabling the prefetch engine in CCH0CN:


        1. Disabling the prefetch engine would likely cause a dramatic number of cache misses and cause the core to stall as instructions are fetched from flash. This would be especially problematic in a loop, which would involve at least a couple branches (more specifically, jumps) per loop iteration on top of the other calculations performed on every iteration.
        2. As a result, the core will likely draw extra power with this setting as a result of significantly more flash accesses and core stalls as instructions are being fetched from memory. 
      • Programmatically download calibration data with FlashUtilCL.exe utility

        Stephen | 01/13/2016 | 07:39 PM


        Can the Flash Command Line utility (FlashUtilCL.exe) write calibration data stored to text file to flash?


        Attached is a beta version of Flash Command Line Utility with the new command:


        DownloadTxt [-Option Flags] [file.txt] [Address] [Serial Number String] [Power On Disconnect] [Debug Interface]



        Example usage of this command:


        FLASHUtilCL DownloadTxt -E c:\test.txt 20 "EC3004BAC81" 0 1



        Each calibration value in the text file must have its own line. See the included test.txt as an example.