在接收模式下使用UART调用sleep

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标记。
6个职位/ 0个新职位
最后发表
Max44
离线
最后看到:10个月2周之前
加入:2016-02-08等等
在接收模式下使用UART调用sleep

我正在实地测试一个定制板与DA14580和一个外部MCU管理传感器。当连接(在我的情况下连接到Android平板电脑)时,外部MCU通过UART每秒向DA14580发送一次传感器数据。断开连接后,我将调用由外部MCU切换的GPIO引脚上等待唤醒的扩展睡眠模式。从功能上来说,这工作得很好,但是当我们应该处于睡眠模式时,我们并没有看到预期的低功耗。我想确保当平板电脑断开连接时,UART坐在那里处于接收模式,不会阻止长时间睡眠发生。
我看了UART驱动程序,我没有看到一个功能取消接收或关闭UART。如果您能给我一些建议,我将不胜感激。
谢谢你,马克斯

设备:
PM_Dialog
离线
最后看到:2天12小时前
工作人员
加入:2018-02-08 11:03
嗨Max44,

嗨Max44,

你能告诉我自从设备进入延长睡眠模式后你的耗电量是多少吗?另外,你能解释一下设备是否进入了长时间睡眠状态吗?如果DA14580进入休眠状态,出现意外功耗的最可能原因是您的定制板可能出现电源泄漏。我不明白你的意思“我想确保当平板电脑断开连接时,UART处于接收模式,不会阻止长时间睡眠。请你解释一下你的问题好吗?请注意,由于设备进入了扩展睡眠状态,包括UART在内的所有外设块都关闭了电源。

谢谢,PM_Dialog

Max44
离线
最后看到:10个月2周之前
加入:2016-02-08等等
点,

点,

谢谢你的回复。抱歉,我试图保持它简单,而不是让您负担与系统操作无关的细节。而且我确实意识到功耗可能来自定制板的其他地方。我只是想排除可能性。当DA14580和外部MCU应该处于低功耗状态时,我们将看到大约1.5 mA的电流。我们期待一个更低的电流,不幸的是,我没有连接器隔离模块功率分析自定义板。

当tablet断开连接时,在user_app_disconnect中我调用arch_set_extended_sleep()和app_easy_wakeup_set。此时,uart2_read(uint8_t *bufptr, uint32_t size, void (*callback) (uint8_t))正在等待来自外部微控制器的数据包。

从你上面所说的来看,设置延长睡眠时间似乎会关闭UART。那是正确的吗?不管uart2_read状态如何,这都会发生吗?

谢谢你,马克斯

PM_Dialog
离线
最后看到:2天12小时前
工作人员
加入:2018-02-08 11:03
嗨Max44,

嗨Max44,

请试着检查您的定制PCB,并检查增加的功耗是否来自您的板。最可能的原因是你的主板有漏洞。正如我从你的帖子中看到的,设备进入了延长睡眠状态。如果我能正确理解,因为设备是断开的,你让它长时间睡眠,然后你试图通过UART发送数据唤醒它?我理解对了吗?

谢谢,PM_Dialog

Max44
离线
最后看到:10个月2周之前
加入:2016-02-08等等
不,我要叫醒DA14580

不,我用外部MCU的GPIO开关唤醒DA14580,它的作用就像一个按钮按钮。然后uart2作为唤醒期间调用的外围init()例程的一部分被初始化。正如我所说的,这在功能上工作得很好。

从我们的讨论中,我将假设延长睡眠时间会关闭UART,并如您建议的那样,检查板子上的其他地方。

谢谢你,马克斯

PM_Dialog
离线
最后看到:2天12小时前
工作人员
加入:2018-02-08 11:03
嗨Max44,

嗨Max44,

由于您的设备进入延长睡眠模式,所有外设模块都关闭。对于DA14580 datasheet,除PD_AON、程序化PD_RRx和PD_SR外,所有电源域都关闭。请查看数据表以获得关于睡眠模式的更多信息。

谢谢,PM_Dialog