我试图调试一个基于DA14580 WLCSP34包的定制板(带有一个外部32kHz振荡器)。当将固件编译为sleep_state_t app_default_sleep_mode = ARCH_DEEP_SLEEP_ON时,处理器不会唤醒。但是,如果我将sleep_state_t app_default_sleep_mode改为ARCH_EXT_SLEEP_ON,系统就可以从OTP正常运行。此外,如果我使用ARCH_DEEP_SLEEP_ON并使用smarsnippets编写系统ram,系统也可以正常运行,因此只有从OTP引导时才会出现问题。
我在板上有诊断led,我可以告诉,当使用ARCH_DEEP_SLEEP_ON和OTP板醒来一次,然后睡觉,永远不会再来。我可以看到一个广告包装传输时,董事会第一靴子。
总结:
ARCH_EXT_SLEEP_ON和sysram =正常操作
ARCH_DEEP_SLEEP_ON和sysram =正常操作
ARCH_EXT_SLEEP_ON和OTP =正常操作
ARCH_DEEP_SLEEP_ON和OTP =非操作。
我试过用电池在助推模式下和用外部电源运行,结果都是一样的。当我用不同版本的固件烧录芯片时,我正在编写相同的OTP头设置。唯一的区别是sleep_state_t app_default_sleep_mode中的更改。我还验证了CFG_DEVELOPMENT_DEBUG未定义。
很自然地,我已经烧了相当多的板,试图孤立这个问题。如有任何建议将不胜感激。
设备:
嗨jmarous,
我不看到任何明显对你所提到的,一些评论你所提到的,我们假设设备OTP烧在深度睡眠,通常和SDK定义的设备应该醒了2秒,然后去任何睡眠模式,这是为了使XTAL32解决争议,你看到了吗?所以,如果广告足够频繁,就应该有更多的广告活动,而不仅仅是一个。另外,当启用开发调试时,没有深度睡眠(如果将flash设置为CFG_DEVELOPMENT_DEBUG,设备的系统ram将保持清醒)。另外,你使用的fw是自定义的或者是对话框中的一个例子(请尝试使用其中一个例子)。
由于MT_dialog