我用最小系统测试蓝牙睡眠功耗。
1 # define CFG_INTEGRATED_HOST_GTL进入睡眠功耗是460多uA。
2 # undef CFG_INTEGRATED_HOST_GTL进入睡眠功耗是1.8 ua(正常)。
当不是最小系统的时候,
1,如果我定义了#定义CFG_INTEGRATED_HOST_GTL,配置睡眠,外设驱动正常,蓝牙信号和连接正常。
2,如果我定义了# undef CFG_INTEGRATED_HOST_GTL,配置睡眠,外设可以驱动,蓝牙信号和连接不正常。明显的延迟和卡盾现象。连接不上的概率很大。
2,如果我定义了# undef CFG_INTEGRATED_HOST_GTL,不配置睡眠,外设驱动正常,蓝牙信号和连接正常。
问题:1、为什么# define CFG_INTEGRATED_HOST_GTL进入睡眠功耗这么大的变化。怎样降低功耗
2,如果# undef CFG_INTEGRATED_HOST_GTL是不是系统不能驱动外设(i2c, spi等),只能作为蓝颜模块。(在不驱动外设的情况下,通信是稳定的)
谢谢!
设备:
1.首先问一下你用的哪个工程在做测试的?
2 .关于问题2,这个宏和驱动外设没关系,只是把原来应用层的代码独立出来,通过uart接口,让TASK_GTL和TASK_APP进行通信
您好!
我用附件里面的工程测试最小系统下的功耗,在定义了宏CFG_INTEGRATED_HOST_GTL之后功耗是464 ua,不定义这个宏的ua是1.8
您帮我看一下这里有什么问题。谢谢版本是3.0.6的
这个工程时测试测试读取i2c的时候,不定义CFG_EXT_SLEEP,定义CFG_INTEGRATED_HOST_GTL与否都正常,
但是定义CFG_EXT_SLEEP定义CFG_INTEGRATED_HOST_GTL工作正常,睡眠功耗不正常
不定义CFG_INTEGRATED_HOST_GTL工作不正常,通信明显延迟(卡)睡眠功耗正常,唤醒时功能不正常。
如果我改arch_main.c主要函数里的为(756 - 766行)
/ / #如果(EXT_SLEEP_ENABLED)
/ / app_set_extended_sleep ();
/ / # elif (DEEP_SLEEP_ENABLED)
/ / app_set_deep_sleep ();
/ / #其他
/ / app_disable_sleep ();
/ / # endif
app_disable_sleep ();
功能正常 ,睡眠功能功耗也正常 ,但工作电流比不改的时候大很多
我拿你那份sleep_test,无论是否开CFG_INTEGRATED_HOST_GTL, smartsnippets显示都是大概2个马多。
所以我直接拿3.0.6的原始throughput_eval_peripheral_fh工程来做测试,把CFG_EXT_SLEEP宏打开,定义和不定义CFG_INTEGRATED_HOST_GTL宏的两种情况见附件。确实电流都有偏大的情况。具体的原因我们还需要再看一下
Gongyu_Dialog非常感谢!,我还是有疑问,情况如下:
function-sleep-test.zip工程里面我要驱动i2c设备
如果我改arch_main.c主要函数里的为(756 - 766行)
/ / #如果(EXT_SLEEP_ENABLED)
/ / app_set_extended_sleep ();
/ / # elif (DEEP_SLEEP_ENABLED)
/ / app_set_deep_sleep ();
/ / #其他
/ / app_disable_sleep ();
/ / # endif
app_disable_sleep ();
就可以正常工作(电流520 ua),不改的话就连不上蓝牙(110 ua),不能正常工作
如果驱动i2c接口,只蓝牙收发的,不改也没问题,工作的时候间断睡眠,电流也比较小
这种情况是什么原因造成的?
在上面代码的情况下,工作电流(520 ua)正常吗,(外设基本不耗电10 ua级别的,一个i2c加速度设备(lis3dh)),这个工作电流是不是太大了,
因为不驱动2 c加速度设备和代码为:
#如果(EXT_SLEEP_ENABLED)
app_set_extended_sleep ();
# elif (DEEP_SLEEP_ENABLED)
app_set_deep_sleep ();
其他#
app_disable_sleep ();
# endif
/ / app_disable_sleep ();
这样的情况下时候电流才80多uA,连接上才110多uA,我这种情况电流怎么才能降下来。
谢谢!
我用你的工程,我只修改了一个按键GPIO,方便在演示板上测试。因为广播只会持续一段时间,然后就不发广播进睡眠了。除非用按键唤醒。
我只要在广播发送的这个时间段,去连就能连接上。