大家好,,
如何通过BLE定时器同步唤醒DA14580设备,以便为BLE事件提供服务。
谢谢
你好,Asmaitha,你有没有读过关于如何配置同步睡眠模式(BLE Timer)或异步睡眠模式(中断)的应用说明?
http://support.dialog-semiconductor.com/um-b-006-user-manual-sleep-mode-configuration
这是一个相当全面的应用程序说明,是最好的开始。
BR JE_对话
你好JE_Dialog,
我想知道如何识别唤醒事件,例如两个短脉冲以异步唤醒系统。谢谢!
杨伯伦
你好,DATeam,
我无法下载此文档。您能建议如何下载吗?
谢谢,毗湿奴
你好JE_Dialog,非常感谢您的回复。我已经看过文件了。但即使在da14580_config.h文件中禁用扩展和深度睡眠模式如下:#undef CFG_EXT_SLEEP# undef CFG_DEEP_SLEEP
我们无法看到该设备始终处于唤醒状态,并且它没有持续地进行广告宣传。
谢谢,asmaitha
嗨,young_dialog,
我不明白你的问题,你能澄清一下吗?如果这是您的意思,您可以使用唤醒控制器并使用多个管脚进行设置。
谢谢你的对话
嗨,MT_dialog,
谢谢你的注意,我的意思是如何识别这个引脚唤醒系统,如一个引脚发送数据和另一个执行adc。我使用的方法是根据
wucpt_quadec.c doucment。但我发现函数“wkupct_register_callback()”只能注册一个回调函数。因此,当任何pin处于活动状态时,它们都将进入同一个回调,并且没有
显示哪个pin处于活动状态的寄存器。这是我的方法吗?有什么建议吗?
BR,年轻的
是的,没错,你可以声明许多唤醒管脚,但是你只有一个回调,如果你想确定你从哪个管脚得到中断,你可以在得到中断后尝试读取管脚的状态,并检查你的管脚是高还是低。
当中断由短脉冲如5us高脉冲引起时,在读取引脚状态时很难识别它。
我也想知道当系统进入扩展睡眠模式时如何保持pin状态,谢谢!
没有其他方法可以做到这一点,您可以读取您的管脚,或者如果连接的源与可用的IRQ匹配,您可以尝试为连接的管脚设置GPIO IRQ。580进入睡眠状态时,您不必做任何明确的事情来保持管脚的状态,当您处于睡眠模式时,状态将被保留,但您必须保持管脚的状态,因为580醒来时,periph_init()将运行,并且您的管脚将被重新配置。
我尝试使用GPIO IRQs周期性地唤醒系统,它在活动模式下工作得很好,而在扩展睡眠模式下不工作。顺便说一下,中断是由脉冲触发的
从4ms周期的ADC芯片生成。唤醒系统是否太短?有什么建议吗?
谢谢你!
BR,
年轻的
如我们所知,DA14580可以在延长或深度睡眠模式下通过唤醒定时器和正交解码器唤醒。我想知道当只使用GPIO IRQ时如何醒来?谢谢!
我不认为4ms太短,无法唤醒系统并触发中断,您是否尝试在唤醒设置和GPIO IRQ上正确配置去抖动参数?因为我尝试了4ms脉冲,我可以唤醒系统并触发IRQ。
关于唤醒,您不能通过GPIO IRQ唤醒系统,只有唤醒计时器和正交可以唤醒它。
是的,如果我唤醒系统并设置GPIO IRQ,4ms不会太短,无法唤醒系统并触发中断。这就是我想要的!非常感谢。
如何改变睡眠模式?我们的使用场景是:广告时扩展睡眠模式,连接时激活/空闲模式,断开连接后返回扩展睡眠模式
重新刊登拍卖广告。我尝试使用API 'app_force_active_mode()与app_restore_sleep_mode()'或'arch_disable_sleep() with arch_set_sleep_mode()'来更改连接时的睡眠模式
断开连接时,现象是模式在连接时成功更改为活动模式,但在连接后无法更改为延长睡眠模式或重新启动广告
断开。任何建议吗?谢谢你!
当您想在睡眠模式之间切换时,可以使用以下功能:
arch\u disable\u sleep():设备将处于活动状态
arch_set_extended_sleep():设备将切换到延长睡眠模式
当连接和断开与中央设备的连接时,您可以通过调用(用户应用程序连接回调中的arch\u disable\u sleep和用户应用程序断开连接中的arch\u set\u extended\u sleep)来调用上述函数。使用适当的参数,这与arch\u set\u sleep\u mode()相同。为了在断开连接后再次开始播发,您必须在user_app_disconnect中调用arch_set_extended_sleep()和user_app_adv_start(),以便将设备设置为Exted sleep并再次开始播发。
另外,请不要在同一个帖子下发布不同的问题,你可以创建一个新的帖子。
对此我很抱歉,但奇怪的是我没有创建新线程的权限!怎么了我没有足够的许可?
我现在找到了创建新线程的方法,谢谢!
你好,Asmaitha,你有没有读过关于如何配置同步睡眠模式(BLE Timer)或异步睡眠模式(中断)的应用说明?
http://support.dialog-semiconductor.com/um-b-006-user-manual-sleep-mode-configuration
这是一个相当全面的应用程序说明,是最好的开始。
BR JE_对话
你好JE_Dialog,
我想知道如何识别唤醒事件,例如两个短脉冲以异步唤醒系统。谢谢!
杨伯伦
你好,DATeam,
我无法下载此文档。您能建议如何下载吗?
谢谢,
毗湿奴
你好JE_Dialog,
非常感谢您的回复。
我已经看过文件了。
但即使在da14580_config.h文件中禁用扩展和深度睡眠模式如下:
#undef CFG_EXT_SLEEP
# undef CFG_DEEP_SLEEP
我们无法看到该设备始终处于唤醒状态,并且它没有持续地进行广告宣传。
谢谢,
asmaitha
你好JE_Dialog,
我想知道如何识别唤醒事件,例如两个短脉冲以异步唤醒系统。谢谢!
杨伯伦
嗨,young_dialog,
我不明白你的问题,你能澄清一下吗?如果这是您的意思,您可以使用唤醒控制器并使用多个管脚进行设置。
谢谢你的对话
嗨,MT_dialog,
谢谢你的注意,我的意思是如何识别这个引脚唤醒系统,如一个引脚发送数据和另一个执行adc。我使用的方法是根据
wucpt_quadec.c doucment。但我发现函数“wkupct_register_callback()”只能注册一个回调函数。因此,当任何pin处于活动状态时,它们都将进入同一个回调,并且没有
显示哪个pin处于活动状态的寄存器。这是我的方法吗?有什么建议吗?
BR,
年轻的
嗨,young_dialog,
是的,没错,你可以声明许多唤醒管脚,但是你只有一个回调,如果你想确定你从哪个管脚得到中断,你可以在得到中断后尝试读取管脚的状态,并检查你的管脚是高还是低。
谢谢你的对话
嗨,MT_dialog,
当中断由短脉冲如5us高脉冲引起时,在读取引脚状态时很难识别它。
我也想知道当系统进入扩展睡眠模式时如何保持pin状态,谢谢!
BR,
年轻的
嗨,young_dialog,
没有其他方法可以做到这一点,您可以读取您的管脚,或者如果连接的源与可用的IRQ匹配,您可以尝试为连接的管脚设置GPIO IRQ。580进入睡眠状态时,您不必做任何明确的事情来保持管脚的状态,当您处于睡眠模式时,状态将被保留,但您必须保持管脚的状态,因为580醒来时,periph_init()将运行,并且您的管脚将被重新配置。
谢谢你的对话
嗨,MT_dialog,
我尝试使用GPIO IRQs周期性地唤醒系统,它在活动模式下工作得很好,而在扩展睡眠模式下不工作。顺便说一下,中断是由脉冲触发的
从4ms周期的ADC芯片生成。唤醒系统是否太短?有什么建议吗?
谢谢你!
BR,
年轻的
嗨,MT_dialog,
如我们所知,DA14580可以在延长或深度睡眠模式下通过唤醒定时器和正交解码器唤醒。我想知道当只使用GPIO IRQ时如何醒来?谢谢!
BR,
年轻的
嗨,young_dialog,
我不认为4ms太短,无法唤醒系统并触发中断,您是否尝试在唤醒设置和GPIO IRQ上正确配置去抖动参数?因为我尝试了4ms脉冲,我可以唤醒系统并触发IRQ。
关于唤醒,您不能通过GPIO IRQ唤醒系统,只有唤醒计时器和正交可以唤醒它。
谢谢你的对话
嗨,MT_dialog,
是的,如果我唤醒系统并设置GPIO IRQ,4ms不会太短,无法唤醒系统并触发中断。这就是我想要的!非常感谢。
BR,
年轻的
嗨,MT_dialog,
如何改变睡眠模式?我们的使用场景是:广告时扩展睡眠模式,连接时激活/空闲模式,断开连接后返回扩展睡眠模式
重新刊登拍卖广告。我尝试使用API 'app_force_active_mode()与app_restore_sleep_mode()'或'arch_disable_sleep() with arch_set_sleep_mode()'来更改连接时的睡眠模式
断开连接时,现象是模式在连接时成功更改为活动模式,但在连接后无法更改为延长睡眠模式或重新启动广告
断开。任何建议吗?谢谢你!
BR,
年轻的
嗨,young_dialog,
当您想在睡眠模式之间切换时,可以使用以下功能:
arch\u disable\u sleep():设备将处于活动状态
arch_set_extended_sleep():设备将切换到延长睡眠模式
当连接和断开与中央设备的连接时,您可以通过调用(用户应用程序连接回调中的arch\u disable\u sleep和用户应用程序断开连接中的arch\u set\u extended\u sleep)来调用上述函数。使用适当的参数,这与arch\u set\u sleep\u mode()相同。为了在断开连接后再次开始播发,您必须在user_app_disconnect中调用arch_set_extended_sleep()和user_app_adv_start(),以便将设备设置为Exted sleep并再次开始播发。
另外,请不要在同一个帖子下发布不同的问题,你可以创建一个新的帖子。
谢谢你的对话
嗨,MT_dialog,
对此我很抱歉,但奇怪的是我没有创建新线程的权限!怎么了我没有足够的许可?
BR,
年轻的
嗨,MT_dialog,
我现在找到了创建新线程的方法,谢谢!
BR,
年轻的