Proprietary Knowledge Base

      • Industrial Automation Webinar Series

        Siliconlabs | 08/231/2015 | 11:34 AM



        Through its webinar series Silicon Labs reflects on the areas making the largest impact in the growing trends in industrial automation - complete isolation, industrial bluetooth and motor control. Together they come together to create an intelligent manufacturing architecture that creates affordable, responsive and effective system architectures. This is achieved by the integration of physical machinery and processes with sensors, computers, and software.  


        The three webinars which are part of this series are:


        Complete Isolation - Learn about how easy evaluation boards are to use, the speed with which you can test isolation in your design and how you can eliminate the complex discrete isolated power supply needed to design.


        Watch the webinar here:  English / Mandarin


        Industrial Bluetooth - Get to know about the benefits like cost saving and increased safety when you implement Bluetooth into industrial control applications. Learn about Bluetooth solutions provided for ranges beyond 500m line of sight.


        Watch the webinar here: English / Mandarin


        Motor Control - Find out more about improving performance and reducing noise immunity issues for industrial motors and high voltage signals. Get solutions to eliminate sensors from motor control.


        Watch the webinar here: English / Mandarin

      • Zero gap between transmitted packets on Si446x

        tanagy | 08/224/2015 | 12:11 PM

        If you need zero gap between two transmitted packets, a trick could be to load in the fifo the payload of the first packet and also the preamble, sync and payload of the second packet, and transmit the two packets as one packet. E.g. if you have 5bytes preamble (55 55 55 55 55), and sync is 2d d4, and payload is 12 34 56 for the first packet and 78 9a bc for the second packet, then you should fill in the fifo 12 34 56 55 55 55 55 55 2d d4 78 9a bc and send it as a single packet with 13 byte long payload.

      • Understanding the receive state machine on EZRadioPro and EZRadio devices

        zopapp | 08/220/2015 | 11:53 AM

        On the EZRadioPro and EZRadio devices the Rx (Receive) state machine can automatically change the device’s state upon three different events:


        1. RX TIMEOUT
        2. RX VALID
        3. RX INVALID

        Let’s have a look at these events and the mechanisms that can make them occur!


        RX TIMEOUT: Generally speaking this is an event that signals that there has been no signal detection in the current receive process (i.e., from the time instant the receiver got started / re-started). There are a few mechanism that can provide this signal.


        • No preamble is detected within the given preamble detection timeout period. This mechanism is the default configuration when preamble detection is enabled in the receiver. On EZRadioPro devices the preamble detection timeout can be configured in API property PREAMBLE_CONFIG_STD_2. On EZRradio devices this timeout period is set to 15 nibbles (60 bits) by default and cannot be changed.


        • The Latched RSSI value is below a threshold defined in API property MODEM_RSSI_THRESH. This option is only available on EZRadioPro devices (not on EZRradio devices). For this mechanism to take effect bit field “CHECK_THRESH_AT_LATCH” must be set in API property MODEM_RSSI_CONTROL. The latching event itself can also be configured in the very same API property.


        • The Digital Signal Arrival (DSA) detector reports a “no signal” condition. This option is only available on EZRadioPRO Si446x revC2A/revA2A devices. The DSA detector can typically report a “no signal” condition by observing the channel for 6Tb times from the time instant the receiver has got started. This time is is not fixed, however and can change statistically (with some low probability) to longer times. The important thing is that asserting the TIMEOUT signal is event driven in this case as opposed to checking a certain condition at a well-defined time instant (wrt to receive start) as in the above two cases. For activating this feature field “low_duty” must be set to a non-zero value in API property MODEM_DSA_MISC. This seemingly random enabling mechanism is only one thing of many others that have to be configured for DSA operation therefore the configuration is better left for the WDS calculator. Note that at the time of writing this article this feature is not yet publicly available in WDS (

        RX VALID: This event simply signals that a packet has been received without a CRC error. Note that if no CRC check is configured in the packet handler, all received packets (albeit erroneous) will be also deemed valid packets.


        RX INVALID: This event simply signals that a packet has been received with a CRC error. Note that if no CRC error check is configured in the packet handler, this event will never come about.


        Now, in the START_RX command a state can be defined for all above described events (look for arguments RXTIMEOUT_STATE, RXVALID_STATE, RXINVALID_STATE at the START_RX API command) where the automatic state machine will bring the part upon the occurrences of these events.


        Let’s go through the typical state transition use cases:


        0: NO CHANGE: There will not be any change in the receiver’s state whatsoever. This is the recommended value for the RX TIMEOUT event in normal (i.e., not LDC or PSM) continuous receive mode. One might say the 8: RX_STATE is as good a state transition as no change in such a case. When RX_STATE is selected however, the receiver does get re-started making it blind for a few 100 us while the calibrations are completed. Note also that in automatic frequency hopping Rx application at NO CHANGE the receiver will still hop onto the next channel.


        1: SLEEP: This is the recommended value for the RX_TIMEOUT state when in automatic LDC RX mode. The part will be sent back to SLEEP state if no signal is detected in the channel.


        3: READY: This state is recommended after a (valid) packet has been received. There are a few advantages of using READY state as opposed to restarting the receiver straight away. (1) The latched RSSI and frequency error measurement values are reset upon entering into RX state therefore if the host FW is not quick enough at reading them they may get lost if automatic RX STATE transition is selected. (2) If the receiver is sent back to RX STATE automatically another packet may be being received while the previous one is being retrieved from the FIFO calling for very careful FIFO handling from the host not to lose parts of packets.


        8: RX: This state transition can be used after a (valid/invalid) packet has been received taken above considerations (at READY state) into account.


        9: IDLE: This state transition is used by the Preamble Sense Mode (PSM) operation where the receiver is duty cycling in a short term basis. The part will transition into this state of no signal has been detected by the DSA block.


        Independently of all above described there is another automatic state machine running in the demodulator while the part is Rx state. (Let’s call this state machine the demodulator state machine and one discussed above the Rx state machine.) It has got three states: (1) Preamble search, (2) Sync word search (3) Packet Receive. Note that the demodulator state machine always gets reset when the Rx state machine transitions into Rx state.


        Let’s have a look at the two commonly used packet based receive processes!


        • The most typical application is receiving a packet with a long enough preamble to do a robust preamble detection on (i.e., preamble length >= 32 bits). In such a scenario once the receiver is started the demodulator state machine will start off in preamble search state. It will stay in this state as long as preamble is detected. (Note that RX state machine can restart the receiver at this phase dependent on the TIMEOUT event next state setting.) Once preamble has been detected the demodulator will transition to sync word search state. If no sync word is found within the sync word timeout period the state machine will transition back to preamble search state. If the sync word has been found the state machine will transition into packet receive state. It will be staying in packet receive state until all the predefined number of bytes have been loaded into the FIFO. Once the packet has been received the demodulator state machine takes no further actions. In order to reset the sate machine the receiver must be restarted either by the Rx state machine or manually. The following state diagram shows the operation for this example.



        • When the preamble is not long enough for robust preamble detection the demodulator state machine will start off in sync word search state and the operation simplifies to the following diagram. In this mode of operation sync word timeout has no meaning and is not operational. It follows than that no INVALID_SYNC interrupts can fire either. It is also worth noting that the VALID_PREAMBLE signal (if observed on one of the GPIOs) will always be high.



        All the considerations on the demodulator state machine hold for both the EZRadioPRO and EZRadio devices.

      • Range improvement calculation for a given extra link budget

        dasimon | 08/220/2015 | 05:30 AM


        How can I calculate the expected range improvement for a given extra link budget?


        The range improvement can be calculated based on the following formula:


        Range improvement.png



        - ΔR is the desired value of range improvement (ratio between the new and original range)

        - n is the propagation factor (the typical outdoor value is between 2.8 and 4)

        - ΔLB is the link budget improvement


        The ΔLB link budget improvement can be achieved with higher conducted output power, better conducted sensitivity, or with higher antenna gain either on TX or RX side.


        Let’s see an example:


        Assuming a ΔLB = 3 dB additional link budget improvement (e.g. the TX power is increased or RX sensitivity is improved by 3 dB) and outdoor line of sight between the transmitter and the receiver (which results ~n = 3 propagation factor), the range improvement will be the following:


        Range improvement-example.png


        Thus, for example assuming 400m original range, 3 dB higher transmitter power or 3 dB better sensitivity would result ~500m range.

      • Crystal frequency choice on Si446x

        dasimon | 08/216/2015 | 07:58 AM


        How should I choose crystal frequency for my application using Si446x?


        Before giving an accurate answer for the question, it is important to clarify a phenomenon called sampling spur (integer boundary spur). If the carrier frequency is near to an integer multiple of the crystal frequency, spurious contents (sampling spurs / integer boundary spurs) can appear below and above the carrier (the distance from carrier is the distance between the carrier and the integer multiple of the crystal frequency). The level of these spurs are getting higher with decreasing distance between the carrier and the crystal harmonic. This way, it is important to choose a crystal frequency that has no integer harmonic near the carrier frequency.


        The minimum recommended distance between the carrier frequency and the integer multiple of the crystal frequency should be separated for low and high frequency bands. For low band frequencies (< 525 MHz) the minimum recommended distance is 2,2 MHz, for high frequency bands (> 850 MHz) this value is 2,8 MHz.


        Let’s see an example: fc = 869,5 MHz, fxtal = 30 MHz. The 29th harmonic of the crystal frequency is 870 MHz, which is 0,5 MHz away from the carrier frequency. This way, spurious contents will appear 0,5 MHz below and above the carrier as shown in the following figure:




        Considering the above mentioned recommended distance from the crystal harmonic, the carrier frequency should be below 867,2 MHz or above 872,8 MHz. The other option is to choose another crystal frequency which fits the recommendation (e.g. 26 MHz).


        Other sampling spurs can appear if the nth harmonic of the carrier is near to an integer multiple of the crystal frequency. In this case the distance between the frequency of the sampling spurs and the carrier will be equal to the distance between the nth harmonic and the integer multiple of crystal frequency. Regarding carrier harmonics the recommended distance between the harmonic frequency and the integer multiple of the crystal frequency for low frequency bands is typically 2,2/n MHz, for high frequency bands the value is 2,8/n MHz, where n is the number of carrier harmonic which is near to an integer multiple of the crystal frequency.


        Let’s see an example for a 3rd order sampling spur (the 3rd harmonic of the carrier is near to an integer multiple of the crystal frequency): fc = 909,8 MHz, fxtal = 30 MHz. In this case, the 3rd harmonic of the carrier (2729,4 MHz) is 0,6 MHz away from the 91th harmonic of the crystal frequency (2730 MHz). This way the side lobes will be 600 kHz away from the carrier:




        To meet the recommendation for the 3rd order sampling spurs, the carrier frequency should be chosen to be below ~909 MHz (= 910 MHz – 2,8/3 MHz) or above 911 MHz (= 910 MHz + 2,8/3 MHz). The other option is to choose an appropriate crystal frequency for the desired carrier frequency.


        Basically, it can be declared that it is sufficient to investigate the 1st, 2nd, 3rd and 4th order sampling spurs, higher order contents will not introduce such high power levels to fail the standard regulations.