Hi Dialog team ,
By default ,it takes two secs for DA14580 to stabilize before going to sleep during power on.But in our application we need to do one advertisement and then make the DA chip to go to deep sleep immediately from power on.So for testing purpose we modified the stabilization time value from 3200 to 1 (in rwip.c ). While debugging in SRAm it was immediately goin to sleep after first advertisement (it's working fine ! ). But after programming in OTP , during power on first advertisement is performed followed by additional 70 msec of high peaks (as shown in the picture)!
So my question is is there a way to remove this additional current peaks and make the da14580 to immediately go to sleep after fist advertisement from power on ???
This additional current happens only during power on- advertisement, when an interrupt is given to wake up the chip there is no such peaks of current ,it advertises and immediately goes to sleep! .
Power on - advertisiement:
https://www.dropbox.com/s/rcdgcdnn0vh658q/power%20on.png?dl=0
Durring interrupt :
https://www.dropbox.com/s/w2yw1eoyzbsxnex/interrupt.png?dl=0
we are more serious in removing these additional current , for our application ! so we are awaiting for your response asap !
(we already have discussed in an old thread ,since the links for waveforms got expired,& also there is proper solution ,am posting here )
Thankyou
Hi hrq,
the 32KHz Xtal oscillator is activated in the booter during power on. This is one of the first things that is done because the 32KHz xtal oscillator takes quite a long time to stabilize. We set 2 seconds for that. When modifying the setting in sysram, the 32KHz xtal oscillator is already running stable for a while.
After burning in OTP, the 32KHz xtal oscillator must start during power-on, directly followed by your advertising. The 32KHz xtal oscillator is not stable yet.
This could cause what you are observing during power-on.
When doing the interrupt, the 32KHz xtal oscillator is running already for a while, and is running stable.
Could you try with settings > 1?
best regards, BB_Dialog.
Hi Dialog Team
But Da14580 starts to advertise before the stabilisation time right? (you can verify the current waveforms)! Then what is the exact use for such a delay or the stabilization function ?? Is BLE advertising irrespective of the crystal stabilzation ! ?? could you explain in detail in this regard .
Thankyou
Hi hrq,
for the BLE function the 32KHz Xtal is not used. BLE uses the accurate and trimmed 16 MHz crystal oscillator.
The 16MHz Xtal oscillator is started just before advertisng is started. The 16MHz Xtal oscillator requires about 2 msec for starting-up and becoming stable.
The 32KHz xtal oscillator is already running in order to become stable before going into first sleep after the advertising.
The 32KHz is the low power clock, used for the sleep modes.
Because of the high Q-factor, and the low frequency, it can take upto 2 seconds before the 32K Xtal oscillator has stabilised.
Assume a crystal Q-factor of 10.000, which is a relatively low Q-factor for a crystal.
In general, it's assumed that a (3 * Q) number of cycles is required to get a stable xtal oscillator amplitude and frequency. To be sure take 5 * Q factor.
3 * Q = 30.000 cycles, this will be 1 sec for a 32.768 KHz crystal.
As you know, we set 2 seconds for it.
如果你想要更快,最好使用我nternal RCX20 oscillator. This one is much faster, but has limitations. E.g. can only be used in Buck-mode.
Please, see the datasheet for this.
Best regards, BB_Dialog.
如果我们的应用程序就像加勒比海盗advertisemen之一t da14580 will be shutdown (it doesn't go to sleep ).So in this case , how to remove this crystal time .i.e we dont want to use the 32khz crystal?? what are the software modifications to be done ?
Thankyou
Hi hrq,
1st: select the use of the RCX20 oscillator in the section *Low Power Clock Selection* in da14580_config.h
Set 0xAA for the RCX. 0x00 is for Xtal32K
2nd: optional but advised to do: de-activate the Xtal32K oscillator to save a little current: SetBits16(CLK_32K_REG, XTAL32K_ENABLE, 0); // Disable Xtal32KHz
Add this as the last line in section "else if (lp_clk_sel == LP_CLK_RCX20)" of * Power up BLE core & reset BLE Timers" in arch_system.c
=>http://support.dialog-semiconductor.com/faq/how-fix-rcx20-bug-sdk-306
That's all.
Best regards, BB_Dialog.
Thankyou for the info ! Since we are not using sleep modes is RCX20 osc is also needed ? you mentioned that ble uses 16Mhz osc ,then why we need to use RCX again ? because we are goin to turn off Da14580 after one adv !
Hi hrq,
in case you really switch off the DA14580, and not using any sleep-mode, you don't have to use the 32KHz Xtal oscillator or the RCX20 oscillator.
Normally in e.g. proximity reporter, between advertisement events the device is in sleep mode, using either Xtal32K or the RCX20.
Best regards, BB_Dialog.
So in " *Low power clock selection*/ #define CFG_LP_CLK " ,what is the value to be put in order to disable both 32Khz & RCX20 ?
Thankyou
Hi hrq,
select any you like, but maybe best to select the 32KHz Xtal oscillator (0x00), because this one is already running since the bootrom switched it on.
In the software, then you can disable the 32KHz Xtal oscillator by adding following line:
SetBits16(CLK_32K_REG, XTAL32K_ENABLE, 0); // Disable Xtal32KHz
Best regards, BB_Dialog
Hi BB_Dialog
I followed your instructions in disabling the oscillators, but when i add the line SetBits16(CLK_32K_REG, XTAL32K_ENABLE, 0); // Disable Xtal32KHz ,
da14580 is not starting up ,there is no power on or advertisement ! i tried with RCX20 also ,still the same da chip is not powering on ,it seems atleast any one should be enabled for power on , !!!
i have attached the the snapshot where i tried to disable xtal32 osc .
https://www.dropbox.com/s/cho4zwadcz16t5g/xtal.jpg?dl=0
So how to disable both ?
Thankyou
Hi hrq,
we think the following must be set to undef, one of them is defined now, but please set them both to undef.
disable the deep and extended sleep: in da14580_config.h
#undef CFG_EXT_SLEEP
#undef CFG_DEEP_SLEEP
Best regards, BB_Dialog.
Hi BB_Dialog
I tried with disabling the deep and extended sleep: in da14580_config.h ,still the problem exists , DA14580 is not turning on ! Could you please try this setup once and acknowledge asap ? Since we need to minimize much of the unecessary power consumption we are in need of disabling the oscillators !
Thankyou
Hi hrq,
in my case it works. Proximity reporter is advertising, without sleep mode. The base current between advertisement events is higher than normal.
I just undefined both sleep modes, but Xtal32K was still selected as LP clock.
B.R., BB_Dialog
Hi BB_Dialog
I tried the same with 32Khz enable and undefine sleep modes. the base current is high as you said ,now the situation is worse ! Why this much excess current ? is the 32khz operating unconditionally ! So is there no way to disable these Osc ??
Thankyou