你好,
我们做了一些修改基于“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在上述两种睡眠模式下会发生这种情况吗?
区别是什么:///睡眠时长定时唤醒模式下的睡眠时长#define MAX_SLEEP_DURATION_PERIODIC_WAKEUP 0x0320 // 0.5s///外部唤醒的睡眠时长#define MAX_SLEEP_DURATION_EXTERNAL_WAKEUP 0x3E80 //10s
我能定义的最大值是多少?
谢谢,安东尼
嗨,安东尼,
你不应该改变这些参数。如果在停止发布之前调用app_ble_ext_wakeup_on(),那么10秒的轮询计时器将消失。
谢谢你的回复!
另一个问题基于相同的设计样本代码:我监控初始操作电流,这意味着上电,它需要5秒多电流,然后减少到正常操作电流。我可以缩短时间吗?
1.如何通过固件控制进程重启DA14580 ?
从数据表来看,SYS_CTRL_REG中的SW_RESET可能是一个解决方案,但是,当我将其设置为0x1后,处理器'down',我认为它太容易平滑地控制处理器重启。请提供更多的信息如何通过固件控制重启进程。
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
在上述两种睡眠模式下会发生这种情况吗?
区别是什么:
///睡眠时长定时唤醒模式下的睡眠时长
#define MAX_SLEEP_DURATION_PERIODIC_WAKEUP 0x0320 // 0.5s
///外部唤醒的睡眠时长
#define MAX_SLEEP_DURATION_EXTERNAL_WAKEUP 0x3E80 //10s
我能定义的最大值是多少?
谢谢,
安东尼
嗨,安东尼,
你不应该改变这些参数。如果在停止发布之前调用app_ble_ext_wakeup_on(),那么10秒的轮询计时器将消失。
你好,
谢谢你的回复!
另一个问题基于相同的设计样本代码:我监控初始操作电流,这意味着上电,它需要5秒多电流,然后减少到正常操作电流。我可以缩短时间吗?
你好,
1.如何通过固件控制进程重启DA14580 ?
从数据表来看,SYS_CTRL_REG中的SW_RESET可能是一个解决方案,但是,当我将其设置为0x1后,处理器'down',我认为它太容易平滑地控制处理器重启。
请提供更多的信息如何通过固件控制重启进程。
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