你好,
我们有一个定制的PCB与DA14580在Buck模式配置只有XTAL16。这里BLE应用程序是通过SPI加载时,主微控制器复位发生
通过主单片机将需要通过BLE传输的部分传感器数据通过UART传输。据我所知,只有延长睡眠时间才有可能
#define CFG_LP_CLK LP_CLK_RCX20 and variable app_default_sleep_mode=ARCH_EXT_SLEEP_ON从BLE android应用程序,在扫描期间,设备是可见的。
但是在初始化连接时,会丢失进一步的连接,并且不再列出设备名称。
你能对这种行为提供一些建议吗?
谢谢,
阿帕纳
设备:
嗨aparna.anand,
如果你能看到设备启动时,它无法连接和连接,然后不再可见我可以假设某处连接代码摊位时,您应该检查通过调试的代码最终连接发生后,它会导致设备没有响应。在正常情况下,如果连接失败,设备应该通过调用.app_on_connection回调(在else条件下,如果连接失败)或app_on_disconnect回调中的start advertising过程重新开始发布,如果没有调用此函数,那么一旦连接尝试失败,设备将不会开始发布。但是,由于没有成功连接的情况,很可能是在连接过程中某些东西使设备停止。
由于MT_dialog
你好,
谢谢你的建议。我将尝试调试在什么点的应用程序卡住。
同时,能否确认CFG_LP_CLK作为LP_CLK_RCX20用于运行时的扩展睡眠模式条目是否可行?这是因为我们在定制板上没有XTAL32。
当我禁用扩展睡眠模式时,我看到应用程序运行良好,只有当我启用扩展睡眠模式时才卡住。
谢谢,
阿帕纳
嗨aparna.anand,
因为你的自定义板配置在buck模式,然后你可以在RCX上运行,虽然我没有得到运行时术语,LP时钟的选择应该在da1458x_config_advanced.h文件中完成,并且CFG_LP_CLK应该设置为LP_CLK_RCX20,如果您没有外部XTAL32,这是您的软件在编译期间应该具有的配置。因为你的设备在启动时是可见的,这意味着它可以休眠和通告它应该是,一定有什么问题,当连接发生在你正在运行的fw,可能是传感器的读数造成了故障。您可以通过一个简单的SDK示例进行检查,并连接到它,以验证问题在于您的fw,而不是您的自定义板。
由于MT_dialog
你好,
所谓运行时,我指的是在连接或广告间隔之间启用睡眠模式。由于DA14580的调试行还没有在定制板中出现,我还在想如何进一步调试这个问题。
我正在尝试的另一件事是在主微控制器的GPIO事件上启用DA的睡眠模式(永久)(输入DA驱动高)。电源复位会使DA和主单片机都脱离复位。你能告诉我这是否可行吗?
我已经看到了使用wkupct_register_callback()和wkupct_enable_irq() api的示例。但在我的情况下,我不需要启用唤醒定时器。我只需要服务GPIO ISR并启用延长睡眠。
关于例子的一些建议将是有帮助的。
谢谢,
阿帕纳
嗨aparna.anand,
在代码执行期间启用和禁用睡眠可以通过arch_disable_sleep(), arch__set_extended_sleep() api来完成。还有一点你可能会误解,你不需要在连接期间启用或禁用睡眠,如果设备在默认情况下在延长睡眠模式(通过使用ARCH_EXT_SLEEP_ON app_default_sleep_mode结构)SDK将安排设备的睡眠和觉醒在广告时间间隔和连接的间隔没有任何需要从应用程序采取任何行动,当应用程序需要从设备保持清醒时,禁用睡眠功能,即使不需要BLE活动(没有即将到来的连接事件或广告事件)。
关于支持睡眠模式从外部微控制器,您可以配置在580年通过外部中断醒来,你可以看一下设备的ble_app_sleepmode广告后少量的时间落在永久的睡眠(没有祝福事件)并通过外部按钮中断醒来。还可以通过在PMU_CTRL_REG中配置RESET_ON_WAKEUP(如果这是您想要的)来配置设备以在下次唤醒时重置。
关于醒来,如果你处于永久睡眠模式(意味着没有被编程的BLE事件,没有连接建立或广告安排)设备可以通过内核定时器醒来(也被认为是一个幸运的事件)或唤醒定时器(这个名字有点误导,但事实上这是模块,醒来后设备断电后预排程序的GPIO事件发生的数量)的例子使用wkupct_timer是您应该使用的示例。
由于MT_dialog
感谢你澄清了误解并给出了例子!
感谢和问候,
阿帕纳