你好,
我的工作DA14580 BLE基本包和连接上的GPIO一个按钮。
现在我想在DA14580 BLE上实现以下功能。
1.深入睡觉的电源意味着它睡眠永久,只有外部GPIO可以唤醒它。(没有广告也)
2.深睡眠后,将其唤醒GPIO上的中断。
3.再次把深度睡眠要求从应用程序或计时器没有联系,直到除非GPIO中断不会来了。
我已经下文称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功能的认定中提到下面的评论例子和罚款。
“
/ **
****************************************************************************************
* @brief启用唤醒IRQ。
* @参数[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)
* - 位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
* - 位24-31 - >端口3(P30..P37)
* @参数[中] events_num唤醒中断之前的事件数量。最大255。
* @参数[IN] deb_time去抖动时间。最大0x3F的(63毫秒)
* @返回无效
****************************************************************************************
* /
空隙wkupct_enable_irq(uint32_t的sel_pins,uint32_t的pol_pins,uint16_t events_num,uint16_t deb_time);
“
按照意见,我不能使用PORT2_2为使能唤醒IRQ,但现在它的工作。
难道是推荐使用,因为它是PORT2_2来作为中断输入?
谢谢
嗨JBaczuk,
您可以使用端口/引脚2_2作为唤醒中断,没有使用它的probelm。
谢谢mt_dialog.
嗨mt_dialog,
你能告诉我怎么做DA14580与BLE定时唤醒深度睡眠(不端口/引脚醒来)?
你能给我SDK 5.0.3一个示范项目基地?
谢谢
嗨xuguizhong,
请检查您的其他帖子的回复。
https://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bl ...
谢谢mt_dialog.
嗨,mt_dialog
如你确实描述ble_app_sleepmode工作。但是,当我UNDEF
#定义CFG_DEVELOPMENT_DEBUG
对于断电SYSRAM,我看到了设备的定期重启 - 每隔几秒钟,我看到的bootloader发送过来UART的东西(像往常一样启动时),也是我观察消耗电流浪涌。设备犯规宣传,定期重新启动刚刚迹象。所以,你能告诉我请,如何关闭RAM和去永久的和总深度睡眠与断电所有外设,时钟和BLE福利和没有这些重新启动?
我正在使用TDK Sesusb-Pan-D14580 EVK USB加密狗。
嗨弗拉德,
有你的OTP应用的图像?如果你不与ble_app_sleepmode FW烧OTP和你刚才下载的固件通过KEIL设备将保持清醒,做广告2秒后,它会进入睡眠状态,它会唤醒在未来发布时间间隔,所以它会尝试到以继续广告执行OTP复制,所以会有在OTP没有图像和设备将以udefined状态和显然将重置并执行主引导程序。如果已经在OTP施加的图像显然您在OTP已下载FW复位装置(无论是一个NMI或Hardfault发生时)。你有没有试过这种与ble_app_sleepmode,它燃烧在OTP,你会看到这种行为?因为我不能够复制它(在对话框开发工具包,因为我没有TDK USB加密狗)。使用深睡眠的方法包括,设置app_default_sleep_mode = ARCH_DEEP_SLEEP_ON;和配置的#define CFG_MEM_MAP_DEEP_SLEEP,取消定义CFG_DEVELOPMENT_DEBUG和烧OTP的图像,这将设置该设备是深睡眠模式,所有外设,包括断电sysram。
谢谢mt_dialog.
谢谢你的快速回复!不,我没有闪过OTP。代码从Flash启动。如果代码从Flash镜像,那么我们是否不能使用深睡眠?
嗨弗拉德,
是的,当OTP与FW烧毁只能用在深度睡眠模式下,你无法从闪存使用深度睡眠时,该设备开机。
谢谢mt_dialog.