How to use the sleep timer of the Si4010 for TX duty cycle enforcement.
A) This module assists the main application to enforce the duty cycle requirements of the ETSI specification.
B) It also provides a way to set the sleep timer power switch which causes the chip to wake up when the timer reaches 0.
The API functions bSleepTim_CheckDutyCycle and vSleepTim_AddTxTimeToCounter are necessary only for A).
For case A) the following steps must be done before each packet transmission:
1. Call lSleepTim_GetCount. It reads the sleep timer and stores the counter value in an internal API global variable and also returns the value. After the current value is read the sleep timer continues to decrement the counter value.
2. Call bSleepTim_CheckDutyCycle. It compares the sleep timer value stored by the prior call to vSleepTim_GetCount() with the value which would take 1 hour for the counter to completely decrement.
If the stored number is larger, the next transmit will violate the duty cycle enforcing, and a value 0 is returned. Do other tasks or wait, then go back to step 1.
If the stored value is smaller, the next transmit will not violate the duty cycle enforcing, and a value 1 is returned. Go to next step.
3. Call vSleepTim_AddTxTimeToCounter with the parameter wiIntegrand that is calculated from the time of the next transmission according to the description on p 96. of AN370. A value calculated from wiIntegrand will be added to the stored counter value and loaded into the sleep timer.
4. Transmit the packet.
5. Sleep timer keeps counting down even in shutdown state.
Can I use the Si4x6x and Si4x5x radio chips without the matching balun on the RX side? What are the sensitivity numbers in that case?
The Si4x6x and Si4x5x radio chips can be used without the use of the 4-element discrete matching balun transformator. In this case only two bypass capacitors are required at the RX pins and in this way an ultra low-cost all-band RX solution can be got. The basic idea is to use the originally differential receiver as a simple single-ended one. For this, one of the RX pins should be connected to ground - via a bypass capacitor - and the other RX pin should be used as a single-ended input.
Here is the schematic sketch of the forced single-ended receiver:
Of course, the sensitivity will be slightly degraded compared to the case when the balun matching network is applied. Here are some sensitivity numbers in case of using this ultra low-cost single-ended solution:
315 MHz: -101.4 dBm
434 MHz: -101.1 dBm
868 MHz: -99.5 dBm
915 MHz: -99.1 dBm
With the following conditions:
2-GFSK modulation, 100 kbps data rate, 50 kHz frequency deviation, RxBW is approx. 200 kHz, BER < 1e-3.
Measured on the 4362-PRXBxxx reference Pico Board (WES0002, LR1: not mounted, CR1: bypass capacitor, LR2: not mounted, CR2: bypass capacitor, CC: zero ohm).
So, basically the sensitivity is approximately -101 dBm at the low frequency bands and -99 dBm at high-bands. These numbers are about 1-1.5 dB worse in case of using Si4x5x radio chips.
Some additional notes:
- this solution can be applied where the RX side is not directly connected to the TX path (i.e. this solution cannot be used in Direct-tie configuration)
- at higher-Z termination (300-500 ohm) the sensitivity can be improved (see AN643 for the optimum terminations)