Download presentation
Presentation is loading. Please wait.
1
Verifying Bandwidth on CC2650 BLE
Min-ju Kang RTLAB
2
Contents Introduction GATT_write_ API Test & Result Conclusion
Further Work
3
Introduction Goal : Send Voice data over BLE on CC2650
Verify Bandwidth 1Mbps Peripheral Server Central Client BLE
4
GATT_write_ API GATT_writeCharValue GATT_writeNoRsp
GATT_writeLongCharValue
5
Sequence GATT_writeCharValue GATT_writeLongCharValue GATT_writeNoRsp
6
Code – GATT_writeCharValue
MAX : 19Byte //Use characteristic 6 UUID attWriteReq_t req; req.pValue = GATT_bm_alloc(connHandle, ATT_WRITE_REQ, SIMPLEPROFILE_CHAR6_LEN, NULL); if(req.pValue != NULL) { req.handle = charHd; req.len = SIMPLEPROFILE_CHAR6_LEN; memcpy(req.pValue, pSendDataChar6, SIMPLEPROFILE_CHAR6_LEN); req.pValue[0] = sendCount; //0~53 req.sig = 0; req.cmd = 0; Status = GATT_WriteCharValue(connHandle, &req, selfEntity); } Client
7
Code – GATT_writeNoRsp
MAX : 19Byte //Use characteristic 6 UUID attWriteReq_t req; req.pValue = GATT_bm_alloc(connHandle, ATT_WRITE_REQ, SIMPLEPROFILE_CHAR6_LEN, NULL); if(req.pValue != NULL) { req.handle = charHd; req.len = SIMPLEPROFILE_CHAR6_LEN; memcpy(req.pValue, pSendDataChar6, SIMPLEPROFILE_CHAR6_LEN); req.pValue[0] = sendCount; //0~53 req.sig = 0; req.cmd = 1; Status = GATT_WriteNoRsp(connHandle, &req); } Client
8
Code – GATT_writeLongCharValue
MAX : 90Byte //Use characteristic 7 UUID attPrepareWriteReq_t preReq; preReq.pValue = GATT_bm_alloc(connHandle, ATT_PREPARE_WRITE_REQ, SIMPLEPROFILE_CHAR7MAX_LEN, NULL); if(preReq.pValue != NULL) { preReq.handle = charHd; preReq.len = SIMPLEPROFILE_CHAR7MAX_LEN; memcpy(preReq.pValue, pPreSendDataChar7, SIMPLEPROFILE_CHAR7MAX_LEN); preReq.pValue[0] = sendCount; //1~11 preReq.offset = 0; longStatus = GATT_WriteLongCharValue(connHandle, &preReq, selfEntity); } Client
9
Code - simpleProfile_WriteAttrCB
case SIMPLEPROFILE_CHAR7_UUID: if ( status == SUCCESS ) { uint8 *pCurValue = (uint8 *)pAttr->pValue; memcpy( pCurValue, pValue, SIMPLEPROFILE_UNIT_LEN ); memcpy( simpleProfileTotal+totalLen, pCurValue, SIMPLEPROFILE_UNIT_LEN); if(pAttr->pValue == simpleProfileChar7) notifyApp = SIMPLEPROFILE_CHAR7; totalLen += SIMPLEPROFILE_UNIT_LEN; if(pAttr->pValue[0] == 12) compareLen = SIMPLEPROFILE_CHAR7LAST_LEN; if(totalLen >= compareLen) totalLen = 0; } break; MAX : 18Byte // Simple Char or Without Rsp case SIMPLEPROFILE_CHAR6_UUID: //Write the value if ( status == SUCCESS ) { uint8 *pCurValue = (uint8 *)pAttr->pValue; memcpy( pCurValue, pValue, SIMPLEPROFILE_CHAR6_LEN ); if(pAttr->pValue == simpleProfileChar6) notifyApp = SIMPLEPROFILE_CHAR6; } break; MAX : 19Byte Server
10
Test & Result
11
Test & Result Test Stationary Condition Total data : 1026 byte
Connection interval : 8.75ms GATT_ MAX Data Send Count writeCharValue 19 Byte 54 writeNoRsp writeLongCharValue 90 Byte (Unit : 18 Byte) (36Byte)
12
Test & Result – GATT_writeCharValue
Total Time : seconds Bandwidth : 13 Kbps (bits/sec)
13
Test & Result – GATT_writeNoRsp
Total Time : seconds Bandwidth : Kbps
14
Test & Result – GATT_writeLongCharValue
90 Byte * 11번 + 36 Byte = 1026 Byte
15
Test & Result – GATT_writeLongCharValue
90 Byte * 11번 + 36 Byte = 1026 Byte Total Time : seconds Bandwidth : 8.21Kbps
16
Conclusion
17
Automatically divide data
Conclusion Total Data : 1KByte GATT_ Unit Data Time [sec] Bandwidth [Kbps] Pros and Cons Usage writeCharValue 19 Byte 13 Basic Critical Data writeNoRsp 31.38 Without response Voice Data writeLongCharValue 90 Byte 8.21 Automatically divide data Execute Write Req & Rsp
18
Further Work Find How to use Voice data file.
Define Protocol and Data. Test for sending Voice data.
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.