你好,
我们基于“DA14580_DialogBeacon_3.40.6”的参考设计做了一些修改,为了检查功耗,首先,我们停止广告,这是工作,但是,我可以读取一个周期电流波形约10秒,这意味着设备一直处于主动。所有我创建的计时器,我们没有开始任何计时器计数10秒,除了一个60秒。但是,我们需要避免这种状态发生,我怎样才能阻止它,或使它更长?
嗨yuhua64,
你的意思是你已经停止了广告活动,但设备每10秒就会醒来做一些事情,而你拥有的唯一功能就是一个60秒后按下的计时器?如果BLE在很长一段时间内不做任何事情,它会在10秒内自动醒来,以便调整时钟,然后再次睡着。这是系统所需要的,我不认为它可以被禁用。
由于MT_dialog
谢谢你的回复。
是的,你明白我的意思了。同时,我启动一个计时器,并在stop_adv_func()之后60秒设置值,它过期了,花了333秒。假设设备在睡眠模式下保持较慢的操作频率。它是好的。我们可以接受。关于你的回答:“如果BLE长时间不做任何事情,它会在10秒内自己醒来,以便调整时钟,然后再次睡着。这是系统所需要的东西”,我能理解,如果需要,它能设置得更长吗?
你用的是XTAL32还是内部的?如果你使用内部定时器,如果设备休眠超过4秒而没有被唤醒,定时器将不准确。
尝试通过改变arch.c中MAX_SLEEP_DURATION_EXTERNAL_WAKEUP的定义来改变唤醒的周期。糟糕的时机可能是由于事实,系统是与RC振荡器工作的Joacimwe说,尝试使用XTAL32。
嗨MT_dialog
#定义CFG_EXT_SLEEP# undef CFG_DEEP_SLEEP这在上述两种睡眠模式下都会发生吗?
有什么区别:/// Sleep Duration定时唤醒时长#定义最大睡眠时间周期唤醒0x0320//0.5s/// Sleep Duration外部唤醒模式下的值#define MAX_SLEEP_DURATION_EXTERNAL_WAKEUP 0x3E80 //10s
我能定义的最大值是多少?
谢谢,安东尼
嗨,安东尼,
您不需要更改这些参数。如果在停止发布之前调用app_ble_ext_wakeup_on(),则10秒轮询计时器将消失。
谢谢您的回复!
基于相同设计样例代码的另一个问题:我监控初始运行电流,这意味着上电,需要5秒多的电流,然后降低到正常运行电流。我可以缩短时间吗?
1.如何通过固件控制进程重新启动DA14580 ?
从数据表中,SYS_CTRL_REG中的SW_RESET可能是一个解决方案,但是,处理器'down'后,我设置它为0x1,我认为它太容易控制处理器平稳重启。请提供更多关于如何通过固件控制重启进程的信息。
2.我可以在线修改BD_ADDR吗?这意味着我提供了一个用户界面,通过用户输入接收新的BD_ADDR,最后,我将新数据复制到dev_bdaddr.addr[]。但是,我不知道如何使它适用于新的广告。
您可以使用platform_reset()进行尝试。
关于动态更改bd地址,你可以看看这篇文章http://support.dialog-semiconductor.com/how-change-bd-address-dynamically
我尝试了platform_reset()与参数0 / 1 / -1,DA14580不重启,它看起来像SW_RESET,只停止进程。像硬件复位操作一样很难执行。
你想要实现什么,平台重启,芯片重启,引导加载程序运行,以找到一个外部设备来引导。
嗨yuhua64,
你的意思是你已经停止了广告活动,但设备每10秒就会醒来做一些事情,而你拥有的唯一功能就是一个60秒后按下的计时器?如果BLE在很长一段时间内不做任何事情,它会在10秒内自动醒来,以便调整时钟,然后再次睡着。这是系统所需要的,我不认为它可以被禁用。
由于MT_dialog
谢谢你的回复。
是的,你明白我的意思了。
同时,我启动一个计时器,并在stop_adv_func()之后60秒设置值,它过期了,花了333秒。假设设备在睡眠模式下保持较慢的操作频率。它是好的。我们可以接受。
关于你的回答:“如果BLE长时间不做任何事情,它会在10秒内自己醒来,以便调整时钟,然后再次睡着。这是系统所需要的东西”,我能理解,如果需要,它能设置得更长吗?
你用的是XTAL32还是内部的?如果你使用内部定时器,如果设备休眠超过4秒而没有被唤醒,定时器将不准确。
嗨yuhua64,
尝试通过改变arch.c中MAX_SLEEP_DURATION_EXTERNAL_WAKEUP的定义来改变唤醒的周期。糟糕的时机可能是由于事实,系统是与RC振荡器工作的Joacimwe说,尝试使用XTAL32。
由于MT_dialog
嗨MT_dialog
#定义CFG_EXT_SLEEP
# undef CFG_DEEP_SLEEP
这在上述两种睡眠模式下都会发生吗?
有什么区别:
/// Sleep Duration定时唤醒时长
#定义最大睡眠时间周期唤醒0x0320//0.5s
/// Sleep Duration外部唤醒模式下的值
#define MAX_SLEEP_DURATION_EXTERNAL_WAKEUP 0x3E80 //10s
我能定义的最大值是多少?
谢谢,
安东尼
嗨,安东尼,
您不需要更改这些参数。如果在停止发布之前调用app_ble_ext_wakeup_on(),则10秒轮询计时器将消失。
你好,
谢谢您的回复!
基于相同设计样例代码的另一个问题:我监控初始运行电流,这意味着上电,需要5秒多的电流,然后降低到正常运行电流。我可以缩短时间吗?
你好,
1.如何通过固件控制进程重新启动DA14580 ?
从数据表中,SYS_CTRL_REG中的SW_RESET可能是一个解决方案,但是,处理器'down'后,我设置它为0x1,我认为它太容易控制处理器平稳重启。
请提供更多关于如何通过固件控制重启进程的信息。
2.我可以在线修改BD_ADDR吗?这意味着我提供了一个用户界面,通过用户输入接收新的BD_ADDR,最后,我将新数据复制到dev_bdaddr.addr[]。但是,我不知道如何使它适用于新的广告。
嗨yuhua64,
您可以使用platform_reset()进行尝试。
关于动态更改bd地址,你可以看看这篇文章http://support.dialog-semiconductor.com/how-change-bd-address-dynamically
由于MT_dialog
你好,
我尝试了platform_reset()与参数0 / 1 / -1,DA14580不重启,它看起来像SW_RESET,只停止进程。像硬件复位操作一样很难执行。
嗨yuhua64,
你想要实现什么,平台重启,芯片重启,引导加载程序运行,以找到一个外部设备来引导。
由于MT_dialog