Proprietary Knowledge Base

      • PCB number of layers vs Output power

        dasimon | 08/229/2017 | 07:33 AM

        Using a 2-layer PCB in the application hardware is usually preferred by customers due to cost saving purposes. Still, based on the RF output power level, unwanted radiation of top or bottom layer traces (mostly VDD or digital) can occur, which causes that the application can violate the harmonic limits of the related standards. In order to minimize the possibility of unwanted trace radiations, Silicon Labs recommends to use multilayer PCBs in the following cases:


        • >=16dBm output power at sub-GHz frequencies
        • >=10dBm output power at 2.4GHz

        Note that the actual recommendation depends on which standard (ETSI, FCC, ARIB, etc.) the application has to be compliant with.


        One can notice that not all Silicon Labs reference design follows the above listed recommendations. EZRadioPRO reference design boards are made on 2 or 4 PCB layers based on the output power, while all EZR32 and EFR32 reference design boards are using 4 or 6 PCB layers due to the complexity of the design. In the latter case, the layout routing could not be realised on a 2-layer PCB if all digital traces were intended to be used. Of course, on a custom design where the complexity of the design is much less, 2-layer PCBs can be used for EZR32 or EFR32 applications as well considering the above listed recommendations.

      • The default header file radio_config.h of Si4362-C2 doesn't define RF_PKT_CRC_SEED_31_24_4

        Yongsheng | 07/186/2017 | 05:34 AM

        For Si4362-C2 part, the radio-config header file which is created by WDS doesn't define RF_PKT_CRC_SEED_31_24_4 and doesn't add it into RADIO_CONFIGURATION_DATA_ARRAY even though we set a new CRC seed in the WDS's GUI window.  If the crc seed in the sender side is not all's 0, Si4362-C2 will appear crc error when it tries to receive the data.

        A temporary solution is to define RF_PKT_CRC_SEED_31_24_4 and add it into RADIO_CONFIGURATION_DATA_ARRAY manually.

      • EZradioPRO PA ramp induced spectral splatter mitigation techniques

        zopapp | 05/138/2017 | 04:42 AM

        What is causing spectral splatter?


        Let’s have a look at this concept through a simple example. Suppose you transmit a pure CW signal. Your spectrum will look like a single tone at the carrier frequency. When you start switching this CW tone on and off with a square wave pattern the spectrum of the square wave pattern will be convolved with the CW spectrum resulting in a sinx/x like overall spectrum profile around the carrier. If the switching is not part of the core modulation (in this example a CW tone) than the increased spectral components induced by switching are not desired and referred to as spectral splatter.


        If you substitute the CW tone in above example with an arbitrary modulated signal and the switching pattern with an RF packet start / stop ramp you arrive at real example that will behave the same way as the simplified case.


        How do we control spectral splatter?


        Spectral splatter can be kept at bay by controlling the ramp profiles in time domain at the beginning and end of the packets. As a rule of thumb the longer the ramp the narrower its splatter spectrum. The goal here is to keep the splatter spectrum within the modulated signal’s own spectrum so no out of band splatter occurs at all. Although this cannot be achieved for all modulating formats on Si446x there are turning knobs the issue can be mitigated with.


        What are the knobs on mitigating spectral splatter on Si446x?


        1) The first knob is field PA_TC in API property PA_TC. This field directly controls the ramp time on the PA. WDS configures this filed to a value of 0x1D by default which leaves two notches until the maximum ramp time is achieved at 0x1F. If a loner ramp is needed adjust this field manually to one of the higher values.


        Note1: If you have increased this value you may want to readjust API property PA_RAMP_DOWN_DELAY to prevent the PA from shutting off before the ramp down has finished. Increase this value if you see issues at ramp down.


        Note2: This scheme applies to all ramp up/down events in OOK modulation.


        2) On Si446x revC2A (and Si4467/68 revA2A) a digital power ramping feature was introduced that sequentially steps through PA_POWER_LVL values (from min to max with a configurable step size) with a configurable dwell time on each of these steps. Much longer ramp times can be achieved with this approach.


        You can enable this feature by setting field DIG_PWR_SEQ in API property PA_MODE. You can configure the dwell time and the step size in API property PA_DIG_PWR_SEQ_CONFIG.


        Note that with this method the built-in PA ramp (discussed at (1)) is not applied between the steps only at the 1st step at minimum power level.


        The digital power ramp feature has a bug that is not fixed with released FW patches: the power ramp only takes effect at ramp up but does not take effect at ramp down.


        There is a SW workaround to the issue:


        After POWER_UP 

        1) Do the following SPI write 0xF1474B00. Wait for CTS.
        2) Make a transition to SLEEP state
        3) Make a transition back to READY state



      • RF Range Calculator

        dasimon | 05/122/2017 | 10:19 AM

        Silicon Labs provides RF range calculators for customers to help estimating the actual range of their wireless applications. Simple RF Range Calculator is available to download from the following link below.


        RF range depends on the following parameters:

        • Conducted TX output power: the power driven to the antenna input [dBm]
        • TX antenna gain [dBi]
        • Conducted receiver sensitivity [dBm]
        • RX antenna gain [dBi]
        • Frequency [MHz]
        • Propagation factor (depends on the environment)

        Simple RF Range Calculator

        Simple RF Range Calculator is for those customers who don’t want to deal with difficult RF questions, just simply would like to get fast and reasonable results for both outdoor and indoor environments.


        Key features:

        • Fast and simple while accurate
        • Built in propagation factors, based on field measurements
        • Antenna height fixed to 1 to 1.2 meters
        • Supports all the unlicensed bands and custom frequency channels as well


        Simple RF Range Calculator provides fast and accurate result as the customer selected the frequency band and set TX and RX parameters.




        Frequency bands and custom frequency channels can also be selected.




        TX Output Power and RX Sensitivity need to set up based on the radio device’s actual link parameters based on the data sheet.

        If the exact antenna parameters are unknown notes at the right side can help to determine the closest values.



        The achievable RF range depends on many other factors as well. See the following KBA article for further details on RF range factors:

      • Si4x6x / EZR32 unused pins

        dasimon | 04/115/2017 | 03:22 AM


        How should I connect the pins which are not intended to be used on Si4x6x / EZR32?


        • TX: Not connected
        • RXP, RXN: Not connected
        • GPIO pins: Not connected
      • Si4467/4468 OFFLINE_RECAL

        zopapp | 04/114/2017 | 11:59 AM

        On Si4467/Si4468 A2A devices there exists an API command called OFFLINE_RECAL. The description of this API is rather confusing so I am trying to make things clear here.


        The purpose of the API function is to allow the application to perform certain calibrations at its earliest convenience (rather than the FW doing it regardless of application state, i.e., doing a calibration while a message is being received ruining so the reception.)


        Note that all calibrations are performed at POWER_UP. The OFFLINE_RECAL command repeats some of these calibrations if a temperature change makes this necessary. 


        There are two parameters to the API command:


        OFFLINE_CAL: This bit tells the FW the type of calibration it must perform. There are two types of calibrations: OFFLINE_CAL and OFFLINE2_CAL. Which one the application needs to perform shall be read back from GET_CHIP_STATUS: INFO_FLAGS: CAL_TYPE.


        TEMP: This bit tells the FW which temperature range the calibrations should be performed to. Use LOW_TEMP (0) if the application operates in the -40 to 85C range and use HIGH_TEMP if the application operates in the -40 to 135C temperature range.


        Note that this field is missing from the public API. The public API should look like this:




        The FW notifies the application when to run the offline calibrations. When a pending interrupt shows up in GET_CHIP_STATUS: CHIP_STATUS: CAL the application shall run the offline calibration type defined in GET_CHIP_STATUS: INFO_FLAGS: CAL_TYPE at its earliest convenience. The OFFLINE_RECAL command is recommended to be invoked in READY state. If it’s not invoked in READY state it will go back to READY state regardless which may interrupt Tx/Rx operations.


        Note that a calibration notification for the 32k oscillator also shows up in GET_CHIP_STATUS: CHIP_STATUS: CAL. This means that if the 32k oscillator calibration and offline re-calibrations are used together the notification will not distinguish between the two rendering it not so useful. Note that the 32k oscillator calibrations will be run automatically at the next SLEEP transition without any application interaction so this is truly just a notification in this case.  (More on the 32k oscillator calibration you can read at API properties GLOBA_WUT_CONFIG and GLOBAL_WUT_CAL in the API documentation.)


        If you are in the unlucky situation of running the 32k clock calibration as well as the offline calibrations in one application, you can do one of the followings:


        • Do an offline calibration whenever notified! You will do a lot of unnecessary offline calibrations as the 32k oscillator calibration occurs rather frequently.
        • Record the temperature at start-up (that is at the POWER_UP command). Do an OFFLINE_CAL whenever temperature changes by more than 16C and do an OFFLINE2_CAL whenever temperature changes by more than 57C.
      • Si4x6x-C2A, Si4x55-C2A startup sequence

        tanagy | 04/96/2017 | 10:32 AM

                      In the Si4x6x chips there is a timeout after POR built-in to make sure if there is no host activity (SPI comms), the chip would go back to inactive state saving energy. Inactive state is the state the chip is sitting in after POR.

                      Because of this time-out, some refinement is necessary on the recommended startup sequence of AN633, as follows:


        1. Assert SDN
        2. Wait at least 10us
        3. Deassert SDN
        4. Wait at least 14ms or until GPIO1(CTS) goes  HIGH
        5. Issue the POWER_UP command over SPI (or send first line of patch if applied)

                      This first SPI transaction has to take less than 4ms (NSEL LOW time). If it cannot be guaranteed, send a shorter command (e.g. NOP) first, check CTS, then send POWER_UP or patch.

      • PCB antenna with wider bandwidth

        zovida | 04/94/2017 | 11:04 AM


        How can I make the frequency bandwidth of PCB antennas wider?


        In some cases/applications the BW of printed antennas might not be sufficient. This article summarizes some design tricks on how to make a printed antenna wider bandwidth.


        - Increase the board size (e.g. GND plane in the case of monopole-type antennas). Avoid using RF modules that have smaller size than quater-wavelength. Small modules generally have poor antenna gain and narrow bandwidth (due to the high Q factor).


        - Increase the board thickness. Of course, it's typically limited by design.


        - Decrease the dielectric constant of the PCB. Select PCB material with low epsilon value. 


        - Use wider and/or tapered traces in the PCB antenna structure.


        - Do some tricks in the external antenna matching network. I.e. use more components to do the match; create resonators in the matching network. Also, see Bode-Fano, Youla matching techniques.

      • Recommended external antenna matching network

        zovida | 04/94/2017 | 10:23 AM

        A number of antenna types can inherently be matched to the desired input impedance (typically, 50-ohm single-ended) without using any external tuning component (e.g. printed inverted-F antenna). However, board size, plastic enclosures, metal shielding, and components in close proximity to the antenna can affect antenna performance. For best performance, the antenna might require tuning that can be realized by two ways:

        • Dimension changes in the antenna layout structure, or
        • Applying external tuning components.

        It is typically a preferred solution when layout modification is not required on a custom design. To accomplish this, Silicon Labs generally recommends to ensure SMD placeholders for external antenna tuning components, where the suggested external antenna matching structure is a 3-element PI network. You can achieve a good match using as a maximum of two elements (with one series and one shunt component) of the PI network. Any unknown passive impedance can get matched to 50 ohms on this PI network, since all L, C, L-C, C-L combinations can be realized on it and therefore any de-tuning effect can be compensated out.

        Note that every implementation of an antenna design might require different combinations of inductors and capacitors.

        Recommended 3-element PI network for external antenna matching purposes:



      • Using PART_INFO command to identify EZRadio/PRO part number

        tanagy | 04/94/2017 | 08:24 AM

        The PART and ROMID replay fields of the PART_INFO command are sufficient to identify EZRadio/PRO part number and revision according to the following table.



        Part number PART ROM_ID Revision Top marking
        Si4060-B1B 4060 3 B1B 40601B Bxxxxx
        Si4063-B1B 4063 3 B1B 44631B Bxxxxx
        Si4355-B1A 4355 3 B1A 355A Bxxx
        Si4362-B1B 4362 3 B1B 44621B Bxxxxx
        Si4438-B1C 4438 3 B1C 44381C Bxxxxx
        Si4455-B1A 4455 3 B1A 455A Bxxx
        Si4460-B1B 4460 3 B1B 44601B Bxxxxx
        Si4461-B1B 4461 3 B1B 44611B Bxxxxx
        Si4463-B1B 4463 3 B1B 44631B Bxxxxx
        Si4464-B1B 4464 3 B1B 44641B Bxxxxx
        Si4055-C2A 4055 6 C2A 055A Cxxx
        Si4060-C2A 4060 6 C2A 40602A Cxxxxx
        Si4063-C2A 4063 6 C2A 40632A Cxxxxx
        Si4355-C2A 4355 6 C2A 355A Cxxx
        Si4362-C2A 4362 6 C2A 43622A Cxxxxx
        Si4438-C2A 4438 6 C2A 44382A Cxxxxx
        Si4455-C2A 4455 6 C2A 455A Cxxx
        Si4460-C2A 4460 6 C2A 44602A Cxxxxx
        Si4461-C2A 4461 6 C2A 44612A Cxxxxx
        Si4463-C2A 4463 6 C2A 44632A Cxxxxx
        Si4467-A2A 4467 6 A2A 44672A Cxxxxx
        Si4468-A2A 4468 6 A2A 44682A Cxxxxx