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.

CCS/EK-TM4C123GXL: TM4C123G LaunchPad and CC2650 Module

Part Number: EK-TM4C123GXL
Other Parts Discussed in Thread: CC2650, BOOSTXL-CC2650MA

Tool/software: Code Composer Studio

I have TM4C123G LauchPad and CC2650 Module. I want to learn how to use both of them to connect to phone via bluetooth. However, when I google it shows MSP432 Lauchpad with CC2650 Module, example is "Project Zero". 

I wonder can I do the same thing with TM4C123G LauchPad? And is there any documents relating to TM4C123G LauchPad and CC2650 Module. 

Thanks, 

  • Ai,

    I will assign someone to help you.

    Thanks,

    Luis

  • Hi Ai,

    You can see what devices are supported by the BLE plugin by looking at the plugin's user guide, which can be found on the TI resource explorer. I will include a link below. The TM4C123G is unfortunately not officially supported. The MSP432 is a much newer device than the TM4C123G, and I would recommend you use the MSP432 if possible. If you have any further questions, let me know.

    https://dev.ti.com/tirex/explore/node?node=ANwG0sre.t-m9xHhYyJ5cw__kmPly-e__LATEST

    Best Regards,
    Alec

  • Hi Alec,

    I already got my MSP432. Do you have any source, documents or tutorial I can learn to connect msp432p401r and BOOSTXL-CC2650MA via bluetooth. 

    Sincerely, 

  • Hi Ai,

    Yes, please review the BLE Plugin section on Dev.ti.com, I will link it below. It will contain documents and examples for how to use the device as well as setup infromation. 

    https://dev.ti.com/tirex/explore/node?node=AFx.GPKrcYKYb2o0x0jWHg__kmPly-e__LATEST


    Best Regards,
    Alec

  • Hi Alec,

    Thanks for your help a lot. 

    Due to some problems I can't post a new question. I've done one simple project relating to MSP432p401r and CC2650 Module via bluetooth but it does not work. I hope you can me figure it out. 

    First I modify code from UART PC Echo 12MHz example. I use UART0 for pin 1.1 and 1.3 and communicating via USB and Tera Term. When I type 'r' it turns LED Red, 'b' for LED Blue, and 'g' for LED Green. 

    Then, I want to connect MSP432p401r and CC2650 Module via Bluetooth. I choose UART2 for pin 3.2 and 3.3. I connect TX (CC2650 Module) to P3.2, RX(CC2650 Module) to P3.3, GND to GND and 3.3V to 3.3V. Total is 4 wires. But I can't find Bluetooth signal in Laptop or TI App or LightBlue App on Phone.

    Here is my code. 

    /* DriverLib Includes */
    #include <ti/devices/msp432p4xx/driverlib/driverlib.h>
    
    /* Standard Includes */
    #include <stdint.h>
    #include <stdbool.h>
    
    //![Simple UART Config]
    /* UART Configuration Parameter. These are the configuration parameters to
     * make the eUSCI A UART module to operate with a 9600 baud rate. These
     * values were calculated using the online calculator that TI provides
     * at:
     *software-dl.ti.com/.../index.html
     */
    const eUSCI_UART_ConfigV1 uartConfig =
    {
            EUSCI_A_UART_CLOCKSOURCE_SMCLK,          // SMCLK Clock Source
            78,                                     // BRDIV = 78
            2,                                       // UCxBRF = 2
            0,                                       // UCxBRS = 0
            EUSCI_A_UART_NO_PARITY,                  // No Parity
            EUSCI_A_UART_LSB_FIRST,                  // LSB First
            EUSCI_A_UART_ONE_STOP_BIT,               // One stop bit
            EUSCI_A_UART_MODE,                       // UART mode
            EUSCI_A_UART_OVERSAMPLING_BAUDRATE_GENERATION,  // Oversampling
            EUSCI_A_UART_8_BIT_LEN                  // 8 bit data length
    };
    //![Simple UART Config]
    
    int main(void)
    {
        /* Halting WDT  */
        MAP_WDT_A_holdTimer();
    
        /* Selecting P3.2 and P3.3 in UART mode */
        MAP_GPIO_setAsPeripheralModuleFunctionInputPin(GPIO_PORT_P3,
                GPIO_PIN2 | GPIO_PIN3, GPIO_PRIMARY_MODULE_FUNCTION);
    
        /* Setting DCO to 12MHz */
        CS_setDCOCenteredFrequency(CS_DCO_FREQUENCY_12);
    
        //![Simple UART Example]
        /* Configuring UART Module */
        MAP_UART_initModule(EUSCI_A2_BASE, &uartConfig);
    
        /* Enable UART module */
        MAP_UART_enableModule(EUSCI_A2_BASE);
    
        /* Enabling interrupts */
        MAP_UART_enableInterrupt(EUSCI_A2_BASE, EUSCI_A_UART_RECEIVE_INTERRUPT);
        MAP_Interrupt_enableInterrupt(INT_EUSCIA2);
        MAP_Interrupt_enableSleepOnIsrExit();
        MAP_Interrupt_enableMaster();   
        //![Simple UART Example]
    
        while(1)
        {
            MAP_PCM_gotoLPM0();
        }
    }
    
    /* EUSCI A0 UART ISR - Echoes data back to PC host */
    void EUSCIA2_IRQHandler(void)
    {
        WDT_A_hold(WDT_A_BASE);
        volatile uint32_t i;
        GPIO_setAsOutputPin(GPIO_PORT_P2, GPIO_PIN0|GPIO_PIN1|GPIO_PIN2);
        uint32_t status = MAP_UART_getEnabledInterruptStatus(EUSCI_A2_BASE);
    
        if(status & EUSCI_A_UART_RECEIVE_INTERRUPT_FLAG)
        {
            //MAP_UART_transmitData(EUSCI_A0_BASE, MAP_UART_receiveData(EUSCI_A0_BASE));
            char c = MAP_UART_receiveData(EUSCI_A2_BASE);
            if ( c == 'r'){
                MAP_UART_transmitData(EUSCI_A2_BASE, 'r');
                GPIO_setOutputLowOnPin(GPIO_PORT_P2, GPIO_PIN0);
                GPIO_setOutputLowOnPin(GPIO_PORT_P2, GPIO_PIN1);
                GPIO_setOutputLowOnPin(GPIO_PORT_P2, GPIO_PIN2);
                GPIO_setOutputHighOnPin(GPIO_PORT_P2, GPIO_PIN0);
    
    
    
            }
            else if ( c == 'g'){
                MAP_UART_transmitData(EUSCI_A2_BASE, 'g');
                GPIO_setOutputLowOnPin(GPIO_PORT_P2, GPIO_PIN0);
                GPIO_setOutputLowOnPin(GPIO_PORT_P2, GPIO_PIN1);
                GPIO_setOutputLowOnPin(GPIO_PORT_P2, GPIO_PIN2);
                GPIO_setOutputHighOnPin(GPIO_PORT_P2, GPIO_PIN1);
    
    
    
            }
            else if ( c == 'b'){
                MAP_UART_transmitData(EUSCI_A2_BASE, 'b');
                GPIO_setOutputLowOnPin(GPIO_PORT_P2, GPIO_PIN0);
                GPIO_setOutputLowOnPin(GPIO_PORT_P2, GPIO_PIN1);
                GPIO_setOutputLowOnPin(GPIO_PORT_P2, GPIO_PIN2);
                GPIO_setOutputHighOnPin(GPIO_PORT_P2, GPIO_PIN2);
    
    
            }
            else {
                MAP_UART_transmitData(EUSCI_A2_BASE, 'e');
    
            }
    
        }
    
    }

    Sincerely, 

  • Hi Ai,

    I would highly recommend that you base your project off of one of the sample projects included in the BLE plugin. There is a lot of configuration involved with BLE, so it will save you a lot of time if you reuse the BLE code included in our examples. Read through the description of each of the descriptions for our examples and see which one is most similar to what you are looking to accomplish. Project Zero is usually a good starting point for most use cases.

    Best Regards,
    Alec