8-bit Knowledge Base

      • Flash Erase Cycle Time

        Stephen | 12/347/2016 | 04:02 PM


        Is the Flash Erase Cycle Time in the datasheet per page or for the entire device?


        The flash erase cycle time specification in the datasheet is per page.

      • EFM8SB1 STK sleep current higher than expected

        Stephen | 11/309/2016 | 03:27 PM


        The sleep mode current on my EFM8SB1 Starter Kit is higher than expected. What may be happening?


        The Si7021 temperature and humidity sensor is connected to the same supply net (VMCU) as the EFM8SB1 MCU. For accurate EFM8SB1 sleep current measurements, remove the Si7021 from the board. 

      • Keil C51 Compiler C99 compliant?

        Stephen | 11/309/2016 | 03:27 PM


        Is the Keil C51 compiler C99 compliant?


        The Keil C51 compiler is based on C90, not C99, and is not C99 compliant:

      • EFM8UB1 and CP2102N Compatibility with MSI MS-98F5

        Stephen | 10/281/2016 | 05:33 PM


        Is the EFM8UB1 and CP2102N compatible with the MSI MS-98F5 single board computer?



        The EFM8UB1 and CP2102N are not compatible with the MSI MS-98F5 single board computer. The EFM8UB1/CP2102N will not enumerate when all of the following conditions are met:

        • The MS-98F5 is powered on after being powered off after an extended peiord of time.
        • The EFM8UB1/CP2102N is bus powered.
        • The EFM8UB1/CP2102N is connected to the JUSB1 and JUSB2 header on the MS-98F5.
      • Bit addresable RAM initialization

        Stephen | 08/236/2016 | 08:10 PM


        Does bit addresable RAM / BDATA (addresses 0x20-0x2F) get initialized after reset? 


        Yes, bit addressable ram is initialized to 0x00 in the startup file (startup.a51 or silabs_startup.a51).

      • EFM8LB1 DAC Maximum Output Voltage and Current

        Stephen | 07/204/2016 | 06:48 PM


        What is the max output voltage and max sink/source current on the EFM8LB1 voltage DAC?


        1. The output voltage is a fraction of the DAC reference. The DAC reference can be one of the following:

        • VDD
        • External reference via the VREF pin. Max voltage on VREF pin is VIO, and max VIO is VDD.
        • Internal 1.2V or 2.4V reference via the VREF pin

        Therefore, max output of the voltage DAC is VDD.


        2. The max sink/source current on the voltage DAC is |2 mA| per the the Load Regulation specification in Table 4.1.12 of the datasheet.




      • Locate all code after a specific address

        Stephen | 05/127/2016 | 11:20 AM


        How do I instruct the linker to locate all program code after a specific address, e.g. at 0x2000 onwards?


        See Application Note AN533, Section 6, steps #1 and #2.

        This is the bootloader App Note, but the instructions are still applicable. In short:

        1. Change the reset vector in the startup code. 
        2. Move the interrupt vectors.

        More information can be found here:

      • EFM8 bootloader compile errors

        Stephen | 05/127/2016 | 11:13 AM


        I am receiving errors when compiling an EFM8 bootloader. For example:


        make: *** [EFM8BB3_UART0_Bootloader.omf] Error 1
        DEFINED: ./src/boot_startup.OBJ (BOOT_STARTUP)


        How can I fix this compilation error?


        When an example is brought into the IDE from Simplicity Studio > Software Examples, the standard SILABS_STARTUP.A51 startup file is automatically added to your project.


        The standard startup file works for all software examples except the bootloader, because the bootloader source contains a customized startup file, boot_startup.asm.




        The solution is to delete SILABS_STARTUP.A51 (right click the file > Delete) and rebuild.

      • EFM8LB1 ADC high quality inputs

        Stephen | 04/95/2016 | 08:21 PM


        The EFM8 Laser Bee 1 reference manual mentions the ADC has "high quality" inputs in section 12.3.1. How are these inputs better than the normal inputs?


        Please refer to the ADC's Input Pin Capacitance and Input Mux Impedance specification in the datasheet table 4.9. Specifications for both the high quality and normal inputs are listed.

      • Linking library (.lib) the Silicon Labs 8-bit IDE (not Simplicity Studio™)

        Stephen | 03/67/2016 | 07:53 PM


        I am using the Silicon Labs 8-bit IDE (not Simplicity Studio) and the Keil LX51 linker. How do I link library (.lib) files to my project?


        The Silicon Labs 8-bit IDE does not directly support linking library (.lib) files. It only supports linking object (.obj) files. This is missing feature of the IDE, not the linker.


        However, there are two alternatives/workarounds:


        1. Use the Silicon Labs Simplicity Studio™ or Keil uVision IDE, which directly supports linking library (.lib) files.


        2. Workaround for the Silicon Labs 8-bit IDE: create a batch file that calls the Keil LX51 linker to link the library (.lib) and object (.obj) files. See this Keil knowledge base article for details:



        Then, in the 8-bit IDE > Project > Tool Chain Integration > Linker tab > Executable field, point to your batch file instead of the linker executable.