完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我在D0WDQ6芯片上使用ESP32-WROOM-32模块。 当通过TCP通过Wi-Fi以10kB/s(每100ms1kb)的速度将数据发送到网络时,我使用省电模式而不是PS_NONE来降低功耗。
在有源模式(如果PS_NONE)下,电流消耗稳定在约144mA。 然而,使用PS_MIN和PS_MAX,起初观察到平均高功耗,其具有在一段时间后独立切换到20-40mA的期望值的能力(我附加了电流电平的任意切换的时刻的图像)。 但是,也有可能这种自动切换不会发生。 我对模块在具有不同电流消耗的状态之间自动切换的机制感兴趣。 我想知道如何禁用这种机制,以便在PS_MIN或PS_MAX模式下有一个稳定的低水平的电流消耗(任何在20-40mA内)? |
|
相关推荐
2个回答
|
|
这种省电模式是基于 IEEE 802.11 节能模式的标准协议进行实现的,如果禁用这种机制则无法开启 Wi-Fi 低功耗,在有数据通信情况下设备平均电流也无法做法 20 ~ 40mA
|
|
|
|
要在ESP32上实现Wi-Fi操作期间自动切换电流消耗水平,您可以按照以下步骤操作:
1. 首先,确保您已经正确配置了ESP32模块的电源管理设置。在您的代码中,您需要设置Wi-Fi电源管理模式。您可以使用以下函数来设置电源管理模式: ```cpp esp_wifi_set_ps(wifi_ps_type_t); ``` 其中`wifi_ps_type_t`可以是以下值之一: - WIFI_PS_NONE:不使用电源管理,始终保持Wi-Fi模块处于活动状态。 - WIFI_PS_MIN:最低功耗模式,适用于低数据传输速率的场景。 - WIFI_PS_MAX:最大功耗模式,适用于高数据传输速率的场景。 2. 根据您的需求,您可以选择在PS_MIN和PS_MAX之间切换。例如,当数据传输速率较低时,可以使用PS_MIN模式以降低功耗;当数据传输速率较高时,可以使用PS_MAX模式以提高传输速率。 3. 要实现自动切换电流消耗水平,您可以在代码中添加一个定时器,定期检查Wi-Fi模块的当前状态和数据传输速率。根据这些信息,您可以决定是否需要切换电源管理模式。 4. 在定时器回调函数中,您可以使用以下代码来切换电源管理模式: ```cpp if (current_data_rate <= low_data_rate_threshold) { esp_wifi_set_ps(WIFI_PS_MIN); } else if (current_data_rate >= high_data_rate_threshold) { esp_wifi_set_ps(WIFI_PS_MAX); } ``` 其中`current_data_rate`是当前数据传输速率,`low_data_rate_threshold`和`high_data_rate_threshold`分别是低数据传输速率和高数据传输速率的阈值。 5. 要禁用自动切换机制,您可以简单地不设置定时器或不调用`esp_wifi_set_ps()`函数。这样,Wi-Fi模块将始终使用您最初设置的电源管理模式。 6. 最后,确保您的代码正确处理Wi-Fi连接和数据传输。在切换电源管理模式时,可能会影响Wi-Fi连接的稳定性和数据传输速率。因此,在实际应用中,您需要根据具体需求调整电源管理策略。 通过以上步骤,您可以在ESP32上实现Wi-Fi操作期间自动切换电流消耗水平,同时根据您的需求禁用或启用自动切换机制。 |
|
|
|
只有小组成员才能发言,加入小组>>
1143 浏览 1 评论
578浏览 6评论
479浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
463浏览 5评论
464浏览 4评论
440浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 04:17 , Processed in 1.632275 second(s), Total 81, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号