Re. "DA14580_DialogBeacon_3.40.6" reference designs

12 posts / 0 new
Last post
yuhua64
Offline
Last seen:4 years 10 months ago
Joined:2015-05-04 08:25
Re. "DA14580_DialogBeacon_3.40.6" reference designs

Hi,

We do some modifications based on "DA14580_DialogBeacon_3.40.6" reference designs, For checking the power consumption, first, we stop the advertising, it is work, but, I can read a periodic current waveform at about 10 seconds that means device ever active by itself. All of my created timers, we have not started any timer count for 10 seconds except a 60 seconds one. However, we need to avoid this status happened, how can I stop it, or make it longer?

Device:
MT_dialog
Offline
Last seen:1 month 3 weeks ago
Staff
Joined:2015-06-08 11:34
Hi yuhua64,

Hi yuhua64,

You mean that you 've stop the advertising events but the device wakes up and does something for every 10 secs and the only functionality you ve got is a timer that hits after 60 seconds ? If the BLE doent do anything for a long period of time it wakes up by itself in 10 secs in order to trim the clocks and falls asleep again. Its something that the system requires and i dont think that it can be disabled.

Thanks MT_dialog

yuhua64
Offline
Last seen:4 years 10 months ago
Joined:2015-05-04 08:25
Thanks for your reply.

Thanks for your reply.

Yes, you got my point.
In the meanwhile, I start a timer and set value 60 seconds after stop_adv_func(), it expired and took 333 seconds. Suppose device kept slower operation frequency in sleep mode. It is OK. we can accept it.
Regarding for your answer " If the BLE doesnt do anything for a long period of time it wakes up by itself in 10 secs in order to trim the clocks and falls asleep again. Its something that the system requires" , I could understand, Could it be set longer if need?

Joacimwe
Offline
Last seen:1 year 5 months ago
Guru
Joined:2014-01-14 06:45
Do you use an XTAL32 or do

Do you use an XTAL32 or do you use the internal one? If you use the internal one, the timers will not be accurate if the device sleeps for more than about 4 seconds without waking up.

MT_dialog
Offline
Last seen:1 month 3 weeks ago
Staff
Joined:2015-06-08 11:34
Hi yuhua64,

Hi yuhua64,

Try changing the period of waking up by changing the definition MAX_SLEEP_DURATION_EXTERNAL_WAKEUP in arch.c. The bad timing maybe is due to the fact that the system is working with the RC oscillator as Joacimwe stated try using the XTAL32.

Thanks MT_dialog

anthony42
Offline
Last seen:5 years 5 months ago
Joined:2015-07-17 08:21
Hi MT_dialog

Hi MT_dialog

#define CFG_EXT_SLEEP
#undef CFG_DEEP_SLEEP
does this happen in both of the above sleep mode?

what are the difference:
/// Sleep Duration Value in periodic wake-up mode
#定义x0320 MAX_SLEEP_DURATION_PERIODIC_WAKEUP 0// 0.5s
/// Sleep Duration Value in external wake-up mode
#定义x3e80 MAX_SLEEP_DURATION_EXTERNAL_WAKEUP 0//10s

and what is the max value I can define?

Thanks,
Anthony

MHv_Dialog
Offline
Last seen:1 month 2 weeks ago
Staff
Joined:2013-12-06 15:10
Hi Anthony,

Hi Anthony,

You should not have to change those parameters. If you call app_ble_ext_wakeup_on() just before you stop advertising, the 10 second polling timer will go away.

yuhua64
Offline
Last seen:4 years 10 months ago
Joined:2015-05-04 08:25
Hi,

Hi,

Thanks for your reply!

Another question based on same design sample code: I monitor the initial operation current, it means power up, it took 5 seconds more current, then reduction to normal operation current. May I shorten the time ?

yuhua64
Offline
Last seen:4 years 10 months ago
Joined:2015-05-04 08:25
Hi,

Hi,

1. How can I restart DA14580 via firmware control process ?

From data sheet, the SW_RESET in SYS_CTRL_REG maybe a solution, but, the processor 'down' after I set it to 0x1, I think that it is too easy to control processor restart smoothly.
Please give more information for this case how to control restart process via firmware.

2. May I modify the BD_ADDR on line ? It means that I provide a user interface to receive a new BD_ADDR by user input, at final, I copy new data to dev_bdaddr.addr[]. But, I don't know how to make it valid for new advertising one.

MT_dialog
Offline
Last seen:1 month 3 weeks ago
Staff
Joined:2015-06-08 11:34
Hi yuhua64,

Hi yuhua64,

You can give it a try with the platform_reset().

About dynamically changing the bd address you can have a look at this posthttp://support.dialog-semiconductor.com/how-change-bd-address-dynamically

Thanks MT_dialog

yuhua64
Offline
Last seen:4 years 10 months ago
Joined:2015-05-04 08:25
Hi,

Hi,

I have tried platform_reset() with parameter 0 / 1 / -1, DA14580 is not restart, It looks like SW_RESET, stop process only. It is difficult to execute like hardware reset action.

MT_dialog
Offline
Last seen:1 month 3 weeks ago
Staff
Joined:2015-06-08 11:34
Hi yuhua64,

Hi yuhua64,

What are you trying to achive, with the platform reset the chip reboots and the bootloader runs in order to find an external device to boot.

Thanks MT_dialog