DA14580
基本开发套件
SDK 5.0.3.
Hello again Dialog --
我们正在继续开发基于BLE_APP_PHERIANTAL示例的电池供电的BLE设备。我已经设置到延长睡眠并使用App_easy_Timer回调以1秒钟间隔唤醒外设,以示出传感器数据并存储ADC读数。当我唤醒外围设备时,我不会唤醒BLE功能....并且不希望最小化电池电量。传感器读数后,我想返回延长睡眠,直到下一个传感器读取间隔。这一切都在功能上工作,但最近的功率分析表明,在唤醒到记录样本后,我不会重新进入完全扩展的睡眠模式。我希望使用扩展的睡眠模式配置,这将发生在主循环中,但这似乎不会发生这种情况。我在传感器采样例程的末尾放置了Arch_ble_ext_WakeUp_On(),但它似乎也不会将我恢复为完全扩展的睡眠模式。
我尝试执行相同的代码而不唤醒外围设备和采样传感器数据,并确认实现了延长的睡眠。
我需要做些什么来返回低扩展睡眠模式电源?
再次感谢,最大
设备:
嗨max44,
The 580 will automatically fall to sleep if there is no BLE operation, the kernel timers need the BLE core to be operational in order to wake up, so the timers will wake up the BLE core automatically when its time for the timer to be triggered, after that you should take your measurements and the 580 will fall back to sleep and will shut down the peripherals. The 580 will go through the main loop in order to execute the handler of the timer since the function that schedules the messages is located in the main loop. Now regarding that your device doesn't sleep are you sure that this is the case ? are you invoking the arch_disable_sleep() when measuring ? Have you checked with power profiler on a pro board in order to make sure that your device doens't sleep?
谢谢mt_dialog.
公吨,
谢谢(你的)信息。我们建立了电流的克隆到电压转换电路,以便我们手上有类似的部件。我们看到的基线电流在已知的延长睡眠模式中肯定远低于我们在外围样本之间看到的。
为了提供更详细的详细信息,请执行测试:程序初始化并开始正常的BLE操作(与BLE_APP_PERIZEAL示例相同)。开发调试和UART配置为OFF,配置了扩展休眠模式。我经常通过keil加载到退出调试器的RAM来运行该程序。我也通过从EEPROM引导来运行。延迟10秒后,我调用延长睡眠并启动1秒计时器。在一个第二个定时器回调中,我使用periph_init()函数来打开外围设备。我不打电话给arch_disable_sleep()。然后,我运行几个ADC样本,将结果存储在RAM阵列中。在发起EEPROM页面写入之前,我在EEPROM数据中累计256字节页面。这将每64秒发生一次。 At the end of the one second sample routine I release the EEPROM, return the pads to the power on state, restart the 1 second timer, call arch_ble_ext_wakeup_on(), then exit. This repeats endlessly looping through sections of the EEPROM to see how long the battery lasts.
所以.....我有一个这个程序的版本,只是进入延长的睡眠,然后是一个无限循环,而不运行上面的外设样本来验证延长睡眠。回想一下,在BLE广告完成后,您就会为我提供建议,它完美地工作。电源分布器显示低电流,我们在我们的设计中测量了这左右2 UA。
throu运行版本的程序gh the ADC samples once a second does not show the same low current between 1 second samples as when we stop in extended sleep mode.
我正处于起草第二个测试设置的中间,并将验证所有这些测试。同时,如果您看到任何内容,请告诉我,我在上面看不太正确。
谢谢,最大
嗨max44,
As far as i can understand from your description i dont see something that will cause the cancelation of the sleep mode, can you please attach a power profiler snapshot to check the current consumption ? Are you certain that the increased power consumption you see is the 580 and not any of the other component which is powered up and consume energy ?
谢谢mt_dialog.
公吨,
一个很好的观点。让我在外部组件的状态下仔细看,看看我是否可以关闭一些东西以验证额外的电力拉伸是否来自于此。我们期待一些额外的当前,但以为这将是最小的。我会报告。
问候,最大
公吨,
你是对的。我终于跟踪了在ADC示例例程中配置GPIO输出的问题,以配置GPIO输出作为范围触发器。引脚具有外部上拉,导致GPIO在非活动状态时将GPIO沉入300UA,默认状态。我的错,我羞于承认。:(
但是,我重视您对操作的审查。这是良好的确认我们可以预期在定期ADC样本后掉回延长睡眠模式,我现在在纠正违规GPIO之后看到。一切都运行良好,我们处于调谐电源和测量电池寿命的阶段。
考虑这解决了。再次感谢良好的支持。
最大限度
嗨max44,
谢谢你让我们知道,很高兴我可以帮忙。
Best Regards MT_dialog