你好,
我们在“DA14580\U 3.40.6”参考设计的基础上做了一些修改,为了检查功耗,首先,我们停止了广告,它是工作的,但是,我可以在大约10秒的时间内读取周期性的电流波形,这意味着设备本身一直处于活动状态。所有我创建的计时器,我们没有开始任何计时器计数10秒,除了一个60秒。但是,我们需要避免这种状态发生,我如何才能阻止它,或使它更长?
你好,雨花64,
你的意思是你已经停止了广告活动,但是设备每10秒就会唤醒一次,而你唯一拥有的功能就是60秒后启动的计时器?如果BLE长时间不做任何事情,它会在10秒内自行醒来,以便调整时钟并再次入睡。这是系统需要的东西,我不认为它可以被禁用。
谢谢你的对话
谢谢你的回复。
是的,你明白我的意思。同时,我启动一个计时器,在stop\u adv\u func()60秒后设置值,它过期了,用了333秒。假设设备在睡眠模式下保持较低的工作频率。没关系。我们可以接受。关于你的回答“如果BLE长时间不做任何事情,它会在10秒内自行醒来,以便调整时钟并再次入睡。这是系统需要的东西”,我可以理解,如果需要的话,可以设置更长的时间吗?
你用的是XTAL32还是内部的?如果使用内置计时器,如果设备睡眠时间超过4秒而没有醒来,计时器将不准确。
尝试通过更改arch.c中的定义MAX\u SLEEP\u DURATION\u EXTERNAL\u WAKEUP来更改唤醒周期。错误的时间可能是由于系统正在使用RC振荡器,正如Joacimwe所说的那样,尝试使用XTAL32。
Hi MT\u对话框
#定义CFG\u EXT\u SLEEP#深度睡眠在上述两种睡眠模式下都会发生这种情况吗?
有什么区别:///周期唤醒模式下的睡眠持续时间值#定义x0320 MAX_SLEEP_DURATION_PERIODIC_WAKEUP 0// 0.5s///外部唤醒模式下的睡眠持续时间值#定义最大睡眠时间\u外部唤醒0x3E80//10s
我能定义的最大值是多少?
谢谢,安东尼
嗨,安东尼,
您不必更改这些参数。如果在停止广告前调用app\u ble\u ext\u wakeup\u on(),10秒的轮询计时器将消失。
谢谢你的回复!
另一个问题基于同一个设计示例代码:我监测初始工作电流,这意味着通电,它需要5秒以上的电流,然后减少到正常工作电流。我可以缩短时间吗?
1如何通过固件控制过程重新启动DA14580?
从数据表来看,SYS\u CTRL\u REG中的SW\u RESET可能是一个解决方案,但是,在我将其设置为0x1之后,处理器“关闭”,我认为太容易控制处理器顺利重启。请提供更多信息,说明如何通过固件控制重启过程。
2我可以在线修改BD\ U地址吗?这意味着我提供了一个用户界面,通过用户输入接收新的BD\u ADDR,最后,我将新数据复制到dev_地址[]. 但是,我不知道如何使它对新的广告有效。
您可以使用平台\ u reset()进行尝试。
关于动态改变bd地址,你可以看看这篇文章http://support.dialog-semiconductor.com/how-change-bd-address-dynamicy
我用参数0/1/-1尝试了platform\u reset(),DA14580没有重启,看起来像SW\u reset,只停止进程。很难像硬件复位动作那样执行。
在平台重置的情况下,芯片重新启动,引导加载程序运行,以便找到要引导的外部设备,您想要实现什么。
你好,雨花64,
你的意思是你已经停止了广告活动,但是设备每10秒就会唤醒一次,而你唯一拥有的功能就是60秒后启动的计时器?如果BLE长时间不做任何事情,它会在10秒内自行醒来,以便调整时钟并再次入睡。这是系统需要的东西,我不认为它可以被禁用。
谢谢你的对话
谢谢你的回复。
是的,你明白我的意思。
同时,我启动一个计时器,在stop\u adv\u func()60秒后设置值,它过期了,用了333秒。假设设备在睡眠模式下保持较低的工作频率。没关系。我们可以接受。
关于你的回答“如果BLE长时间不做任何事情,它会在10秒内自行醒来,以便调整时钟并再次入睡。这是系统需要的东西”,我可以理解,如果需要的话,可以设置更长的时间吗?
你用的是XTAL32还是内部的?如果使用内置计时器,如果设备睡眠时间超过4秒而没有醒来,计时器将不准确。
你好,雨花64,
尝试通过更改arch.c中的定义MAX\u SLEEP\u DURATION\u EXTERNAL\u WAKEUP来更改唤醒周期。错误的时间可能是由于系统正在使用RC振荡器,正如Joacimwe所说的那样,尝试使用XTAL32。
谢谢你的对话
Hi MT\u对话框
#定义CFG\u EXT\u SLEEP
#深度睡眠
在上述两种睡眠模式下都会发生这种情况吗?
有什么区别:
///周期唤醒模式下的睡眠持续时间值
#定义x0320 MAX_SLEEP_DURATION_PERIODIC_WAKEUP 0// 0.5s
///外部唤醒模式下的睡眠持续时间值
#定义最大睡眠时间\u外部唤醒0x3E80//10s
我能定义的最大值是多少?
谢谢,
安东尼
嗨,安东尼,
您不必更改这些参数。如果在停止广告前调用app\u ble\u ext\u wakeup\u on(),10秒的轮询计时器将消失。
你好,
谢谢你的回复!
另一个问题基于同一个设计示例代码:我监测初始工作电流,这意味着通电,它需要5秒以上的电流,然后减少到正常工作电流。我可以缩短时间吗?
你好,
1如何通过固件控制过程重新启动DA14580?
从数据表来看,SYS\u CTRL\u REG中的SW\u RESET可能是一个解决方案,但是,在我将其设置为0x1之后,处理器“关闭”,我认为太容易控制处理器顺利重启。
请提供更多信息,说明如何通过固件控制重启过程。
2我可以在线修改BD\ U地址吗?这意味着我提供了一个用户界面,通过用户输入接收新的BD\u ADDR,最后,我将新数据复制到dev_地址[]. 但是,我不知道如何使它对新的广告有效。
你好,雨花64,
您可以使用平台\ u reset()进行尝试。
关于动态改变bd地址,你可以看看这篇文章http://support.dialog-semiconductor.com/how-change-bd-address-dynamicy
谢谢你的对话
你好,
我用参数0/1/-1尝试了platform\u reset(),DA14580没有重启,看起来像SW\u reset,只停止进程。很难像硬件复位动作那样执行。
你好,雨花64,
在平台重置的情况下,芯片重新启动,引导加载程序运行,以便找到要引导的外部设备,您想要实现什么。
谢谢你的对话