I am working on a device having DA14583. DA14583 gets power when one GPIO based button is pressed. On Bootup DA14583 needs to measure the press time of the same GPIO which was used to start the DA14583. To make the time measurement accurate, I want the application faster.
Right now, first bootloader starts, then it loads the application, resets the DA14583 and then the application execution starts. This takes around 440 milliseconds of time to boot the application.
Is there anyway to measure the accurate time for which the GPIO was pressed by booting application faster?
Device:
Hi idarshan,
Could you please try to describe a little bit further what you are trying to accomplish? What do you mean with the DA14583 gets power when the button is pressed? From where the DA1583 boots up? From the internal SPI Flash? Did I understand correctly? Or do you mean that you have programmed the DA14583, and the device wakes up since you press the button? Apologies, but I need some clarifications on you issue and what you are trying to implement.
Thanks, PM_Dialog
I am creating a device with DA14583. DA14583 gets power once a switch on the hardware is pressed. This switch is also connected with one of the GPIO of DA14583. So on the press of the switch (or GPIO switch) DA14583 boots up. I want to measure the press time of the switch (or GPIO switch) and want to take immediate action. Now boot time of DA14583 is around 440 ms. So the user needs to hold the switch for the half-a-second minimum so that DA14583 boots up and then it can measure the press time of the switch. Is there any way to reduce this boot time of DA14583 within 10 ms so that we can measure the press time of the switch quickly and perform certain action?
Hi idarshan,
Could you please let me know from where the DA14583 boots? Does it boot from the internal SPI Flash of DA14583?
Thanks, PM_Dialog
Yes, DA14583 is booting from internal SPI flash memory. Where bootloader and application both are flashed.
Hi,
Any updates on this?
Regards,
Karan
Hi idarshan and karanshah28,
My suggestion is to have a look at the UM-B-012 document in order to understand how the DA14583 boots. Please, follow the link below to download it:
https://support.dialog-semiconductor.com/resource/um-b-012-da14580581583-creation-secondary-boot-loader
According to the paragraph 5 How the DA14583 boots, you should not burn any bootloader into the internal SPI flash of the DA14583. Regarding the time when the DA14583 boots from the SPI Flash, it takes around 200msec. Regarding how to calculate the time that the switch is pressed, you are not able to implement something like that before the booting procedure. Since the DA14583 has not boot up yet, you cannot use the processor or any timer in order to calculate the time that the switch is pressed. After the booting procedure, you can do this into your application code.
Thanks, PM_Dialog