DA14585和DA14586
5个月前
发布的Jin-Hoon金180点 5回复嗨,对话框中,
我正在尝试使BLE睡眠模式在一定的时间内,以减少功耗。
根据所附DA14585 Datasheet I,在第136和137页有BLE程序休眠模式和唤醒的指令。
根据我的理解,当我通过设置BLE_ENBPRESET_REG寄存器来设置BLE_WAKEUP_LP_IRQ生成的时间,使用BLE_DEEPSLWKUP_REG编程BLE的睡眠时间,最后通过设置BLE_DEEPSLCNTL_REG[DEEP_SLEEP_ON]寄存器来设置BLE的睡眠模式。
基于此,我可以让设备进入BLE睡眠模式,停止广告。然而,即使在睡眠时间过后,BLE也不会醒来。
我以为在休眠时间到期后,系统会自动设置BLE_WAKEUP_LP_IRQ中断来唤醒设备。难道我理解错了?
你能告诉我在经过编程的睡眠时间后我如何从BLE睡眠模式中醒来吗?
谢谢你!
Jin-Hoon
| 附件 | 大小 |
|---|---|
| da14585_datasheet_3v3.pdf | 5.06 MB |
5个月前
嗨,对话框中,
谢谢你的回答和评论。
我之所以使用在数据表中写入的寄存器,是因为我想在一定时间后使用计时器从BLE睡眠模式中唤醒。
当我定义CFG_DEEP_SLEEP_WAKEUP_GPIO或CFG_DEEP_SLEEP_WAKEUP_POR来唤醒设备时,我想我不能使用定时器。这是对的吗?
如果可以,您能告诉我如何使用计时器将DA14585从深度睡眠模式唤醒吗?
谢谢你!
Jin-Hoon
5个月前
嗨Jin-Hoon金,
正如我在之前的回复中提到的,根据建议的教程,然后DA14585被配置为深度睡眠模式,它只能通过WAKEUP控制器中的GPIO触发器或POR唤醒。
建议使用SDK api而不是直接使用寄存器。
谢谢,PM_Dialog
5个月前
嗨Jin-Hoon,
如果您正在使用Pro-DK,请尝试从SW3唤醒设备。
您所需要做的只是遵循教程,如果您检查源代码,您将看到P1_1被配置为唤醒PIN。
根据用户指南,P1_1已经映射到SW3上。
//www.wsdof.com/sites/default/files/2021-04/UM-B-1..。
谢谢,PM_Dialog
5个月前
嗨Jin-Hoon金,
谢谢你的在线问题。由于您使用的是深度睡眠模式,我建议您使用我们的SDK api。要使设备进入深度睡眠模式,应该使用arch_set_deep_sleep() API。
DA14585只能通过唤醒控制器从POR引脚或GPIO从深度睡眠中唤醒。
http://lpccs-docs.dialog-semiconductor.com/DA14531_Sleep_Mode/deepsleep_config.html
请参阅下面的教程。您可以使用SDK中的pxp_reporter示例并测试深度睡眠。
您应该在user_proxr.h中定义CFG_APP_GOTO_DEEP_SLEEP宏。一旦设备停止发布,app_advertise_complete()将被触发,它调用put_system_into_deep_sleep()。
put_system_into_deep_sleep()将唤醒控制器配置为唤醒源,并使系统进入深度睡眠模式。如果定义了CFG_DEEP_SLEEP_WAKEUP_POR, DA14585就可以从POR中唤醒。
谢谢,PM_Dialog