Ultra low power application 14585

⚠️
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.
4 posts / 0 new
Last post
DLesta
Offline
Last seen: 1 year 2 months ago
Joined: 2020-06-30 09:07
Ultra low power application 14585

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.

Device: 
PM_Dialog
Offline
Last seen: 6 months 3 weeks ago
Staff
Joined: 2018-02-08 11:03
Hi DLesta,

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

DLesta
Offline
Last seen: 1 year 2 months ago
Joined: 2020-06-30 09:07
Hello,

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.

This "certain time" must be of the order of hours.

Thanks for your help!

PM_Dialog
Offline
Last seen: 6 months 3 weeks ago
Staff
Joined: 2018-02-08 11:03
Hi DLesta,

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