你好,
我正在使用基本套件和连接的GPIO上的一个按钮工作的DA14580 BLE。
现在我想在DA14580 BLE上实现以下功能。
1.开机深度睡眠意味着它会永久休眠,只有外部GPIO才能唤醒它。(没有广告也)
2.深睡眠后,唤醒GPIO中断。
3.再次从应用程序或计时器请求深入睡眠,直到没有连接,除非GPIO中断不会来。
我refered training_04_sleep_modes_current_measurement_v1.0.pdf,但我无法理解DA14580在深度睡眠中为永久睡眠(只有GPIO中断可以唤醒它)和唤醒如何再次重启BLE配置文件。
如何实现以上深度睡眠和唤醒使用GPIO中断?
设备:
嗨jbaczuk,
你可以看看SDK的例子ble_app_sleepmode,它确实做了你正在请求的深度睡眠,广告几秒钟,然后进入永久睡眠,直到GPIO中断(按钮)触发它,然后开始再次广告。
谢谢mt_dialog.
谢谢,
我有检查SDK示例BLE_APP_SLEEPMODE。
Port2_2 GPIO已连接到按钮进行输入中断,其工作正常。
但是一个查询,我已经引用了一个例子,下面的评论,高于wkupct_enable_irq函数的defination。
“
/ **
****************************************************************************************
* @brief启用唤醒IRQ。
* @param [in] sel_pins选择已启用的输入(0禁用,启用1个)
* - 位0-7 - >端口0(p00..p07)
* - 位8-13 - >端口1(p10..p15)
* - 位14-15 - >端口2(P28,P29)
* - 位16-23 - >端口2(p00..p07)
* - Bits 24-31 ->端口3(P30..P37)
* @param[in] pol_pins输入的极性(0-高,1-低)
* - 位0-7 - >端口0(p00..p07)
* - 位8-13 - >端口1(p10..p15)
* - 位14-15 - >端口2(P28,P29)
* -比特16-23 ->端口2(P00..P07 .
* - Bits 24-31 ->端口3(P30..P37)
* @param [in] event_num唤醒中断前的事件数。最多255。
* @param [in] deb_time debouncing时间。最大0x3F(63毫秒)
* @return void.
****************************************************************************************
* /
void wkupct_enable_irq(uint32_t sel_pins,uint32_t pol_pins,uint16_t events_num,uint16_t deb_time);
“
根据评论,我不能使用port2_2来启用Wakeup Irq,但现在它的工作。
它建议使用它是port2_2作为中断的输入吗?
谢谢
嗨jbaczuk,
你可以使用端口/引脚2_2作为唤醒中断,使用它没有问题。
谢谢mt_dialog.
嗨mt_dialog,
你能告诉我如何用BLE定时器醒来的DA14580将DA14580睡觉(不是端口/针唤醒)?
你能给我一个关于SDK 5.0.3的演示项目基础吗?
谢谢
嗨徐开忠,
请查看你其他帖子的回复。
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。
谢谢mt_dialog.
嗨,mt_dialog
BLE_APP_SLEEPMODE根据您的描述工作。但是当我撤消时
#define cfg_development_debug.
为了断电Sysram,我看到设备的周期性重启 - 每隔几秒钟我看到引导加载程序会发出一些超越UART的东西(当它开始时,我也观察到当前的消耗浪涌。设备不通告,只是定期重启的迹象。所以,你能告诉我,如何关掉RAM,然后通过所有外围设备,时钟和BLE断电,而没有这些重新启动?
我正在使用TDK SESUSB-PAN-D14580 EVK USB dongle。
嗨vlad,
您是否在OTP中应用了图像?如果您不使用BLE_APP_SLEEPMODE FW刻录OTP,您只需通过KEIL下载FW,那么设备将保持醒来并在睡眠状态后宣传2秒钟,它将唤醒下一个广告间隔,所以它会尝试到以继续广告执行OTP复制,所以会有在OTP没有图像和设备将以udefined状态和显然将重置并执行主引导程序。如果您显然在OTP中应用了图像,则在OTP中下载的FW将重置设备(NMI或H硬盘发生)。您是否用BLE_APP_SLEEPMODE尝试过此功能,将其刻录在OTP中,您看到此行为?由于我无法复制它(在对话框开发套件上,因为我没有TDK USB DONGLE)。使用Deep Sleep的程序包括,设置App_default_sleep_mode = Arch_Deep_sleep_on;并配置#define cfg_mem_map_deep_sleep,unefine the cfg_development_debug并刻录OTP中的图像,这将设置设备是深度睡眠模式,所有外设都包括Sysram断电。
谢谢mt_dialog.
感谢您的快速回复!不,我没有闪过OTP。代码从flash启动。这是否意味着我们不能使用DEEP SLEEP如果代码是从flash镜像的?
嗨vlad,
是的,只有当OTP用FW燃烧时,才能使用深度睡眠模式,当设备从闪光灯启动时,不能使用深睡眠。
谢谢mt_dialog.