Works without BLE active

⚠️
Hi there.. thanks for coming to the forums. Exciting news! we’re now in the process of moving to our new forum platform that will offer better functionality and is contained within the main Dialog website. All posts and accounts have been migrated. We’re now accepting traffic on the new forum only - please POST any new threads at https://www.dialog-semiconductor.com/support . We’ll be fixing bugs / optimising the searching and tagging over the coming days.
2 posts / 0 new
Last post
adam.stroz
Offline
Last seen: 4 months 1 week ago
Joined: 2020-05-22 07:54
Works without BLE active

Hello,

I would like to know if it is possible for da14531 to work without BLE enabled?

My scenario:
Step 1: The device starts up without any advertising (BLE off), performs some operations and goes to sleep.

Step 2: When it is woken up at certain times by the RTC (to do some operations), it turns on but without BLE on.

Step 3: And finally when I press the button, the device should turn on with advertising (BLE on).

Is possible to work without any BLE activity? I tryed to change this part of code:

static const struct default_app_operations user_default_app_operations = {
    .default_operation_adv = NULL,
};

but the device hangs on when turned on. The function that causes hardfault to occur is:

else if (sleep_mode == mode_idle)
            {
                if (((! BLE_APP_PRESENT) && check_gtl_state ()) || (BLE_APP_PRESENT))
                {
                    // wait for an interrupt to resume operation
                    __WFI ();
                }
            }

is part of arch_main file.

I well understand that it needs some interrupts (for eg. From easy timer) to correct operation of main loop?

 

Device: 
PM_Dialog
Offline
Last seen: 9 months 1 day ago
Staff
Joined: 2018-02-08 11:03
Hi adam.stroz,

Hi adam.stroz,

Thanks for your question. The most probable reason is that the WDOG is not reload it when the system is in active mode without a BLE activity. So, the WDOG expires and a hardfault occurs.

So, in the step 1, while performing some operations (in active mode without BLE), you should freeze or reload the WDOG and when they are completed, start it again and put the system into sleep mode. Please check the arch_wdg.h file.

Thanks, PM_Dialog