int-app_-connection_功能我启动了一个计时器5秒以启用扩展睡眠模式,但我看到电流消耗从500uA减少到100uA,而不是2uA。
因此,是否有可能使da14850在连接间隔之间休眠。
密码
在app_connection_func
/ /调用计时器
ke_timer_set (FLIP_MAIN_TIMER TASK_APP 500);
/ /定时器处理程序
Int flip_main_timer_handler(ke_msg_id_t const msgid,
无效常量*参数,
KEU task\u id\u t const dest\u id,
ke_任务id_t常量src_id)
{
应用程序设置扩展睡眠();
返回(已消耗的热量);
}
这将产生100uA的电流,我可以将其降低到30UA或5uA吗
我正在使用SDK 3.0.8
谢谢
Mohit
你好,莫希特,你是如何测量电流的?请注意,如果您在smart snippets(专家/PRO板上)中使用电源供应器,测量电路的偏移电流很高。从下面的示例中,您可以看到设备在连接事件后进入延长睡眠状态,尽管波形没有下降到零:这是开发板上放大器ADC测量的偏移量。要测量uA水平,您确实需要AN-B-015中所述的高分辨率DMM。
BR JE_对话
我用数字万用表测量电流,它显示平均电流。我使用的是PAN1740 usb加密狗。
以下是我做的实验:-
1.当设备正在播放广告时,5秒后我切换到ext睡眠模式,电流消耗为5uA到2uA。
//计时器处理程序中的代码
app_adv_stop ()
应用程序设置扩展睡眠();
2.设备连接后,5秒后,我切换到ext睡眠模式电流消耗为100uA,我知道这不能抵消电流,因为我在案例1中已达到5uA.
//计时器处理程序中的代码
应用程序设置扩展睡眠();
我的问题是,在连接状态下,即使启用了睡眠模式,外围设备也会与手机通信,而不会进入睡眠模式
我没有使用键盘项目,我已经修改了模板项目进行测试
谢谢
Mohit
你好,Mohit,谢谢:在连接状态下,手机设置的连接间隔是多少?你在测量平均电流。。。
考虑一个平均连接事件大约需要5uC…如果你的连接间隔是100mS,那么你将在连接事件上消耗每秒50uC(忽略少量睡眠能量):这相当于在连接事件上消耗每秒50uA。如果它是1秒的连接间隔,那么它将降为平均5uA....
BR JE_对话
目前,我的连接间隔约为45毫秒,但由于中央设备决定了连接间隔,因此可以始终获得1秒的连接间隔。
另外,为了测量连接间隔,我在rwble.c文件的BLE_EVENT_处理程序中添加了SysTick定时器代码,是当前位置,还是必须将其放置在其他位置?
你好,莫希特,在45毫秒的内部连接时,这可以解释100uA的平均电流。
外围设备可以向处于连接状态的主机请求新的连接参数。这可以使用gapc_param_update_cmd函数完成。这就是14580上的从设备如何从主设备请求新的连接参数,因此,您可以请求更长的连接间隔。
SYSTICK在DA14580中实现,如Cortex M0用户指南所述,可从ARM网站获得。寄存器相同(0xE000E010-0xE000E01F)。
请注意,当DA14580进入睡眠状态时,SYSTICK计数器停止-因此它不适合测量连接间隔。
BR JE_对话
我需要一个精确的计时器来测量心率传感器的rr间隔。正如你所说SYSTICK在睡眠模式下停止,建议我使用另一个计时器(猜测timer0也在睡眠模式下停止)
另外,我还有一个关于睡眠模式配置的疑问,当我在广告模式下执行app_set_extended_sleep()和app_ble_ext_wakeup_on()时,当前消耗量减少到5 uA,设备在获得外部中断之前不会广告。
如果我在连接状态下执行ext app_set_extended_sleep()和app_ext_wakeup_on(),这意味着它应该只在ext中断时唤醒,但它也会在ble core给出的中断时唤醒,有什么解释吗?
您好mohit,您需要的计时器功能有多精确?
我对conenction状态下的设置的理解是不同的:它将与BLE核心同步唤醒,因为这取决于与中央设备相关的连接参数。
BR JE_对话
我需要毫秒精度的计时器,如果可能的话是微秒,因为在睡眠模式下计时器不可用,我们在rr间隔计算中面临精度损失的问题。有没有办法在定时器0开启时启用睡眠模式,我使用了lld_evt_time_get(),有时它给出零,有时它给出实际值,另一种可能的解决方案是使用ke_定时器,但它给出了10ms的精度。
你好,莫希特3112
对不起,但是当da进入睡眠模式时,你不能使用芯片的HW定时器。唯一的方法是使用一个10ms的ke_timer。
谢谢你的对话
您好,我想知道“lld_sleep_enter(睡眠周期、rwip_环境外部唤醒启用)”的功能是什么?
嗨,杰特良,
这是指示系统进入睡眠的函数,它得到的参数是sleep_duration——在多少周期后它将被唤醒,ext_wakeup是如果外部中断被启用或未启用(意思是如果它将为某些外部中断唤醒)。
谢谢你的对话