This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2652R7: Documents required to run Factory test mode for FCC and TELEC certification

Part Number: CC2652R7
Other Parts Discussed in Thread: SYSCONFIG

Hi 

SDK Used : simplelink_cc13xx_cc26xx_sdk_7_10_01_24

Code Used : 

For FOTA purpose : 

bim_onchip_LP_CC2652R7_nortos_ticlang

persistent_app_LP_CC2652R7_tirtos7_ticlang

simple_peripheral_oad_onchip_LP_CC2652R7_tirtos7_ticlang

For Normal Mode : 

simple_peripheral_LP_CC2652R7_tirtos7_ticlang

We have to get FCC and TELEC certification for my product mass production so, We need a documents to run device in Factory Test Mode during certification.  

  • Hi mohan,

    Please refer to the following TI documents and let me know if you have any other specific questions about the certification process. 

    https://dev.ti.com/tirex/content/simplelink_cc13xx_cc26xx_sdk_7_10_02_23/docs/ble5stack/ble_user_guide/html/ble-stack-5.x/ptm-and-dtm.html 
    https://www.ti.com/lit/swra601 
    https://www.ti.com/tool/CC26XX-CERTIFICATION 

    Regards,
    Ryan

  • HI

    Quries :

    1) There are configuration to enable PTM. After enabling PTM as per that, we would like to know where have to configure the UART pins and GPIO for external triggers.

    2) After doing all the PTM related configurations, which tool can be used to send the commands to MCU for FCC certifications

  • 1) The UART pins are shared with the existing UART2 instance enabled in SysConfig, CONFIG_DISPLAY_UART shown in NPITLUART_initializeTransport from `npi_tl_uart.c, and pin designations can be altered with the PinMux drop-down settings.  If your current application disables UART2 or uses this communication interface for the application, you should consider adding a second UART2 instance or implementing a GPIO read inside of main.c that determines whether to initialize the NPI task for PTM mode, NPITask_createTask.

    2) More information is provided in the BTool User's Guide, and there are examples of using BTool in the Bluetooth Low Energy Fundamentals and Bluetooth Low Energy Connections SLAs, among others.

    Regards,
    Ryan

  • Hi,

    Thank you for the information

    As per customer requirement target board will act as a peripheral. We have enabled the PTM mode in the Simple_peripheral code.

    1. As per the document we have flashed the Host_test_app.hex in the launchpad and able to detect launchpad in the btool successfully. As per our understanding now this launchpad will act as a central device. 

    Query:

    as per our requirement we need to validate the target board in PTM mode. How to validate this?

    Our understanding:

    1. As we loaded the Host_test_app.hex in the launchpad which will act as central device and with this we need to connect our target board(PTM enabled simple peripheral), Is actual RF testing deviating from our understanding?, Kindly clarify how to test our target which will act as peripheral 

  • From SWRA601: "RF-PHY testing has to be done by a Bluetooth Qualified Test Facility (BQTF), (such as 7Layers, Dekra, TUV Rheinland and Wipro). Typically, the test houses also have a BQC, which can be used for further guidance through the qualification process...A certified test house will provide the necessary guidance and help required to place your radio product on the market." 

    Your selected BQTF will provide the necessary qualification steps.

    Regards,
    Ryan

  • Hi,

    Still we are trying to understand PTM mode with simple peripheral test.

    We have enabled the PTM in the Simple_peripheral_Sysconfig, but we haven't not created the NPI task creation(NPITask_createTask) in the main function. When we have tried to establish the connection with simple peripheral task, the BLE connection is getting failed.

    But same thing if we disable the PTM in sysconfig, then we are able to establish the BLE connection.

    As per our understanding, if we enable the PTM in sysconfig but not called the NPITask_createTask, then it shouldn't affect the normal BLE connection/disconnection. kindly let us know if we are missing anything for this.

    Below is the our approach:

    1. UART_READ from the Host (Ideally it will wait for 5 secs to get the PTM mode command)

    2. If we receive the PTM mode command then we will enable the NPITask_createTask and will proceed for BLE functionality, if not we will continue only BLE functionality.

  • Hi mohan,

    Did you remove the following from main.c?

    #ifdef PTM_MODE
      /* Start task for NPI task */
      NPITask_createTask(ICALL_SERVICE_CLASS_BLE);
    #endif // PTM_MODE

    It would also be wise to remove the additions to SimplePeripheral_init 

    #ifdef PTM_MODE
      // Intercept NPI RX events.
      NPITask_registerIncomingRXEventAppCB(simple_peripheral_handleNPIRxInterceptEvent, INTERCEPT);
    
      // Register for Command Status information
      HCI_TL_Init(NULL, (HCI_TL_CommandStatusCB_t) simple_peripheral_sendToNPI, NULL, selfEntity);
    
      // Register for Events
      HCI_TL_getCmdResponderID(ICall_getLocalMsgEntityId(ICALL_SERVICE_CLASS_BLE_MSG, selfEntity));
    
      // Inform Stack to Initialize PTM
      HCI_EXT_EnablePTMCmd();
    #endif // PTM_MODE

    And handling from SimplePeripheral_processStackMsg

    #ifdef PTM_MODE
      // Check for NPI Messages
      hciPacket_t *pBuf = (hciPacket_t *)pMsg;
    
      // Serialized HCI Event
      if (pBuf->hdr.event == HCI_CTRL_TO_HOST_EVENT)
      {
        uint16_t len = 0;
    
        // Determine the packet length
        switch(pBuf->pData[0])
        {
          case HCI_EVENT_PACKET:
            len = HCI_EVENT_MIN_LENGTH + pBuf->pData[2];
            break;
    
          case HCI_ACL_DATA_PACKET:
            len = HCI_DATA_MIN_LENGTH + BUILD_UINT16(pBuf->pData[3], pBuf->pData[4]);
            break;
    
          default:
            break;
        }
    
        // Send to Remote Host.
        simple_peripheral_sendToNPI(pBuf->pData, len);
    
        // Free buffers if needed.
        switch (pBuf->pData[0])
        {
          case HCI_ACL_DATA_PACKET:
          case HCI_SCO_DATA_PACKET:
            BM_free(pBuf->pData);
          default:
            break;
        }
      }
    #endif // PTM_MODE

    If these are performed but the application still fails, please complete further debugging steps to further identify the exact cause.

    Regards,
    Ryan