Do any of your MCUs have an LDO output pin that can power external peripherals?
I want to save space on my PCB. The MCU is going to be powered via USB port.
The C8051F38x family of USB microcontrollers offers a controlled output voltage for external devices. The datasheet specifies that the maximum output current from the regulator is 100mA (Including requirement of C8051F38x)
You can learn more about the capabilities of this product family: C8051F38x MCU Family
The following diagram shows the typical configuration:
The output from the EFM32 LDO is on the DECOUPLE pin, but this pin is NOT meant to drive any external components and should only be connected to a 1µF decoupling capacitor to ground.
What's the difference between AN533, AN767 and AN778?
AN533 is a general application note on bootloaders.
AN676 and AN778 show specific implementations of a bootloader.
How do I enter breakpoints in the Development perspective?
By default, the Development perspective in Simplicity Studio v2 and v3 does not allow users to create breakpoints. (Note: Guidance for users of Simplicity Studio v4 follows below)
To enable breakpoints in a perspective:
The user should now be able to insert breakpoints into code using the Toggle Breakpoint hotkey or by double-clicking in the blue margin to the left of the source code line.
In Simplicity Studio v4, these elements have evolved slightly. The ability to insert breakpoints in the "Simplicity IDE" perspective (replaces the "Development" perspective) by double-clicking the blue margin to the left of the source code line is now available by default. However, you can still enable additional breakpoint menu options using a similar technique to that used in prior versions:
How do I copy a project between computers or workspaces in Studio 2.0?
Studio stores projects in the current workspace, which by default is located at:
To copy a project, navigate to the workspace folder and simply copy the project or compress (zip) the project folder.
In the example below, EFM32GG_blink is the project folder for a Giant Gecko blink example project.
Once you copy an existing project to a different workspace or to a different machine, use the Import Wizard to import the project into the new Studio workspace:
How do I generate per bank hex files for the production programmer?
two three possible methods to generate per bank hex files that the Silicon Labs production programmer can use depending on the input file type, i.e. object files from the linker or bin files.
The first method is to split the compiled object into per bank pieces using OC51 and then generate a hex file for each one using OH51.
The second method is to generate a hex file using OH51 and then split it up using srecord. When using this method, the --crop filter should be used to filter out data not in the bank, and the --offset filter should be used to move the data for the bank into the expected location. Bank 0 should be located at 0x0000, and All other banks at 0x8000.
For the third method, you can use srecord to create the separate hex files directly from a .bin file. Use the srec_cat command with the -crop and -offset switches to create the separate hex files. The example below shows how to split a binary image for a 128K device with 4 flash banks.
Hex file for address Bank 0 -> 0x0000 - 0x7FFF:
srec_cat my_binfile.bin -binary -crop 0x0000 0x7FFF -o my_hexfile1.hex -intel
Hex file for address Bank1 -> 0x8000 - 0xFFFF:
srec_cat my_binfile.bin -binary -crop 0x8000 0xFFFF -o my_hexfile2.hex -intel
Hex file for address Bank 2 -> 0x10000 - 0x17FFF:
srec_cat my_binfile.bin -binary -crop 0x10000 0x17FFF -offset -0x8000 -o my_hexfile3.hex -intel
Hex file for address Bank 3 -> 0x18000 - 0x1FFFF:
srec_cat my_binfile.bin -binary -crop 0x18000 0x1FFFF -offset -0x10000 -o my_hexfile4.hex -intel
The four hex files can be added to the production programmer configuration and programmed to the MCU.
For information on using code-banking within a development environment, please see AN130:
Please note that Keil OHX51 dropped support for banked code, and that the last example on the page linked below is NOT correct.