8-bit Knowledge Base

    Publish
     
      • Microcontrollers that provides power for peripherals

        kydando | 05/122/2014 | 09:57 AM

        Question

        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.

        Answer

        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:

        C8051F38x-ExternalVoltageSupply.png

         

         

        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?

        Stephen | 05/121/2014 | 12:20 PM

        Question

        What's the difference between AN533, AN767 and AN778?

        Answer

        AN533 is a general application note on bootloaders. 
        AN676 and AN778 show specific implementations of a bootloader. 

      • Setting breakpoints in the Development perspective

        ChrisM | 05/121/2014 | 12:20 PM

        Question

        How do I enter breakpoints in the Development perspective?

        Answer

        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:

        1. Customize the perspective by right clicking on the perspective icon and selecting Customize.
          CustomizePerspective.png
        2. Select the Command Groups Availability tab in the Customize Perspective dialog.
        3. Check the Breakpoints checkbox.
          BreakpointsCommandGroupAvailability.png
        4. Press OK.

        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:

         

        1. Customize the perspective by right clicking on the perspective icon and selecting Customize.
          SSv4_Perspective_SimplicityIDE_Customize.png
        2. Select the Action Set Availability tab in the Customize Perspective dialog.
        3. Check the Breakpoints checkbox.
          SSv4_Perspective_SimplicityIDE_Customize_Breakpoints.png
        4. Press OK.
      • How to copy and import a project in Studio 2.0

        ChrisM | 05/121/2014 | 12:18 PM

        Question

         

        How do I copy a project between computers or workspaces in Studio 2.0?

        Answer

         

        Copying a Studio Project

         

        Studio stores projects in the current workspace, which by default is located at:

        C:\SiliconLabs\SimplicityStudio\v2_2\workspace

         

        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.

         

        WorkspaceFolder.png

         

        Importing an Existing Project into Studio

         

        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:

        1. Launch Simplicity IDE.
        2. Select File->Import from the menu bar.
        3. Select the Existing Projects into Workspace item.
          ImportWizard.png
        4. In the Import Projects step, select a directory containing the copied project using the Browse button.
        5. Check the check box next to any projects you wish to import.
        6. (Optional) Check the Copy projects into workspace check box if you wish to copy the existing project from some other location into the current workspace. If the project is already in the workspace, then this is not necessary.
        7. Click the Finish button to complete the import process.
          ImportOptions.png
      • How do I generate per bank hex files for the production programmer?

        jonorem | 05/121/2014 | 12:09 PM

        Question

        How do I generate per bank hex files for the production programmer?

        Answer

        There are 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.

        OC61

        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.

        OH51

        srecord

         

        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:

        http://www.silabs.com/Support%20Documents/TechnicalDocs/an130.pdf

        www.silabs.com/8bit-appnotes

         

        Please note that Keil OHX51 dropped support for banked code, and that the last example on the page linked below is NOT correct.

        http://www.keil.com/support/docs/2349.htm