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.
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.
Is the Keil C51 compiler C99 compliant?
The Keil C51 compiler is based on C90, not C99, and is not C99 compliant: http://www.keil.com/support/docs/1893.htm
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:
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).
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:
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.
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. http://www.silabs.com/Support%20Documents/TechnicalDocs/AN533.pdf 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: http://www.keil.com/support/docs/189.htm
I am receiving errors when compiling an EFM8 bootloader. For example:
make: *** [EFM8BB3_UART0_Bootloader.omf] Error 1
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
MODULE: ./src/SILABS_STARTUP.OBJ (?C_STARTUP)
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.
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.
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.