I'm developing an application that started as the DSPS application (v3.150.2). We have extended and tweaked it in several ways.
At this point, we're looking to optimize power consumption for our product, but I'm unsure on how to proceed. NOTE: Power consumption is an issue for our Peripheral primarily. We do have a Central project also running on the DA14580, but it does not run on a battery, so it can be a power hog.
In arch.h, there is MAX_SLEEP_DURATION_PERIODIC_WAKEUP, which controls the sleep time. In app.h, there are APP_ADV_INT_MIN and APP_ADV_INT_MAX.
Of course, there are connection parameters that are set when a connection is made, parameters that are negotiated between Central and Peripheral. Example connection parameters: APP_CON_INTV_MIN, APP_CON_INTV_MAX, APP_CON_LATENCY, APP_CON_SUPERV_TO, and APP_CON_TIMEOUT (all in app.h).
I've been tweaking especially MAX_SLEEP_DURATION_PERIODIC_WAKEUP and APP_ADV_INT_MIN/APP_ADV_INT_MAX, but I am not always getting results that I expect to get. Often, the power consumption is higher that I would expect for a peripheral that is advertising LESS frequently (i.e., APP_ADV_INT_* having a larger value), or I find that my peripheral isn't even advertising at all, even though it's consuming power.
有一个文档或指导,谈何w to optimize an application for power?
Thanks.
I have the same problem, too. Is there a document or a guide that talks about how to optimize an application for power?
I think, is it neccessary to set the task to idle state after the peripheral equipment work is completed. And when new data is need to capture, enable the task. The app_task is neccessary to be set to idle state?
Hi joe,
Regarding the MAX_SLEEP_DURATION_PERIODIC_WAKEUP doesn't control the sleep time exactly, and since your are not using the GTL interface and your design is fully hosted ( since is based on the DSPS) you dont have to change this value, also its not advisable to change the value of this definition since its a part of the SDK even if you were operating over GTL. The 580 will stay in sleep mode as long as there is no event to execute (advertising or connection event). There is no document that lists the techniques that one can apply in order to minimize the power consumption, but the general rule is that with longer intervals since you dont use the radio as often you can save power. That means that with larger advertising and connection intervals you should see your power consumption reducing.
Thanks MT_dialog