What is the correct connection of 2G4RF_ION pin on EFR32 wireless MCUs?
On EFR32 wireless MCUs 2G4RF_ION pin should always be connected to the ground. The external L-C matching network should be connected to 2G4RF_IOP pin.
Can I use different number of PCB layers then the EZRadio/EZRadioPro/EZR32/EFR32 reference design PCB layer count without any RF performance degradation?
For custom designs, it is recommended to use the same number of PCB layers as are present in the reference design whenever possible. Deviation from the reference PCB layer count can cause different PCB parasitic capacitances, which can detune the discrete matching network from its optimal form. If a design with a different number of layers than the reference design is necessary, make sure that the distance between the top layer and the first inner layer is similar to that found in the reference design because this distance determines the parasitic capacitance value to ground. Otherwise, detuning of the discrete matching network is possible, and fine tuning of the component values may be required.
As of EmberZNet version 5.7.3GA, we provide pre-built bootloader for certain QFN32 and QFN48 parts. If you can't find a pre-built bootloader for your part, you can follow the steps below to build your own bootloader.
0. Download the Mighty Gecko package for IAR 7.30 ("IAR-EFR32-Mighty-9.99.9") from the support portal software releases access tab, under "Latest EmberZNet Software",
"IAR Embedded Workbench for ARM, v7.30.1".
Unzip it into your IAR installation directory.
Without the files in this package, IAR v7.30 will not recognize the EFR32MG1 product line.
1. Note that currently there are three types of bootloader:
- Application bootloader (to bootload an image from an external SPI flash)
- Serial UART bootloader (to bootload an image via the serial UART protocol)
- EZSP-SPI bootloader (for the EFR32MG1 in NCP mode)
Choose a pre-built bootloader for the QFN32 or QFN48 part on which your customized bootloader will be based, for example,
Make a copy of the directory and change the directory name to match your part, for example,
2. Open the bootloader project workspace .eww file in IAR Embedded Workbench IDE v7.30.
Right-click on the project name and open the "Options..." dialogue.
2.1 Under "General Options", "Target" tab, change the Device name to match your part.
Also, under the "Output" tab, change "Output directories" to sensible names that match your part.
2.2 Under "C/C++ Compiler", "Preprocessor" tab, in "Defined symbols" edit any instance of the part name to the actual name of your part. Also change "EFR32MG1P" to "EFR32MG1V" or "EFR32MG1B" if applicable.
In "Additional include directories", edit this line to switch to the EFR32MG1V or EFR32MG1P directory if applicable:
2.3 Under "Assembler", "Preprocessor" tab, in "Defined symbols" make modifications similar to those mentioned above.
3. If you have a custom board header file, you can substitute it for the default board header file that BOARD_HEADER points to, in "C/C++ Compiler", "Preprocessor" tab, in "Defined symbols". Click "OK" to exit editing the project options.
4. If you are building for the EFR32MG1V or EFR32MG1B line but you started with a bootloader for the EFR32MG1P line, you should also substitute the source file "system_efr32mg1p.c" with "system_efr32mg1v.c" or "system_efr32mg1b.c". Just right-click on the file to remove it, then right-click on the project name to add the new file, for example:
5. If you are building for the EFR32MG1V or EFR32MG1B line but you started with a bootloader for the EFR32MG1P line, AND you are building the EZSP-SPI bootloader, in addition to step 4 you also need to substitute ezsp-spi-bootloader-library.a with the one for the correct line.
6. Button recovery consideration: if you use the EZSP-SPI bootloader, the button recovery is enabled by default, and the recovery pin is the nWAKE pin. If you use the serial UART or application bootloader, button recovery is NOT enabled by default. If you need button recovery, you should define USE_BUTTON_RECOVERY. In this case, you should also define the recovery button port/pin in your custom board header file, as the default recovery port/pin for the QFN48 may not be available for the QFN32 part.
Save the modified project, and build it in IAR.