我们在自制的最小系统板(SDK v1.0.6.968)上使用ble_adv项目来研究低能量函数。
我们有如下设置:
pm_set_sleep_mode (pm_mode_extended_sleep);
缺省情况下,发布间隔为687.5ms。
在测试中,我们有两项读数,这在官方文件中很重要:
1、有功电流为2ma从开始到8s。
电流在8秒后下降到600 ua。
我的问题是:
读数1的2ma电流正常吗?
正如AN-B-037 DA1468x Power measurements_1.3中所指出的,1000ms间隔广告的平均电流大约是20.3713 ua,但是我的读数#2接近600ua。你认为原因是什么?(我们使用的是最小系统,没有其他外围设备。)
设备:
嗨auzzz,
在前8秒,设备一直处于激活状态(广告间隔之间没有睡眠),因为这8秒是XTAL32稳定的最大时间,所以预计会有相当大的功耗。
关于你的第二次测量,我可以用ble_adv项目在我的板上验证大约20uA,使用Smart Snippets工具在1000毫秒内修改了广告间隔,大约35uA在687ms广告间隔。关于你的测量和600uA,你看到我不能复制那个值,你确定使用的间隔是1000ms,我可以看到大约600uA,当设备每20到30毫秒广告。除此之外,这个偏移可能是由于一些电流泄漏,从您正在使用的板子。我不认为有任何sw配置可以导致这个数量的当前消费时,睡眠是启用的。
由于MT_dialog
嗨MT_dialog,
泄漏电流的证实。
谢谢你!
我们使用一个带有4.7K上拉电阻的I2C外设,在睡眠模式下会产生泄漏电流。
我必须重新配置I/O设置为浮动之前进入睡眠模式?如果是,我需要在BLE_ADV项目中修改哪一部分?
谢谢
嗨auzzz,
当进入睡眠状态时,引脚将被锁定到当前配置(进入睡眠模式之前的配置),当您醒来时,您将在外围init()函数中重新配置它们(该函数在pm_system_init()函数中用作参数)。那么用于I2C接口的特定引脚上的配置是什么?
由于MT_dialog
我们没有修改SW设置
/*初始化硬件*/
pm_system_init(空);
默认设置是根据文档的下拉设置,而我们使用的I2C外设需要上拉,这就形成了一个循环。配置GPIO管脚功能后,漏电流消失。
感谢您的支持和指导。
我在PWM模式下配置timer0和timer2。
我必须在peripher_init()中配置计时器吗?
嗨Ruslan,
这取决于您想在什么时候激活它们,如果您想让计时器在每次唤醒时运行,是的,您可以在那个函数中配置它们,因为在设备的每次唤醒中都会调用外围init()。
由于MT_dialog