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.

RTOS/CC2640: The renewal of the cc2640MTU

Part Number: CC2640

Tool/software: TI-RTOS

Excuse me for burn-in master-slave cc2640 integrated program as long as connected to mobile phone will automatically update the MTU in a row, without the need to launch on the app update instructions to cc2640 MTU, but for burn-in simple_peripheral program initiated cc2640 need mobile phone app update instructions to cc2640 will update MTU, where is the difference between the two programs, simple_peripheral program also can be done with master-slave one launch update instructions for MTU, don't need the app can also update the MTU?

  • Hi,

    I'm not really able understand or follow your question. When you say you are working with master-slave cc2640, are you saying that you're working with multi-role?

    Please clarify your questions.
  • Hello,
    Sorry, my expression is not clear.I repeat it again.When my Android app is connected to the multi-role cc2640,the cc2640 will automatically update the MTU and the app does not need to send the update MTU command to the cc2640.However, when my Android app is connected to the simple_peripheral cc2640, if the cc2640 want to update the MTU, the app needs to send an update MTU command.Excuse me, What is the difference between the two programs? Can simple_peripheral program do this?
  • Hi,

    To update your MTU you can use the GATT_updateMTU function.

    dev.ti.com/.../group___a_t_t___g_a_t_t.html
  • Hi,
    when I add the GATT_UpdateMTU(),it hanppened an error:Error[Li005]: no definition for "GATT_UpdateMTU" [referenced from C:\ti\simplelink\ble_sdk_2_02_01_18\examples\cc2650iot\
  • Hi,

    Sorry, i thought you were on the CC2640R2F. Its possible the API is different from CC2640 to CC2640R2F. You can look in the API documentation in the docs folder of the ble_sdk_2_01_18 folder to find something similar.

    It seems it's called GATT_ExchangeMTU in CC2640.

    Please read through 5.5.2.1 Configuring for Larger MTU Values of the following.
    www.ti.com/.../swru393e.pdf
  • Hi,
    You got it wrong, I use the android phone as the peripheral rather than cc2640!Please you look my question again!
  • Hi Shupeng,

    In this case, you're the client (central), servers are peripherals. Therefore you would still use GATT_ExchangeMTU to update the MTU. This is also why you wouldn't see the peripheral update the MTU size because as Section 5.5.2.1 Configuring for Larger MTU values in the Doc i linked above states "During this procedure, the client (that is, Central) informs the server of its maximum supported receive MTU size and the server (that is, Peripheral) responds with its maximum supported receive MTU size. Only the client can initiate this procedure."
  • Hi,
    Sorry, I typed wrongly, I use the android phone as the client(central) rather than cc2640!(My question:.When my Android app(As the client) is connected to the multi-role cc2640(as the server),the cc2640 will automatically update the MTU and the app program does not need to send the update MTU command(mBluetoothGatt.requestMtu(mtu)) to the cc2640.However, when my Android app(As the client) is connected to the simple_peripheral cc2640(As the server), if the cc2640 want to update the MTU, the app program needs to send an update MTU command (mBluetoothGatt.requestMtu(mtu)).Excuse me, What is the difference between the two programs? Can simple_peripheral program do this?)
  • Hi,

    Please see this discussion.
    e2e.ti.com/.../736746