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.

BT-MSPAUDSINK-RD reference code and BSP

Other Parts Discussed in Thread: BT-MSPAUDSINK-RD, TIBLUETOOTHSTACK-SDK, CC256XMSPBTBLESW, BT-MSPAUDSINK, MSP430WARE, CC2564

Hi,

I would like to check, is the BT-MSPAUDSINK-RD EVM kit pre-loaded some code inside? Means I can played some music when I connect the EVM with my phone thru Bluetooth? 

Secondly, may I know is there any BSP (Board supported package) for this BT-MSPAUDSINK-RD kit? 

Thirdly, where can I get the reference code that pre-loaded in the EVM kit? I would like to add on a proximity sensors, and I would like to change my quote from the reference code (which pre-loaded in the EVM). Thank you very much for your help!!

Thanks and best regards,

Kum Hoo

  • Hi,

    You can refer to the A3DPDemo_SNK which is part of the Bluetooth SDK release from http://www.ti.com/tool/tibluetoothstack-sdk (link to this is provided from the CC256x main page, under TI’s Bluetooth Stack section) , CC256XMSPBTBLESW (v1.5 R2) for MSP430 .
  • Hi,

    May I know where can I get the TI-RTOS drivers and Library?

    Thanks and best regards,
    KH
  • Hi,

    TI-RTOS download link http://downloads.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/tirtos

    For IAR + add-ons. follow http://processors.wiki.ti.com/index.php/Creating_TI-RTOS_Applications_in_IAR_Embedded_Workbench
    also see http://www.ti.com/lit/ug/spruhu5a/spruhu5a.pdf

    Mind that presently we have Two demoes SPPDemo and SPPLEDemo in Tiva C release which supports TI RTOS.
  • Hi Sundeep,

    I am a noob on software development, I would like to build a product (bluetooth headset) using the reference design of BT-MSPAUDSINK-RD kit, but I would like to run it using TI-RTOS. May you guide me how to do it and what should I do for the software? If I using IAR to do the coding, I need to download the TI-RTOS download link, then follow by the TI Bluetooth stack? I am using MSP430 as per reference design, but will add a proximity sensor to do some distance detection.
  • Hi,

    You can not use the A3DP (Assisted A2DP) and Proximity together. as mentioned in the Data sheet : "The assisted modes (HFP 1.6 and A2DP) are not supported simultaneously. Furthermore, the assisted modes are not supported simultaneously with BLE or ANT."

    and presently we don't have support for TI-RTOS on the MSP release.
  • Hi Sundeep,

    Thanks for your reply. I am a bit confused on what you mentioned "we don't have support for TI-RTOS on the MSP release" statement? This means MSP430 cannot run TI-RTOS? but I saw this documents: www.ti.com/.../spruhu4a.pdf

    Thanks and best regards,
    KH
  • Hi,

    The Bluetopia Stack we provide for MSP430 does not have support for TI-RTOS, in the current release. Hope it is clear now.
  • hi sundeep,

    interesting, may i know how does Bluetopia Stack achieve Fully thread safe, event notification and etc without a kernel ?

    http://processors.wiki.ti.com/index.php/CC256x_TI's_Bluetooth_Stack#Architecture_Overview
    designed based on the following principles:

    Fully thread safe (threaded environments)
    Asynchronous event notification
    Fully Re-entrant
    Entirely self contained (threaded environments)

  • Hi,

    It is done by having Mutex/Semaphore Lock and Unlock mechanism on API calls, for example You can see BSC_LockBluetoothStack()
    NOTE : BSC_LockBluetoothStack() should not be used from the application as mentioned in the "BluetopiaCoreAPI.pdf" document.

    Mind that in the bluetopia stack, You can run all the Bluetooth operations in a single thread but multiple threads cannot make Bluetooth calls. make sure you are processing only one operation at a time.
  • Hi Sundeep,

    your reply is too basic with no depth.

    You see an application can never wait for ever for BT stack notification.

    case like HFP client trigger an out going call by button press at headset to a smartphone for example.

    certainly there is kind of call back registration for BT stack to notify the application. So, applications

    should have being coded in a RTOS environment.

    So, where is the kernel in this evaluation kit out of box demonstration ?

    bt-mspaudsink-rd

  • Hi sundeep,

    Could you share with us what does this file do ? BTPSKRNL.c

    Secondly, Could you share with us what is TI's intention when creating and selling bt-mspaudsink-rd board without reference design SDK or BSP or step by step guide on building the identical demo ? in another word, what does TI expecting customers could do after buying this evaluation board ?

  • Hi Jai,

    (1) Once you download & install the TI Bluetooth Stack SDK (www.ti.com/.../tibluetoothstack-sdk), you should see the document: "v1.5 R2\Documentation\Porting\BTPSKRNL.pdf" which explains about BTPSKRNL.

    (2) Please see:
    The Audio Sink Quick start guide at: processors.wiki.ti.com/.../CC256x_Audio_Sink_Quick_Start_User_Guide
    The user guide at: processors.wiki.ti.com/.../CC256x_Audio_Sink_User_Guide
    The "Out of the Box experience" page at: processors.wiki.ti.com/.../CC256x_Audio_Sink_User_Guide
    The demo instructions at: processors.wiki.ti.com/.../CC256x_MSP430_TI%27s_Bluetooth_Stack_Basic_AssistedA2DPSinkDemo_APP
    The source code is provided as part of the TI Bluetooth Stack SDK - "v1.5 R2\MSP430_Experimentor\Samples\A3DPDemoXXXXXX"

    Regards,
    Gigi Joseph.
  • Hi Joseph Gigi,

    appreciate for the reply but BTPSKRNL.pdf intention is for customer interested in porting the BT stack to another system. for example in line 576 void BTPSAPI BTPS_Delay(unsigned long MilliSeconds) of BTPSKRNL.c we see the implementation of BTPS_Delay which the stack will relies on it. so back to my question where is the actual kernel in bt-mspaudsink-rd demo ? Is it true that TI created the demo in non-OS environment ? if yes, how did the stack trigger to application (UL - upper layer) when A2DP SRC wanted to inform SNK begin streaming, for example in Generic A/V Distribution Profile Page 17 of 38 and AVDTP_SPEC_V13.pdf  Page 31 of 140.

    If this is single threaded and no RTOS in the bt-mspaudsink-rd demo how did AUD_Event_Callback get called ?

    Am I right that TI has no intention to prepare for customer buying bt-mspaudsink-rd to re-build / create the identical demo ? because in CC256XMSPBTBLESW static void ConfigureCodecTAS(void) I2C is connected to Port 2 whereas bt-mspaudsink-rd I2C is connected to port 3. So, back to my question, what is TI intention for creating and selling bt-mspaudsink-rd ?

    looking forward to TI provides in depth implementation information of the demo.

  • Hi Joseph Gigi,

    appreciate for the reply but BTPSKRNL.pdf intention is for customer interested in porting the BT stack to another system. for example in line 576 void BTPSAPI BTPS_Delay(unsigned long MilliSeconds) of BTPSKRNL.c we see the implementation of BTPS_Delay which the stack will relies on it. so back to my question where is the actual kernel in bt-mspaudsink-rd demo ? Is it true that TI created the demo in non-OS environment ? if yes, how did the stack trigger to application (UL - upper layer) when A2DP SRC wanted to inform SNK begin streaming, for example in Generic A/V Distribution Profile Page 17 of 38 and AVDTP_SPEC_V13.pdf  Page 31 of 140.

    If this is single threaded and no RTOS in the bt-mspaudsink-rd demo how did AUD_Event_Callback get called ?

    Am I right that TI has no intention to prepare for customer buying bt-mspaudsink-rd to re-build / create the identical demo ? because in CC256XMSPBTBLESW static void ConfigureCodecTAS(void) I2C is connected to Port 2 whereas bt-mspaudsink-rd I2C is connected to port 3. So, back to my question, what is TI intention for creating and selling bt-mspaudsink-rd ?

    looking forward to TI provides in depth implementation information of the demo.

  • Hi Jai,

    If I understood you well, you are looking at more information on the Bluetooth stack Architecture. if so, it is explained in a document which is part of the SDK release. Please see: BluetopiaArchitectureOverview.pdf at location "v1.5 R2\Documentation\Porting\"

    I am just pasting some relevant section from the document (3.3 Thread Overview). But I encourage you to go through the whole document.


    ***

    It should be obvious that for Asynchronous events to be dispatched, there must be a dispatcher that executes. Bluetopia requires at least one thread to function (not including application and/or transport threads). This thread exists to dispatch asynchronous events. In general, Bluetopia implements a second thread, an asynchronous timer thread to handle the timing out of Bluetooth Actions/Events. This timer thread can be removed if the Operating System provided allows some sort of asynchronous timing (i.e. a mechanism to install a timer into the system and be notified when the timer has expired). This thread can be collapsed into the dispatch thread to yield only one thread required for Bluetopia.
    The dispatch thread mentioned above, executes when there is data to be processed from the Bluetooth Device. How this data arrives to the stack can be from any number of ways, including:
     Physical Transport (UART/USB/Synchronous Serial, etc.)
     Direct callback from Base-band controller


    When data arrives it is sent to the dispatch thread. This serves the purpose of allowing the transport driver to continue to function and allows further data to be processed, allowing re-entrant stack calls to be made from dispatched event callbacks. This thread ONLY exists for this purpose, that is, to not hang the transport thread.

    The dispatch thread then processes the data, running in the HCI Layer of the Bluetooth Protocol Stack. The HCI layer then dispatches any necessary events to higher layer protocols/profiles that might be registered via registered callbacks.


    As mentioned previously, a second thread may be present. This thread is responsible for handling various Bluetooth timing functions. In practice, this thread is relegated to the Operating System Abstraction layer so the application programmer has access to a generic asynchronous timing interface.

    When operating in a non-threaded environment, the above architecture is still valid. The only difference is that the dispatcher thread isn’t really a thread at all (nor is the timer thread), rather events are dispatched directly out of the function that is periodically called to process the Bluetopia/Bluetooth state machine.

    ***

    The A3DP Demo source, as I mentioned earlier, is available at: "v1.5 R2\MSP430_Experimentor\Samples"

    Regards,
    Gigi Joseph.

  • Hi Gigi Joseph,

    but you have not answer to the questions with respect to BT-MSPAUDSINK-RD reference board. where is the similar document like this one Section 2.3 MSP-EXP430FR5739 Experimenter Board User's Guide for BT-MSPAUDSINK-RD ? I repeat my questions here:

    Q1. So is true that TI created the BT-MSPAUDSINK-RD demo in non-OS environment ?

    Q2. Am I right that TI has no intention to prepare for customer buying bt-mspaudsink-rd to re-build / create the identical demo ?

    Q3. what is TI intention for creating and selling bt-mspaudsink-rd ?

    Q4. Do you agree that the "v1.5 R2\MSP430_Experimentor\Samples" are not ready for bt-mspaudsink-rd ?

    Q5. Is bt-mspaudsink-rd out of the box demo PTS ready ?

    Q6. How does CC256xB assisted mode HFP & A2DP operation control the audio Sampling Frequency dynamically ?

    Q7. why is the bt-mspaudsink-rd schematic shows an Assisted mode design but the BOM listed a non-assisted mode CC256x part ?

  • Hi,

    Q1. So is true that TI created the BT-MSPAUDSINK-RD demo in non-OS environment ?
    [Answer] – Yes

    Q2. Am I right that TI has no intention to prepare for customer buying bt-mspaudsink-rd to re-build / create the identical demo ?
    [Answer] - Please contact your local sales with the business case and specific need for the profile and we will plan to include in the future software updates based on that.

    Q3. what is TI intention for creating and selling bt-mspaudsink-rd ?
    [Answer] - Displaying the A3DP Feature

    Q4. Do you agree that the "v1.5 R2\MSP430_Experimentor\Samples" are not ready for bt-mspaudsink-rd ?
    [Answer] - No. you can use the A3DPDemo_SNK (and A3DPMultiRoomdemo ) can be used with sink board.

    Q5. Is bt-mspaudsink-rd out of the box demo PTS ready ?
    [Answer] - Well, yes and no.. we found out recently that one of our customer tried to certify our solution and encountered some issues as we didn’t have SBC Sub-Band 4 support (it was compiled out). We added the support. So you will probably need to upgrade the FW array (official release is under testing will be out soon).

    Q6. How does CC256xB assisted mode HFP & A2DP operation control the audio Sampling Frequency dynamically ?
    [Answer] - The configuration should be set by the host. Codec configuration command should also be applied.

    Q7. why is the bt-mspaudsink-rd schematic shows an Assisted mode design but the BOM listed a non-assisted mode CC256x part ?
    [Answer] – I did not get you?
  • Hi,

    Here are further notes to your questions.

    Q2. Am I right that TI has no intention to prepare for customer buying bt-mspaudsink-rd to re-build / create the identical demo ?
    [TI]: The BT-MSPAUDSINK board is available at the TI eStore. It comes pre-flashed with the A3DP_SNK Demo App which is available in the MSP430 TI Bluetooth Stack SDK.

    http://www.ti.com/tool/tibluetoothstack-sdk

    http://processors.wiki.ti.com/index.php/CC256x_MSP430_TI's_Bluetooth_Stack_Basic_AssistedA2DPSinkDemo_APP



    Q7. why is the bt-mspaudsink-rd schematic shows an Assisted mode design but the BOM listed a non-assisted mode CC256x part ?
    [TI]: There is a mistake in the BOM which referenced to the old part. This will be updated. The PN should be CC2564BRVM. Thank you for highlighting this discrepancy.

    ~Miguel

  • Hi Sundeep,

    Q3. what is TI intention for creating and selling bt-mspaudsink-rd ?
    [Answer] - Displaying the A3DP Feature
    [Jai] but It is not good enough for customers to repackage and resell it directly. customers need to modify and re-build the reference firmware and re-brand it to their product and sell it. Is there a part number that customer can purchase for the reference solution Displaying the A3DP Feature ?

    Q4. Do you agree that the "v1.5 R2\MSP430_Experimentor\Samples" are not ready for bt-mspaudsink-rd ?
    [Answer] - No. you can use the A3DPDemo_SNK (and A3DPMultiRoomdemo ) can be used with sink board.
    [Jai] For example (I have not done all code configuration verification) because in CC256XMSPBTBLESW static void ConfigureCodecTAS(void) I2C is configured to Port 2 whereas bt-mspaudsink-rd I2C is configured to port 3.

    Q6. How does CC256xB assisted mode HFP & A2DP operation control the audio Sampling Frequency dynamically ?
    [Answer] - The configuration should be set by the host. Codec configuration command should also be applied.
    [Jai] But how does the host MCU knows the Codec Specific Information Elements for SBC CC256xB negotiated & finalized with the A2DP SRC in Assisted mode ?

    Q8. Why is CC256XMSPBTBLESW not build on top of MSP430Ware ?

    Q9. What will be the new strategy and impact to TI providing total turnkey solution on this news ?
    Stonestreet One now part of Qualcomm Qualcomm acquire CSR

  • Hi,

    [Jai] but It is not good enough for customers to repackage and resell it directly. customers need to modify and re-build the reference firmware and re-brand it to their product and sell it. Is there a part number that customer can purchase for the reference solution Displaying the A3DP Feature ?
    [Answer] – There’s no part number to introduce the full solution. It’s just a reference design.

    [Jai] For example (I have not done all code configuration verification) because in CC256XMSPBTBLESW static void ConfigureCodecTAS(void) I2C is configured to Port 2 whereas bt-mspaudsink-rd I2C is configured to port 3.
    [Answer] – I’m not sure I got your question. have you tried to use the sample application and encountered any issues?

    [Jai] But how does the host MCU knows the Codec Specific Information Elements for SBC CC256xB negotiated & finalized with the A2DP SRC in Assisted mode ?
    [Answer] – The sample applications provides this as an example. Codec configuration command for A3DP sink is the following: VS_A3DP_Sink_Codec_Configuration

    Q8. Why is CC256XMSPBTBLESW not build on top of MSP430Ware ?
    [Answer] – Because it has an MCU already. F5229.

    Q9. What will be the new strategy and impact to TI providing total turnkey solution on this news ?
    Stonestreet One now part of Qualcomm Qualcomm acquire CSR
    [Answer] – TI still provides a full solution of BT chips + Bluetopia stack. This will not change.
  • Hi Sundeep,

    Q4. [Jai] For example (I have not done all code configuration verification) because in CC256XMSPBTBLESW static void ConfigureCodecTAS(void) I2C is configured to Port 2 whereas bt-mspaudsink-rd I2C is configured to port 3.
    [Answer] – I’m not sure I got your question. have you tried to use the sample application and encountered any issues?
    [Jai] I dare not to invest my organization money until I can justify to my management I could work out a new solution base on TI reference design. currently, I see a lot of obstacles ahead of me. but from sample code review and schematic it shows that it is not ready for bt-mspaudsink-rd. Have TI tried to use in for bt-mspaudsink-rd then ? if yes, why is there no step-by-step guide then ?

    Q6. [Jai] But how does the host MCU knows the Codec Specific Information Elements for SBC CC256xB negotiated & finalized with the A2DP SRC in Assisted mode ?
    [Answer] – The sample applications provides this as an example. Codec configuration command for A3DP sink is the following: VS_A3DP_Sink_Codec_Configuration
    [Jai] Sundeep, do you mean CC256xB can inform MCU what is the final sample frequency used (e.g. 44.1, 48 KHz) with A2DP SRC ? because I2C is connected to MCU and it needs to dynamically change / update what is the right sampling frequency to clock out the audio data. In Assisted Mode will this etAUD_Stream_Format_Change_Indication still be triggered (because SBC is at CC256xB) ?

    Q8. Why is CC256XMSPBTBLESW not build on top of MSP430Ware ?
    [Answer] – Because it has an MCU already. F5229.
    [Jai] I am referring to driver layer API method for customer to port and ease of maintain.

  • Hi,

    1. I myself have tried it may times, It works out of the box. See the wiki for all the demos processors.wiki.ti.com/.../CC256x_MSP430_TI's_Bluetooth_Stack_Basic_Demo_APPS and processors.wiki.ti.com/.../CC256x_MSP430_TI's_Bluetooth_Stack_Basic_AssistedA2DPSinkDemo_APP for A3DP sink

    2. There is not enough MIPS and RAM to hold the SBC codec. So A2DP is not possible on MSP430.
    The Audio sink reference board work on A3DP, the commands are sent from the MCU where the stack sit's to the controller (CC256x) configures I2S lines and the SBC decoder parameters, all this commands are explained in the wiki processors.wiki.ti.com/.../CC256x_VS_HCI_Commands, and etAUD_Stream_Format_Change_Indication event is dispatched when an audio stream endpoint format changes (asynchronously), I hope you have already checked the documentation folder as part of the SDK release.

    3. Using the “Hardware Porting Guidelines.pdf” (which is part of the documentation folder of the SDK release) you can port it to any MSP430 with flash greater than 128kb. It is jut configuring the current UART , BT_EN (nShutDown) pin and the clock, I think this is the easy way.
  • hi Sundeep,

    1. So are you saying the step-by-step guide for bt-mspaudsink-rd is here ? there is no mention of bt-mspaudsink-rd at all here and there is not cross linking from bt-mspaudsink-rd also. do i need to buy any additional board to follow the steps and get it successfully working ? why is samples code labelled Port 2 and schematic of bt-mspaudsink-rd labelled port 3 for I2C ? Do you agree there is discrepancy somewhere ?

    2. yes, i know all this. i had done a Bluetooth A2DP SRC + HFP phone back in 2007. you see I2C (connected to MCU not CC256xB) is the lines used to configure the codec sampling rate. I2S are just audio bus to clock in/out audio data. before I2S can work properly, I2C must be used to configure the codec to the right sampling KHz negotiated with A2DP SRC. So sundeep, are you saying in Assisted mode, etAUD_Stream_Format_Change_Indication event is still dispatched to MCU ?

    3. Why is CC256XMSPBTBLESW not implemented and complies to MSP430Ware driver layer API ?

    Q10. What is 3 in A3DP means to TI ? In Bluetooth specification there is nothing about A3DP. A2DP => Advanced Audio Distribution Profile.

  • Hi,

    Regarding your first question, the link that you provided is the sample app user guide. We use the same sample app across different platforms and thus there are no hardware specifics. For the board user guide, please refer to the following link: http://processors.wiki.ti.com/index.php/CC256x_Audio_Sink_User_Guide 

    For the second question, the etAUD_Stream_Format_Change is an event that comes in a callback in the Bluetooth stack that resides on the MSP430.

    With regards to the MSP430Ware, the first CC256x MSP430 SDK was released before the MSP430Ware was available. Therefore, it is not based on it. However, the MSP430Ware libs could be used for your application if needed be. There are customers who have used them along with our SDK.

    A3DP stands for Assisted A2DP.

    ~Miguel

     

  • Hi Miguel / sundeep,

    2. There is not enough MIPS and RAM to hold the SBC codec. So A2DP is not possible on MSP430.
    [Jai] what is the current memory footprint ? How much processing power used in term of percentage ?

    Q11. For A3DP, how does customer connect the volume, previous and forward buttons at sink side ?

  • Hi Jai,

              See my comments inline below.

    2. There is not enough MIPS and RAM to hold the SBC codec. So A2DP is not possible on MSP430.
    [Jai] what is the current memory footprint ? How much processing power used in term of percentage ?

    [MS]: The memory footprint and MIPs depends on the MCU. For instance, the TI Bluetooth Stack with A2DP/AVRCP in a TivaC device (Cortex M4) takes around 150KB Flash and 18KB RAM. The MIPS depends on the frequency that you use on the TivaC, but it is around 50% load if you run it at 80 MHz.

    Q11. For A3DP, how does customer connect the volume, previous and forward buttons at sink side ?

    [MS]: It is done using AVPR APIs.

     

    ~Miguel

     

  • Hi Miguel,

    This thread is about BT-MSPAUDSINK-RD.

    2. There is not enough MIPS and RAM to hold the SBC codec. So A2DP is not possible on MSP430.
    [Jai] what is the current memory footprint ? How much processing power used in term of percentage on BT-MSPAUDSINK-RD ?

    Q11. For A3DP, how does customer connect the volume, previous and forward buttons at sink side ? connect it to MSP430 and use AVRCP APIs ?

  • Hi,

    See my comments embedded inline below.

    2. There is not enough MIPS and RAM to hold the SBC codec. So A2DP is not possible on MSP430.
    [Jai] what is the current memory footprint ? How much processing power used in term of percentage on BT-MSPAUDSINK-RD ?

    [MS]: I thought you were talking about A2DP. For A3DP, the memory consumption in the MSP430 is ~120KB Flash / 6KB RAM with IAR and ~135KB Flash / 6KB RAM with CCS. The MIPs requirement are negligible given that only control messages aree needed in theA3DP architecture.

    Q11. For A3DP, how does customer connect the volume, previous and forward buttons at sink side ? connect it to MSP430 and use AVRCP APIs ?

    [MS]: Yes. Please have a second look at the schematics and sample applications provided.

    ~Miguel

  • Hi Miguel,

    Q11. For A3DP, how does customer connect the volume, previous and forward buttons at sink side ? connect it to MSP430 and use AVRCP APIs ?
    [MS]: Yes. Please have a second look at the schematics and sample applications provided.
    [Jai] sincerely my apologies, I searched for "button" instead.

    Q12. with reference to this image, May i know is there any document mentioning of L-AVDTP and L-L2CAP roles in A3DP ? from the previous reply
    [MS]For the second question, the etAUD_Stream_Format_Change is an event that comes in a callback in the Bluetooth stack that resides on the MSP430.
    [Jai] It seem to me that all events in A3DP will still reach the MCU (MSP430) running the stack similar to A2DP sink case, am i right ?

    Q13. How to achieve deep sleep mode in A3DP ? How to put CC256xB into deep sleep mode before making the MCU into low/standby mode to save power ? How does MCU (e.g. MSP430) knows A2DP SRC resumed communication and wake up the MCU to resume connection with CC256xB ?

  • Hi,

    See my comments embedded inline below:

    Q12. with reference to this image, May i know is there any document mentioning of L-AVDTP and L-L2CAP roles in A3DP ? from the previous reply
    [MS]For the second question, the etAUD_Stream_Format_Change is an event that comes in a callback in the Bluetooth stack that resides on the MSP430.
    It seem to me that all events in A3DP will still reach the MCU (MSP430) running the stack similar to A2DP sink case, am i right ?

    [MS]: Yes, that it correct.

    Q13. How to achieve deep sleep mode in A3DP ? How to put CC256xB into deep sleep mode before making the MCU into low/standby mode to save power ? How does MCU (e.g. MSP430) knows A2DP SRC resumed communication and wake up the MCU to resume connection with CC256xB ?

    [MS]: There is a mechanism called HCILL (http://processors.wiki.ti.com/index.php/CC256x_eHCILL_Low_Power_Protocol) that handles the low power mode of the CC2564. It is enabled once during the BT stack initialization (search for hcill in the code). After that, the user knows when the CC256x is going to sleep or wakes up through a callback (e.g. Sleep_Indication_Callback) that is defined when the hcill is enabled.

    ~Miguel

  • Hi Miguel,

    Q13. [MS]: There is a mechanism called HCILL...
    [Jai] With reference to the following code and the schematic, May I know what is used to trigger MSP430 to cancel the LPM3 low-power mode in BT-MSPAUDSINK-RD ? I believe __TI_A3DP_SNK_BOARD__ is not defined. if not, how do I achieve the following. For example, A3DP sink and an A2DP SRC are paired and connected but no activity after that. Then CC256xB enters sleep mode and trigger to stack sleep callback function, MSP430 then also enters LPM3. Now, A2DP SRC wanted to play a music to A3DP Sink. Is CC256xB able to generate an interrupt signal to MSP430 to cancel LPM3 ?
    #ifndef __TI_A3DP_SNK_BOARD__
    /* Enter MSP430 LPM3 with Timer Interrupts disabled (we will */
    /* require an interrupt to wake us up from this state). */
    HAL_LowPowerMode((unsigned char)TRUE);
    #else

    Q14. Is it possible to add SPPLE profile (i.e. A3DP + Assisted HFP + SPPLE) and iAP (MFi) handling into a single MSP430 ?

  • Hi,

    See comments embedded inline below.

    Q13. [MS]: There is a mechanism called HCILL...
    [Jai] With reference to the following code and the schematic, May I know what is used to trigger MSP430 to cancel the LPM3 low-power mode in BT-MSPAUDSINK-RD ? I believe __TI_A3DP_SNK_BOARD__ is not defined. if not, how do I achieve the following. For example, A3DP sink and an A2DP SRC are paired and connected but no activity after that. Then CC256xB enters sleep mode and trigger to stack sleep callback function, MSP430 then also enters LPM3. Now, A2DP SRC wanted to play a music to A3DP Sink. Is CC256xB able to generate an interrupt signal to MSP430 to cancel LPM3 ?
    #ifndef __TI_A3DP_SNK_BOARD__
    /* Enter MSP430 LPM3 with Timer Interrupts disabled (we will */
    /* require an interrupt to wake us up from this state). */
    HAL_LowPowerMode((unsigned char)TRUE);
    #else

    [MS]: The sleep_callback is triggerred when the CC2564 is going to sleep as well as when it wakes up. You get the status through a variable that is passed in the callback funtion.

     /* The following is the HCI Sleep Callback.  This is registered with */
       /* the stack to note when the Host processor may enter into a sleep  */
       /* mode.                                                             */
    static void BTPSAPI HCI_Sleep_Callback(Boolean_t SleepAllowed, unsigned long CallbackParameter)
    {
       /* Simply store the state internally.                                */
       SleepEnabled = SleepAllowed;
    }

    Q14. Is it possible to add SPPLE profile (i.e. A3DP + Assisted HFP + SPPLE) and iAP (MFi) handling into a single MSP430 ?

    [MS]: A3DP, BLE, assisted HFP do not work simultaneously on the CC2564 device. You have to use only one at a time. For iAP, yes it can run concurrently with any profile. e.g. A3DP + iAP can run in a single MSP430 with 256KB Flash.

    ~Miguel

  • Hi Miguel,

    Q13. [MS]: There is a mechanism called HCILL...
    [MS]: The sleep_callback is triggered when the CC2564 is going to sleep as well as when it wakes up.....
    [Jai] But how can code being executed if MSP430 is still in LPM3 mode ? So, I repeat my question, Is CC256xB able to generate an interrupt signal to MSP430 (when CC256xB is under sleep mode) to cancel LPM3 ? I mean does CC256xB has such capability ? (Page 62 of 70 the firmware can be configured to send a break to the host before sending data. (This is normally used to wake the host from a Deep-Sleep state.))

    Q14. Is it possible to add SPPLE profile (i.e. A3DP + Assisted HFP + SPPLE) and iAP (MFi) handling into a single MSP430 ?
    [Jai] So are you saying that user cannot run GATT and traditional profiles simultaneously on CC256xB ?
    I change my question, Is it possible to add SPP profile (i.e. A3DP + Assisted HFP + SPP) and iAP (MFi) handling into a single MSP430 flash / memory ?
    does MSP430 has enough MIPS to run A3DP + SPP + iAP or AHFP + SPP + iAP simultaneously ?