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.

why cannot activate from standby mode with 2640

Hello

I have a question. Help me, please.

I modify a project from KeyFob. But now, there is a strange problem.

My project can run finely on TI demo board. But it is very terrible to run on my board. (I change the necessary macro to match the two chips.). The connection will disconnect  about 30 seconds after connecting, every times. 

TI demo board: 7x7

My board:  5x5 

I try another test that remove the macro POWER_SAVING from my project, it is OK. No disconnecting.

I think the RF cannot activate 2640 if receiving BLE frame. Why?

Please.

  • Hello Magic,

    Is this your own PCB design?

    What kind of 32 kHz crystal  have you used?

    How much load capacitance have you added?

    Try to increase your Sleep Clock Accuracy:

    HCI_EXT_SetSCACmd(LL_SCA_500_PPM);

  • Hello,

    In addition, please describe in detail what SW changes you made to switch to the 5x5 package config.
    Note that it's imperative that the SW settings match the HW RF Front End & Bias configuration.

    Best wishes
  • Hi JXS,

    I only change some codes.

    1 change macro define from xxxx_7ID to xxxx_5XD

    2 change the SPI DIO define

    3 set all DIO that I no used to PIN_UNASSIGNED

    BTW, I think the RF configuration is set by the macro xxxx_7ID or xxxx_5XD. Is it right?

  • Hello Magic,
    Did you try out my suggestion with regards to the Sleep Clock Accuracy?
  • Hi Eirik,
    I'm also interesting in this question. Why the sleep clock accuracy is so important? The clock of 32.768K crystal is a way to active the CPU, even it's a little biased, the RF signals should active the CPU. But as a matter of fact, the RF signals can't active from standby mode. Why?
    The other question is how to rectify the 32.768K crystal? And how to set HCI_EXT_SetSCACmd(LL_SCA_500_PPM) correctly (It's default blocked) ?
  • Hello user,

    The 32 kHz clock is the beating heart for the TI-RTOS power manager and It controls all the timing with regards to sleep and wakeup. If the PPM (Accuracy) of the 32 kHz oscillator is to large, the device might not wake up in time to receive the next scheduled incoming packet. In that case no RF signal will wake up the device. An external RF signal can never wake the device from standby.

    You can set it in SimpleBLEPeripheral_init(). It is even placed there in a commented block. Simply un-comment and increase the accuracy. You can test for example 500 which is the maximum allowed by the specification.

    // Set device's Sleep Clock Accuracy
    //HCI_EXT_SetSCACmd(40);

  • Eirik,

    Appreciate for your clear answer.

    And is there accumulative error on the clock? My questions is if the tolerance of 32K clock is acceptable, but for example, the 1st time, it's 0.001s time difference, the 2nd time, its 0.001s*2=0.0002s...... is there accumulative error?

    And how communication clock synchronization is doing?

    Thank you very much!

    Ellen Fan

  • Hello user,
    The link layer will automatically adjust the timer (back-off) to make sure that RX operation will start in time. This will be adjusted for at the start of the connection and for every subsequent connection event. The only time you will have accumulative error is in the case where you have configured a slave latency of higher than 1. But the link layer will also adjust for this. The penalty is higher current consumption as the Receiver might be active for much longer than is needed when using a more accurate clock source.