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.

CC2540 Frequency Hopping

Other Parts Discussed in Thread: CC2540

Hello,


I'm a little confused about how the frequency hopping procedure. I have a periheral application and a iPhone as central device. If a connection is established, who decides which channels are used to exchange data? And if a channel is disturbed which device initiate the hopping to another frequency?

  • go to this page: http://e2e.ti.com/support/low_power_rf/m/videos__files/default.aspx

    download the file BLE_CC2540_DeepDive_Training_2011.pdf

    and look the <BLE link layer > part .

    briefly , master send connection request with a channel number and a random number of channel hop step. slave agree with this and knows the next connect channel to be used. so the master defines the data channel seqence.

     a slave may request update to some connection parameters, but in the document 

    file://localhost/C:/Texas%20Instruments/BLE-CC254x-1.4.0/Documents/GAPPeripheralhtml/index.html

    bStatus_t GAPRole_SendUpdateParam (uint16 minConnInterval, uint16 maxConnInterval, uint16 latency, uint16 connTimeout, uint8 handleFailure)
    Update the parameters of an existing connection.

    so slave can not change the channel sequence to be used. 

    a slave can be connected by only one master , while a master could connect to several slaves, so it's reasonable for a master to decide the channel allocation to avoid conflict.

    but the 2 parameters: first data Channel number and Hop Increment seems to be hinden from API document, and the detail is not clear. 

    it seems ti should make the information about how peripherals and resources preallocated by the BLE stack more open and clear in a specific documen.

  • Thanks for your answer. Now the procedure is a bit clearer. Too bad that there are no exact descriptions.

    I would be especially interested to know how the master tells the Slave which channels are to be used in case of cahnnel interference. In this case the master has to update the channel hop increment paramter? Or if just one channel is disturbed only the data rate decreases and the channel hop increment paramter is not changed?