This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

ANTcontinuous scan mode will impact BLE advertising

I encountered an issue, please kindly refer to the attachment for the detail.

"''
The problem is:
a> Run demo on PCA10056 (BLE adv & ANT continuous scan).
b> ANT Dongle B broadcasts messages.
c> ANT Dongle A scans and sends acknowledged msg to B.
d> BLE advertising interval changes from 187ms to 1933ms automatically. (monitored by 'nrf Connect' App)
e> To recover the BLE advertising, the only way is resetting ANT stack by calling sd_ant_stack_reset().
f> ANT background scan mode wouldn't cause this problem.

The probability of this problem is 100%.
"''

So I guess maybe there is something wrong in the ANT & BLE co-existed Softdevice, such as S340 and S332.
Can someone help me? Thank you in advance.

 ANTcontinuous scan mode will impact BLE advertising.rar

  • Thanks, Kenneth.

    Follow the link you provided, I get a clue related to sd_ant_coex_config_set().

    Since I added the following simple code to my project, BLE advertising has been working well with ANT continuous scanning :

    err_code = sd_ant_coex_config_get(ANT_SCAN_CHANNEL_NUMBER, &ant_coex_config, NULL);
    APP_ERROR_CHECK(err_code);
    ant_coex_config.pucBuffer[0] = 0; //disable all configuration
    err_code = sd_ant_coex_config_set(ANT_SCAN_CHANNEL_NUMBER, &ant_coex_config, NULL);
    APP_ERROR_CHECK(err_code);

    But exactly, I cannot understand those parameters clearly related to ANT_BUFFER_PTR in sd_ant_coex_config_set():

    /** @brief This function sets ANT radio coexistence behaviour. Supported only if ANT is sharing radio HW concurrently with another wireless protocol.
    * Configuration structure is as follows:
    * Byte0 = Configuration enable bitfield
    * bit0 - enable/disable tx/rx channel keep alive config (Byte4/5 & Byte6/7)
    * bit1 - enable/disable tx/rx channel fixed interval priority config (Byte1)
    * bit2 - enable/disable transfer keep alive config (Byte2)
    * bit3 - enable/disable search channel fixed interval priority config (Byte3)
    * else - reserved
    * Byte1 = tx/rx channel fixed interval priority configuration
    * Byte2 = transfer keep alive configuration
    * Byte3 = search channel fixed interval priority configuration
    * Byte4(LSB)/Byte5(MSB) = tx channel keep alive configuration
    * Byte6(LSB)/Byte7(MSB) = rx channel keep alive configuration
    * Byte8 = ANT counts/16 spent in high priority mode during search scan.
    * Byte9 = ANT counts/16 spent in low priority mode during search scan.
    *
    * Advanced configuration structure is as follows:
    * Byte0 = Configuration enable bitfield
    * bit0 - enable/disable priority override config (Byte1)
    * bit1-7 - reserved
    * Byte1 = ANT priority override. 0 = low, 1 = normal(default), 2 = high, 3 = critical
    * Byte2 = Reserved
    * Byte3 = Reserved
    * Byte4 = Reserved
    * Byte5 = Reserved
    * Byte6 = Reserved
    * Byte7 = Reserved
    */

    So I'll appreciate very much if you can give more guide.

    Thanks & Best Regards.

  • I don't have any specific details on this feature, I saw the administrator on thisisant.com recommended to do this: https://www.thisisant.com/forum/viewthread/7332/

    "If you still run into issues try doubling “search channel fixed interval priority config” to reduce the impact of the ANT search."

    The ANT implementation in the softdevices are developed and maintained by Dynastream (thisisant.com).

  • Million thanks all the same. I will seek more information in the ANT Forum.Grinning

  • Sounds good. If you find more descriptive information about these configuration bytes, don't hesitate to wrap it up here.

    Thanks,
    Kenneth

Related