KB: How to generate a CW (Continuous Wave) signal for a certification test?

How to generate a CW (Continuous Wave) signal for a certification test?

When working in CW configuration, use your own preferred settings for VDDRF, VDDPA enabling, VCC, VDDPA, DCCLK, the charge pump clock, and buck enabling.

The following steps describe how to use register settings to configure a CW signal output, for Tx or Rx, at a rate of either 1 Mbps or 2 Mbps:

  1. Load the hci_app hex file into flash memory, and then reset the RSL10 Evaluation and Development Board.

This ensures that the RF registers are set correctly.

NOTE: The register-setting steps that follow can be performed using JTAG commander, or implemented in the Arm Cortex-M3 processor code itself.

  1. Set RF_REG00->MODE2_BYTE to 0.
  2. Set RF_CENTER_FREQ to the frequency you desire. Find the required frequency using the equation , where n is the RF Bluetooth low energy channel number from 0 to 39.
  3. RF_REG05->BANK_BYTE is set to 0, for 1 Mbps, by default. For 2 Mbps, set RF_REG05->BANK_BYTE to 1.
  4. To configure for Rx mode, set RF_REG30->FSM_MODE_BYTE to 3.
  5. To configure for Tx mode, set RF_REG30->FSM_MODE_BYTE to 7.
  6. To configure for idle mode (disable RF), set RF_REG30->FSM_MODE_BYTE to 8.
  7. To disable pulse shaping during Tx to keep the frequency from being offset from the center, set registers RF_TX_PULSE0, RF_TX_PULSE1, RF_TX_PULSE2, and RF_TX_PULSE3 to zero.

Here is an example of the code for TX CW function

static void init_tx_cw_test(void)
{

//*********************************************
// TX test (CW signal)
//*********************************************
/*set RF_REG00->MODE2_BYTE to 0, digital Baseband off */
RF_REG00->MODE2_BYTE = 0;

/* frequency = 0x8215c71c + n* 0x71c7, where n is RF BLE channel n=0 to 39 */
/*This is 2440MHz (0x821e38e3) */
RF->CENTER_FREQ =0x821e38e1;

/*set RF_REG05->BANK_BYTE to 0 for 1 Mbps and 1 for 2 Mbps (by */
/*default it is 1 Mbps and there is no need to set it again for 1 Mbps. */
RF_REG05->BANK_BYTE=0;

/* to put in Tx mode, set RF_REG30->FSM_MODE_BYTE to 7 */
/*to put in Rx mode, set RF_REG30->FSM_MODE_BYTE to 3 */
RF_REG30->FSM_MODE_BYTE =7;

/* Disable pulse shaping during Tx in order not to have frequency offset from center frequency */

RF->TX_PULSE0=0;
RF->TX_PULSE1=0;
RF->TX_PULSE2=0;
RF->TX_PULSE3=0;
}

Here is another example of using JTAG to obtain a CW signal.

Here is a reference CW signal taken from a spectrum analyzer.

@ceran.omur

Example how to configure for CW RX mode.

/*to put in Rx mode, set RF_REG30->FSM_MODE_BYTE to 3 */

RF_REG00->MODE2_BYTE = 0;
RF->CENTER_FREQ =0x821e38e1;
RF_REG05->BANK_BYTE=0;
RF_REG30->FSM_MODE_BYTE=3;