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.

CC2564C: Problems upgrading from CC2564 to CC2564C

Part Number: CC2564C
Other Parts Discussed in Thread: TM4C123GH6ZRB, CC2564, CC256XM4BTBLESW, , CC256XSTBTBLESW, , , TI-BT-4-2-STACK-LINUX-ADDON

We have hardware based on a TM4C123GH6ZRB microcontroller with a CC2564 bluetooth chip. We have used the bluetooth stack from TI called CC256XM4BTBLESW version 1.2R2 using Code Composer Studio with TIs C compiler. Everything works fine.

Now we need to upgrade the bluetooth chip to CC2564C due to availability, end-of-life etc. We thought this would be relatively easy but it turns out to be very difficult.

The main problem is that we need to change the bluetooth-stack to CC256XSTBTBLESW to get support for the CC2564C and this stack does NOT come packaged with support for TIs C compiler. So we have tried to port our code to using the GCC compiler instead. We have got the thing to compile but we are faced with multiple bugs that we are trying to iron out.

Now my questions:

Is there a way to get the older bluetooth stack (CC256XM4BTBLESW version 1.2R2) to work with CC2564C? That would mean we could stick with the same C compiler and avoid a a lot of problems.

If not, is there a chance to get the CC256XSTBTBLESW stack with support for TIs compiler? That also would mean that we avoid changing compilers.

Any help or pointers greatly appreciated!

  • Hi Danjel,

    Generally, the best way to understand what TI Bluetooth controllers, EVMs, and stacks are compatible is to check out the TI-Bluetooth-Stack-SDK page.

    Is there a way to get the older bluetooth stack (CC256XM4BTBLESW version 1.2R2) to work with CC2564C? That would mean we could stick with the same C compiler and avoid a a lot of problems.

    The CC256XM4BTBLESW stack only supports Bluetooth 4.0 features while the CC2564C is 5.1 compliant. I do not think there is a straightforward way to ensure the CC2564C is compatible with the M4 stack. 

    If not, is there a chance to get the CC256XSTBTBLESW stack with support for TIs compiler? That also would mean that we avoid changing compilers.

    Unfortunately, we cannot support this request. 

    The best recommendation I can give you is to switch microcontrollers to the STM32. I can also check internally if anyone has attempted a similar endeavor.

    Best regards,
    Jacob

  • Ok, thanks. That sounds bad. Changing microcontroller is not an option. I find it rather strange that support for STM32 is better than support for TI's own microcontroller?

    Anyway, I suppose it would be a lot easier to upgrade from CC2564 to CC2564B right? Since we could then stick with the same compiler and stack, just update the BT service pack version, possibly even get the same firmware to work with either CC2564 or CC2564B.

    BR,
    Danjel

  • Hi Danjel,

    I think you have two options here:

    1. Add "CC256XC.h" patch to the project based on CC256XM4BTBLESW. Note: this will likely only work if you plan to limit your development to Bluetooth 4.0 features as this stack is a 4.0 release. You will need to download this patch from the latest service pack and include it in your project under the btpsvend directory. Next, you will need to include the proper #ifdef in BTPSVEND.c to use the CC256XC patch. You can refer to the excerpt from BTPSVEND.c in the CC256XSTBTBLESW:

        /* Add this define to use CC256X									*/
    #ifdef __SUPPORT_CC256X_PATCH__
        #include "CC256X.h"
    #else
    #ifdef __SUPPORT_CC256XC_PATCH__
        #include "CC256XC.h"
    #else    
        #include "CC256XB.h"
    #endif    
    #endif

    2. Switch from CC256XM4BTBLESW to CC256XSTBTBLESW. You will have to create a project in CCS and link the CC256XSTBTBLESW SDK in that project. You will also have to port the HCITRANS files from the TM4C123GH6ZRB project. Another thing to note is that this stack only supports non-threaded environments or FreeRTOS.

    Best regards,

    Jacob

  • Hi!

    Thank you very much for investigating this! It is very much appreciated.

    Regarding option 1 (keep the old stack), it would be perfect if that worked since we are not planning to use any BT 5 features anyway. We are doing this upgrade due to chip availability.

    However, in the document "CC2564B to CC2564C Migration Guide" it is stated:

    "When migrating from CC2564B to CC2564C, the host stack must be upgraded to support CC2564C even if the BT4.2 features of CC2564C are not used. Additionally, the host stack must use the appropriate device-specific service pack for initialization. Following are the TI dual-mode Bluetooth stack releases compatible with CC2564C. • CC2564CMSP432BTBLESW • CC2564CSTBTBLESW • TI-BT-4-2-STACK-LINUX-ADDON"

    Are you sure it will work with the old stack considering what this document says? (Even if the new features are not used the stack must be upgraded)

    Option 2 has the problem I was originally faced with. Changing compiler exposes bugs in our code and forces us to change other stuff in our firmware such as the USB support etc.

    But if you are confident that option 1 should work then we will go with this route! Otherwise, could you confirm that it should work for us to upgrade from CC2564 to CC2564B instead of C. In that case the old stack should definitely work, right?

    BR,

    Danjel 

  • Hi Danjel,

    However, in the document "CC2564B to CC2564C Migration Guide" it is stated:

    "When migrating from CC2564B to CC2564C, the host stack must be upgraded to support CC2564C even if the BT4.2 features of CC2564C are not used. Additionally, the host stack must use the appropriate device-specific service pack for initialization. Following are the TI dual-mode Bluetooth stack releases compatible with CC2564C. • CC2564CMSP432BTBLESW • CC2564CSTBTBLESW • TI-BT-4-2-STACK-LINUX-ADDON"

    You are correct, Option 1 will actually not be feasible with the CC256XM4BTBLESW stack. I missed this part of the document.

    Option 2 will be your best path forward. TI cannot support adding Tiva compatibility with the CC2564CMSP432BTBLESW or CC2564CSTBTBLESW SDKs, but we can put you in contact with a third party who can help. Let me know if you would like this information and I'll connect you. I'll send you a friend request on E2E in the meantime to establish private messaging.

    Thanks,
    Jacob

  • Hi!

    Option 2 (CC2564C) is not really feasible for us. It causes way too much changes to a stable product in maintenance mode.

    So we will probably go to CC2564B and keep the current bluetooth stack. What is your opinion on that option? Do you see any problems with that approach?

    BR,
    Danjel

  • Hi Danjel,

    But if you are confident that option 1 should work then we will go with this route! Otherwise, could you confirm that it should work for us to upgrade from CC2564 to CC2564B instead of C. In that case the old stack should definitely work, right?

    I realize now that I missed one of your questions above. Yes, it should work to upgrade from CC2564 to CC2564B with the CC256XM4BTBLESW stack. This stack includes a CC256XB.h file for you to develop with. Do you have a CC2564B EVM to test with?

    Thanks,
    Jacob