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.

LAUNCHCC3220MODASF: Challenges in Integrating BLE and GSM Functionalities on TI cc3220MODASF Launchpad

Part Number: LAUNCHCC3220MODASF
Other Parts Discussed in Thread: CC3301, LP-XDS110ET, LP-EM-CC2340R5, CC2340R5, LP-XDS110

HI,

My Project Requirements:

- MCU + WiFi + BLE
- GSM integration via UART (point-to-point communication)
- MQTT communication (Azure IoT Hub as a cloud platform - Azure plug-in recommended)
- Sensors:
1) Two Modbus (max485) - 2 UART
2) External RTC - I2C
3) ADC sensors - ADC channels
4) SD card - SPI
5) Display - I2C
6) GPIO expander MCP2017 - I2C

Our current project, based on ESP32, meets all the specified requirements. However, our client has requested a migration from ESP32 to TI. Consequently, we have initiated the project using the cc3220MODASF launchpad (SimpleLink_c32xx_sdk_4_10_00_07 and Azure_cc32xx_4_10_01_01). Presently, we are facing challenges in integrating BLE and GSM functionalities. For BLE integration, an additional BLE MCU/transceiver is necessary (TI e2e recommends cc3301 companion IC), while for GSM integration, no sample code is available. Moreover, it entails developing a third-party TCP/IP library (LWIP).

Question:

Can we proceed with the CC3220MODASDF MCU to fulfill all our project requirements? If not, could you recommend an MCU that can meet these requirements, and can I port my CC3220 code to that IC? If the CC3220 is sufficient, could you suggest a better hardware design to integrate BLE and GSM functionality?

  • Hi,

    I think key question is do you need low power device? If not, it looks as job for TI processor running Linux + CC3301 not a Cortex M4 MCU inside CC3220.

    I think this will be too much tasks for CC3220 especially if will be needed TLS for GSM modem at your hardware. Maybe you can offload TLS from MCU using TLS stack at your modem (without using ppp mode of modem). I am not sure if CC3220 will be able deal with CC3301 from resource stand point.

    Linux and RTOS (TI or Free) are completely different platform with different philosophy. Don't expect "easy" porting from RTOS to Linux.

    Jan

  • Hi

    We don't need low-power devices. We currently use TI-RTOS on cc3220. Does cc3301 support RTOS? Its datasheet indicates it is suitable for both Linux and RTOS-based systems.

    Regarding the modem, we have already integrated the Azure plug-in (Azure_cc32xx_4_10_01_01), so I believe using modem TLS might be challenging.

    Is there a Texas Instruments microcontroller unit (MCU) with modem PPP capabilities?

  • Hi,

    I think at present time CC3301 driver supports Linux. If you need to use CC3301 at CC3220m you will need to port driver. I am not sure how much porting effort will be needed. But I think it may to be even challenge for upload firmware into CC3301 after startup. CC3301 is a RAM based device and TI firmware needs to be uploaded after each CC3301 reset. I think it have approximately 1MB.

    PPP can be done at all MCUs which have UART interface. It is just COBS encoding over serial line. If you want to communication with GSM modem, you need to have support for protocols LCP, IPCP and PAP/CHAP as well.

    Jan

  • Hi,

    Currently the RTOS SDK is pre production and access can be requested by https://www.ti.com/tool/CC33XX-SOFTWARE

    However the driver would have to be ported over to the cc3220.

    In your case I believe the best bet would be to use another BLE MCU instead of the cc3301 transceiver.

    I would recommend the cc2340.

    Its a cheaper option as well.

    https://www.ti.com/product/CC2340R5

    Best,

    Rogelio

  • HI,

    When we use CC2340RS with SPI interface with CC3220MODASF, is there any SDK available for this integration? Or any code samples available?

    I believe we are buying the LP-EM-CC2340R5 evaluation board. Is the LP-XDS110ET emulation board required if we are integrating CC2340R5 with CC3220 via SPI?

    Currently, we are working with SDKs SimpleLink_c32xx_sdk_4_10_00_07 and Azure_cc32xx_4_10_01_01. Can we integrate CC2340R5 while using these SDKs?

  • Hi,

    What do you mean by integration?

    Both devices have SPI capability in which you will be able to transfer whatever communication you would need between the devices. Here is an example on how to use spi on the CC2340

    https://dev.ti.com/tirex/explore/node?a=IOGqZri__3.80.13.03&node=A__AND3WyBrndd9dq3MM1QieA__com.ti.SIMPLELINK_LOWPOWER_F3_SDK__58mgN04__LATEST

    Each device has its own SDK and MCU. The devices would be working independently from each other.

    Best,

    Rogelio

  • Hi,

    The two MCUs work independently, so each device requires separate programming. Therefore, should I purchase both the LP-EM-CC2340R5 evaluation board and the LP-XDS110ET emulation board? Am I correct?

    In this case, should I establish SPI communication with CC3220 as master and CC2340 as slave? In our project, BLE is used only for initial configuration.



  • Hi,

    You could actually leverage the XDS110 thats already part of the CC3220 launchpad so you wouldnt have to buy an LP-XDS110.

    Here is the documentation on how to hook it up.

    https://dev.ti.com/tirex/explore/node?a=IOGqZri__3.80.13.03&node=A__AC7UNBWx3i6iMAUzzhqKwA__com.ti.SIMPLELINK_LOWPOWER_F3_SDK__58mgN04__LATEST

    In this case, should I establish SPI communication with CC3220 as master and CC2340 as slave?  

    Yes I believe this would be the best case. Where you would send over any data you recieved from BLE initialization over to the WIFI MCU.

    Best,

    Rogelio

  • Hi,

    I purchased LP-EM-CC2340R5 and tested the data_stream sample code successfully. Now I want to communicate LP-EM-CC2340R5 to CC3220 MODASF via SPI and try the SPI controller sample code of both boards, but in this case, SPI on both boards are initialized as MASTER. So, any changes needed? I can't get proper communication between them.

    Could you verify the hardware connection I attached below?

    SPI Controller LaunchPad CC2340R

    SPI MASTER LaunchPad CC3220

    CONFIG_SPI_CONTROLLER_CLK

    CONFIG_SPI_MASTER_CLK

    CONFIG_SPI_CONTROLLER_PICO

    CONFIG_SPI_MASTER_miso

    CONFIG_SPI_CONTROLLER_POCI

    CONFIG_SPI_MASTER_mosi

    CONFIG_SPI_CONTROLLER_CSN

    CONFIG_SPI_MASTER_CS

    CONFIG_SPI_CONTROLLER_READY

    CONFIG_SPI_MASTER_READY

    CONFIG_SPI_PERIPHERAL_READY

    CONFIG_SPI_MASTER_READY



  • HI,

    Have you tried running the spicontroller and spiperipheral examples on the devices.

    https://dev.ti.com/tirex/explore/node?a=IOGqZri__3.80.13.03&node=A__ALK2bn4zHIXZeY.OSaurqw__com.ti.SIMPLELINK_CC32XX_SDK__fc2e6sr__LATEST

    These demos will guide you to properly configure the SPI TI driver to be either peripheral or controller.

    In regards to your connections, they look correct.

    Do you have a ground wire?

    Best,

    Rogelio

  • Hi,

    No. You can't have two masters at one SPI bus. One device need to be master other device need to be slave. Slave input need to be connected to master output. Master input need to be connected to slave output.

    Jan