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.

CC2564MODA: [CC2564] Device is not connectable and not advertising after bluetopia stack initialization

Part Number: CC2564MODA
Other Parts Discussed in Thread: MSP432E401Y, CC2564, CC2564C, MSP-EXP432E401Y, CC2564MODNEM,

Hi,

I am using MSP432E401Y with CC2564MODA Bluetooth module. At this moment I am able to communicate with the module using the bluetopia stack.

I am calling InitializeApplication() function successfully we can find on SPPDemo.c file (\Samples\SPPDemo). After initialize the Bluetooth Stack, I am able to open the SPP server using OpenServer() and I call periodically BTPS_ProcessScheduler(). But at this point, my device is not advertising neither accepts Bluetooth connections.

When running my code, this output is provided on the debug console:

OpenStack().
Bluetooth Stack ID: 1
Device Chipset: 4.1
BTPS Version  : 4.0.3.0
Project Type  : 6
FW Version    : 7.26
LOCAL BD_ADDR: CC:78:AB:7D:84:B8
Local Device Name(): MY_BTH_DEVICE
Server Opened: 1.

All mode are OK when I query for the current mode parameters using GAP_Query_Connectability_Mode(), GAP_Query_Discoverability_Mode() and GAP_Query_Pairability_Mode().

Can someone tell me what procedures should I take to detect any anomalies?

Best Regards
Nuno Dias

----------------------------------------------------------

Bellow some code snippets I am extracted from bluetopia  stack samples:

int bluetooth_init(void)

int bluetooth_init(void) {
   DEBUG_MSG("");

   int                           Result;
   BTPS_Initialization_t         BTPS_Initialization;
   HCI_DriverInformation_t       HCI_DriverInformation;
   HCI_HCILLConfiguration_t      HCILLConfig;
   HCI_Driver_Reconfigure_Data_t DriverReconfigureData;

   /* Configure the hardware for its intended use.                      */
   HAL_ConfigureHardware();

   /* Configure the UART Parameters nd Initialize the Bluetooth Stack.  */
   HCI_DRIVER_SET_COMM_INFORMATION(&HCI_DriverInformation, 1, HAL_HCI_UART_MAX_BAUD_RATE, cpHCILL_RTS_CTS);
   HCI_DriverInformation.DriverInformation.COMMDriverInformation.InitializationDelay = 100;

   /* Set up the application callbacks.                                 */
   BTPS_Initialization.GetTickCountCallback  = getTickCountCallback;
   BTPS_Initialization.MessageOutputCallback = msgOutputCallback;

   /* Initialize the application.                                       */
   Result = InitializeApplication(&HCI_DriverInformation, &BTPS_Initialization);
   if (Result > 0) {
      /* Save the Bluetooth Stack ID.                                   */
      BluetoothStackID = (unsigned int)Result;
      Result = OpenServer(SPP_PORT_NUMBER_MINIMUM);
   } else {
      DisplayFunctionError("Initialize the application", Result);
   }


int InitializeApplication(HCI_DriverInformation_t *HCI_DriverInformation, BTPS_Initialization_t *BTPS_Initialization)

/* The following function is used to initialize the application      */
/* instance.  This function should open the stack and prepare to     */
/* execute commands based on user input.  The first parameter passed */
/* to this function is the HCI Driver Information that will be used  */
/* when opening the stack and the second parameter is used to pass   */
/* parameters to BTPS_Init.  This function returns the               */
/* BluetoothStackID returned from BSC_Initialize on success or a     */
/* negative error code (of the form APPLICATION_ERROR_XXX).          */
int InitializeApplication(HCI_DriverInformation_t *HCI_DriverInformation, BTPS_Initialization_t *BTPS_Initialization)
{
   int ret_val = APPLICATION_ERROR_UNABLE_TO_OPEN_STACK;

   /* Initialize some defaults.                                         */
   SerialPortID           = 0;
   bthRole                = BTH_ROLE_NONE;
   NumberofValidResponses = 0;

   /* Next, makes sure that the Driver Information passed appears to be */
   /* semi-valid.                                                       */
   if((HCI_DriverInformation) && (BTPS_Initialization))
   {
      /* Try to Open the stack and check if it was successful.          */
      if(!OpenStack(HCI_DriverInformation, BTPS_Initialization))
      {
         /* The stack was opened successfully.  Now set some defaults.  */

         /* First, attempt to set the Device to be Connectable.         */
         ret_val = SetConnect();

         /* Next, check to see if the Device was successfully made      */
         /* Connectable.                                                */
         if(!ret_val)
         {
            /* Now that the device is Connectable attempt to make it    */
            /* Discoverable.                                            */
            ret_val = SetDisc();

            /* Next, check to see if the Device was successfully made   */
            /* Discoverable.                                            */
            if(!ret_val)
            {
               /* Now that the device is discoverable attempt to make it*/
               /* pairable.                                             */
               ret_val = SetPairable();
               if(!ret_val)
               {
                  /* Attempt to register a HCI Event Callback.          */
                  ret_val = HCI_Register_Event_Callback(BluetoothStackID, HCI_Event_Callback, (unsigned long)NULL);
                  if(ret_val > 0)
                  {
                     /* Assign a NULL BD_ADDR for comparison.           */
                     ASSIGN_BD_ADDR(NullADDR, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);

                     /* Save the maximum supported baud rate.           */
                     MaxBaudRate = (DWord_t)(HCI_DriverInformation->DriverInformation.COMMDriverInformation.BaudRate);

                     /* Return success to the caller.                   */
                     ret_val = (int)BluetoothStackID;
                  }
                  else
                     DisplayFunctionError("HCI_Register_Event_Callback()", ret_val);
               }
               else
                  DisplayFunctionError("SetPairable", ret_val);
            }
            else
               DisplayFunctionError("SetDisc", ret_val);
         }
         else
            DisplayFunctionError("SetDisc", ret_val);

         /* In some error occurred then close the stack.                */
         if(ret_val < 0)
         {
            /* Close the Bluetooth Stack.                               */
            CloseStack();
         }
      }
      else
      {
         /* There was an error while attempting to open the Stack.      */
         Display(("Unable to open the stack.\r\n"));
      }
   }
   else
      ret_val = APPLICATION_ERROR_INVALID_PARAMETERS;

   return(ret_val);
}