嗨,对话团队,
默认情况下,DA14580需要两秒钟才能稳定在电源期间睡眠前。但在我们的应用程序中,我们需要做一个广告,然后使DA芯片立即从电源开始深入睡眠。所以进行测试目的将稳定时间值从3200变为1(在RWIP.C中)。在调试SRAM时,首次广告后立即睡觉(它的工作正常!)。但是在OTP中编程后,在第一个广告上的电源期间,执行后跟额外的70毫秒的高峰(如图所示)!
所以我的问题是,有没有一种方法来消除这额外的电流峰值,并使da14580立即去睡觉后第一个广告从电源上??
这个额外的电流只发生在电源广告期间,当一个中断被给予唤醒芯片没有这样的峰值电流,它广告并立即进入睡眠!.
开机广告:
https://www.dropbox.com/s/rcdgcdnn0vh658q/power%20on.png?dl=0.
Durring中断:
https://www.dropbox.com/s/w2yw1eoyzbsxnex/interrupt.png?dl=0.
我们更加认真地删除这些额外的当前,为我们的申请!所以我们正在等待你的反应!
(我们已经在旧线程中讨论过,因为波形的链接已过期,而且还有适当的解决方案,在此处发布)
谢谢
嗨hrq,
32KHz Xtal振荡器在开机期间启动。这是首先要做的事情之一,因为32KHz xtal振荡器需要相当长的时间来稳定。我们设定了2秒。当在sysram中修改设置时,32KHz xtal振荡器已经稳定运行了一段时间。
在OTP中燃烧后,32kHz XTAL振荡器必须在上电时启动,直接接下来是您的广告。32kHz XTAL振荡器尚未稳定。
这可能会导致您在开机期间所观察到的情况。
执行中断时,32kHz XTAL振荡器已运行一段时间,并运行稳定。
你能尝试使用设置> 1吗?
最好的问候,bb_dialog。
嗨对话小组
但是Da14580在稳定时间之前就开始做广告了对吗?(您可以验证当前波形)!那么,这种延迟或稳定函数的确切用途是什么?BLE广告与晶体稳定性无关!??你能详细解释一下吗?
谢谢
嗨hrq,
对于BLE功能,不使用32KHz Xtal。BLE使用精确和修剪的16 MHz晶体振荡器。
16MHz XTAL振荡器刚刚开始之前启动。16MHz XTAL振荡器需要大约2毫秒进行启动并变得稳定。
32kHz XTAL振荡器已经在运行,以便在广告后首先睡眠前变得稳定。
32kHz是低功率时钟,用于睡眠模式。
由于高q系数和低频率,它可以花费2秒的32K Xtal振荡器已经稳定。
假设晶体Q系数为10.000,这是晶体的相对低的Q系数。
通常,假设需要(3 * Q)的周期数来获得稳定的XTAL振荡器幅度和频率。确保采取5 * Q因子。
3 * Q = 30.000循环,这将是32.768 kHz水晶的1秒。
如你所知,我们为它设置了2秒。
如果您想要更快,最好使用内部RCX20振荡器。这个是更快的,但有局限性。例如。只能用于降压模式。
请参阅数据表。
最好的问候,BB_Dialog。
如果我们的应用程序像-在一个广告后da14580将被关闭(它不去睡觉)。那么在这种情况下,如何去除这个水晶时间。我们不想用32千赫晶体??要做的软件修改是什么?
谢谢
嗨hrq,
1st:选择在DA14580_CONFIG中的*低功耗时钟选择*中使用RCX20振荡器*
为RCX设置0xAA。0x00用于XTAL32K
2nd:可选但建议做:去激活XTAL32K振荡器,以节省一点电流:SetBits16(CLK_32K_REG,XTAL32K_ENABLE,0);//禁用xtal32khz.
在arch_system.c中的"else if (lp_clk_sel == LP_CLK_RCX20)" of * Power up BLE core & reset BLE Timers"的最后一行添加这个
=>http://support.dialog-semicondiondiondiondum/faq/how-fix-rcx20-bug-sdk-306
就这样。
最好的问候,BB_Dialog。
谢谢你的信息!既然我们不使用睡眠模式,是否还需要RCX20 osc ?你提到ble使用16Mhz的osc,为什么我们需要再次使用RCX ?因为我们打算在一次广告后关闭Da14580 !
嗨hrq,
如果您真正关闭DA14580,而不是使用任何睡眠模式,则不必使用32kHz XTAL振荡器或RCX20振荡器。
通常在接近报告中,在广告事件之间,设备处于睡眠模式,使用Xtal32K或RCX20。
最好的问候,BB_Dialog。
所以在“*低功率时钟选择* / #define cfg_lp_lk”中,要放置的值是什么,以便禁用32khz&rcx20?
谢谢
嗨hrq,
选择任何您喜欢的,但最佳选择32khz XTAL振荡器(0x00),因为这一个已在运行以来,BootROM切换到它。
在软件中,你可以禁用32KHz Xtal振荡器,添加以下行:
SetBits16(CLK_32K_REG,XTAL32K_ENABLE,0);//禁用xtal32khz.
最好的问候,bb_dialog
嗨bb_dialog.
我遵循您的指令禁用振荡器,但当我添加行SetBits16(CLK_32K_REG, XTAL32K_ENABLE, 0);//禁用Xtal32KHz,
DA14580没有启动,没有电源或广告!我用rcx20尝试了,仍然是同一个da芯片没有电源,似乎至少应该启用电源,!!!
我已附加了我试图禁用XTAL32 OSC的快照。
https://www.dropbox.com/s/cho4zwadcz16t5g/xtal.jpg?dl=0
那么如何禁用两者?
谢谢
嗨hrq,
我们认为必须将以下内容设置为UNDEF,其中一个现在定义,但请将它们设置为UNDEF。
禁用深延长的睡眠:在da14580_config.h中
#undef cfg_ext_sleep.
# undef CFG_DEEP_SLEEP
最好的问候,BB_Dialog。
嗨bb_dialog.
我试过禁用深延长的睡眠:在da14580_config.h中,仍然存在问题,da14580没有打开!你能试试一次吗?并尽快确认?由于我们需要尽量减少我们需要禁用振荡器的大部分不必要的功耗!
谢谢
嗨hrq,
在我的情况下它有效。接近记者是广告的,没有睡眠模式。广告事件之间的基本电流高于正常。
我刚刚未定义两个睡眠模式,但xtal32k仍被选为LP时钟。
B.R。BB_Dialog
嗨bb_dialog.
我尝试了同样的32千赫启用和未定义的睡眠模式。基极电流像你说的高,现在情况更糟了!为什么会有这么多的过剩电流?是32khz无条件运行!所以没有办法让这些Osc失效吗?
谢谢