Skip to main content

Ultra low power application 14585

7 months ago

Ultra low power application 14585

Posted byDLesta0 points 3 replies
0 upvotes

Hello all,

I am developing a project at the University of Santiago de Compostela. In our application, we are aiming for an ultra-low power consumption application with the DA14585 device. We intend to power the system with a 1 mm² solar cell storing energy in a supercapacitor. Thus, we need to reduce power consumption as much as possible.

The operation of the system would be to be storing energy for an hour or so while the system is in its lowest power consumption mode, i.e., everything in sleep mode, then it will wake up, measure one value with the on-chip ADC and allow an external system to access it through the BLE connection. Finally, right after the value was read, the system must go immediately to sleep mode again to save as much energy as possible.

I went through all the examples trying to understand and testing all of them. I was able to configure the system to read an analog voltage through one pin and access it with a smartphone or a PC with a Bluetooth connection. The problem that I have been facing the last two weeks is how to operate the sleep modes. I am not able to program the chip for a synchronous sleep mode and to go for sleep when desired (right after the phone or whatever disconnects).

I would really appreciate some help with that :)

The hardware we have is the PRO development kit for the DA14585 with a bunch of daughter boards for different tests.

7 months ago

PM_Dialog

Hi DLesta,

You could take a look at the ble_app_sleepmode example of the SDK. The project can be found under 6.0.14.1114\projects\target_apps\ble_examples\ble_app_sleepmode SDK path. The device stopes advertising after a predefined amount of time and then it goes into permanent sleep mode. The system can also sleep between advertising or connection intervals. Keep in mind that when in sleep mode, all the peripheral domains are shut down, so you cannot use any of the peripheral blocks, such as ADC.

Thanks, PM_Dialog

7 months ago

DLesta 0 points

Hello,

Thanks for your fast response.

I had a look at that example and I am aware that when in sleep peripherals are not working.
My question is: in this example, what should I modify in order to make the system to wake up after a certain time? Or in a different way, how can a synchronous sleep mode be programmed? I have seen in different documents that this is a possibility, but I am not able to find the specific instructions that must be executed to do so, or where to place them.

这种“特定时间”必须订单的of hours.

Thanks for your help!

7 months ago

PM_Dialog

Hi DLesta,

You could use the app_easy_timer() in order to wakeup periodically, as this API is used the BLE timer, so it can be used in sleep mode.

Let's assume that you want to wake up and start advertising . This can be achieved by setting the timer as shown here:

app_easy_timer(100,cb_my_timeout);

The first argument specifies the timer to time out after 100 * 10 ms = 1000ms = 1s. At this time the callback cb_my_timerout() get's called.

The Mmax timer delay 41943sec.

Thanks, PM_Dialog