FCC ETSI Test

From Texas Instruments Wiki
Jump to: navigation, search

Bluetooth Low Energy Main Page

Introduction

So, you want to FCC/ETSI certify your awesome Bluetooth low energy solution? This (short) step by step guide shows one way of adding test modes to your current solution. The APIs are also accessible when enabling PTM or using the Host Test network processor configuration.

Test Case

The tests that are assumed to be run are:

  • TX Continous Wave (CW), 2402 MHz, 0 dBm
  • TX Continous Wave (CW), 2440 MHz, 0 dBm
  • TX Continous Wave (CW), 2480 MHz, 0 dBm
  • TX Modulated, 2402 MHz 0 dBm
  • TX Modulated, 2440 MHz 0 dBm
  • TX Modulated, 2480 MHz 0 dBm
  • RX On, 2402 MHz Standard gain
  • RX On, 2440 MHz Standard gain
  • RX On, 2480 MHz Standard gain

To run these tests it is easiest to use a button to toggle this modes as below example will show. If no buttons are available on the product it is possible to use OSAL timer (CC254x) or RTOS Clock (CC26xx) to trigger a change of test parameters. The use of an LED is very useful to show that the device has started the test modes.

In the code example below, the HAL_LED_1 (Green LED on CC2540 Keyfob) will be lit when the test modes are run and off when the device is in sleep. Trigger HAL_KEY_SW_1 (Left key on CC2540 Keyfob) will toggle test modes.

Modification (the Code)

  • Make sure to turn off advertising as it is turned on by default in simple_peripheral.c:

uint8_t initialAdvertEnable = FALSE;

  • Add the global variable

static uint8 testFMode = 0;
*In Application_HandleKeys(), case if(keys & HAL_KEY_SW_1), replace the content with following code

SK_Keys |= SK_KEY_LEFT;
   testMode++;
   HalLedSet( HAL_LED_1, HAL_LED_MODE_ON );
   switch(testMode)
   {
   case 1:
     { 
       //1st Push: TX CW, 2402 MHz, 0 dBm 
       HCI_EXT_ModemTestTxCmd(HCI_EXT_TX_UNMODULATED_CARRIER,0);
     }
     break;
   case 2:
     {  
       HCI_EXT_EndModemTestCmd();
       //2nd Push: TX CW, 2440 MHz, 0 dBm 
       HCI_EXT_ModemTestTxCmd(HCI_EXT_TX_UNMODULATED_CARRIER,19);
     }
     break;
   case 3:
     {  
       HCI_EXT_EndModemTestCmd();
       //3rd Push: TX CW, 2480 MHz, 0 dBm 
       HCI_EXT_ModemTestTxCmd(HCI_EXT_TX_UNMODULATED_CARRIER,39);
     }
     break;
   case 4:
     {  
       HCI_EXT_EndModemTestCmd();
       //4th Push: TX MOD, 2402 MHz 0 dBm 
       HCI_EXT_ModemTestTxCmd(HCI_EXT_TX_MODULATED_CARRIER,0);
     }
     break;
   case 5:
     {  
       HCI_EXT_EndModemTestCmd();
       //5th Push: TX MOD, 2440 MHz 0 dBm 
       HCI_EXT_ModemTestTxCmd(HCI_EXT_TX_MODULATED_CARRIER,19);
     }
     break;
   case 6:
     {  
       HCI_EXT_EndModemTestCmd();
       //6th Push: TX MOD, 2480 MHz 0 dBm 
       HCI_EXT_ModemTestTxCmd(HCI_EXT_TX_MODULATED_CARRIER,39);
     }
     break;
   case 7:
     {  
       HCI_EXT_EndModemTestCmd();
       //7th Push: RX ON, 2402 MHz Standard gain 
       HCI_EXT_ModemTestRxCmd(0);
     }
     break;
   case 8:
     {  
       HCI_EXT_EndModemTestCmd();
       //8th Push: RX ON, 2440 MHz Standard gain 
       HCI_EXT_ModemTestRxCmd(19);
     }
     break;
   case 9:
     {  
       HCI_EXT_EndModemTestCmd();
       //9th Push: RX ON, 2480 MHz Standard gain 
       HCI_EXT_ModemTestRxCmd(39);
     }
     break;
   case 10:
     {  
       HCI_EXT_EndModemTestCmd();
       //Standby 
       HalLedSet( HAL_LED_1, HAL_LED_MODE_OFF );
       testMode = 0;
     }
     break;

}