关于8266 light sleep 的能耗问题。我已经看过论坛上的相关讨论了,也进行了修改,但是能耗还是达不到官方手册上的指标

greenu
Posts: 4
Joined: Wed Jan 04, 2017 7:12 pm

关于8266 light sleep 的能耗问题。我已经看过论坛上的相关讨论了,也进行了修改,但是能耗还是达不到官方手册上的指标

Postby greenu » Wed Jan 04, 2017 7:53 pm

您好,我这边有一块esp8266的开发板,我测试了一下连接wifi的时候进入light sleep模式的功耗:当我强制让它进入light sleep模式的时候,是可以达到官方文档的指标的,都在1mA以下,但是这个时候是要断开wifi的,不满足项目需求;如果是让它自动进入light sleep模式,那电流一般都在7mA到20mA之间,有时候能到1mA以下,但是马上又上来了,有时候会到70+mA,这个时候应该是被唤醒了,最高甚至会到100+mA。我使用的固件是nonos-sdk-2.0.0 ,代码如下:

Code: Select all

void user_esp_platform_check_ip(void)
{
   struct ip_info ipconfig;
   
   os_timer_disarm(&g_check_ip_timer);

   wifi_station_set_hostname("8266_test");
   wifi_get_ip_info(STATION_IF, &ipconfig);

   if (wifi_station_get_connect_status() == STATION_GOT_IP
      && ipconfig.ip.addr != 0)
   {
      
      os_printf("got ip\r\n");

      //set sleep type
      if (wifi_set_sleep_type(LIGHT_SLEEP_T))
         os_printf("sleep success\r\n");
      else
         os_printf("sleep fail\r\n");
   }
   else
   {
      if (wifi_station_get_connect_status() == STATION_WRONG_PASSWORD ||
         wifi_station_get_connect_status() == STATION_NO_AP_FOUND ||
         wifi_station_get_connect_status() == STATION_CONNECT_FAIL)
      {
         os_printf("connect fail\r\n");
      }
      else
      {
         os_timer_setfn(&g_check_ip_timer, (os_timer_func_t*)user_esp_platform_check_ip, NULL);
         os_timer_arm(&g_check_ip_timer, 200, 0);
      }
      
   }
}


void wifi_config(void)
{
   char ssid[32] = "******";
   char password[64] = "******";
   struct station_config station_cfg = {0};

   os_printf("wifi config\r\n");

   os_memcpy(&station_cfg.ssid, ssid, 32);
   os_memcpy(&station_cfg.password, password, 64);
   wifi_station_set_config(&station_cfg);

   os_timer_disarm(&g_check_ip_timer);
   os_timer_setfn(&g_check_ip_timer, (os_timer_func_t*)user_esp_platform_check_ip, NULL);
   os_timer_arm(&g_check_ip_timer, 200, 0);
}

void user_init(void)
{
   uart_init(115200, 115200);
   wifi_set_opmode(STATION_MODE);
   wifi_config();
}


这段代码我是根据论坛里的http://bbs.espressif.com/viewtopic.php?f=65&t=2421 这个discuss 进行修改的。
还有一点是我买到的是开发板,但是我想单独测上面的wifi模块的功耗,所以就去掉了底板5V供电,自己用3.3V单独给wifi模块进行供电,模块是能正常工作的,感觉应该影响不大,不过还是提一下。希望有人看到了能尽快给答复啊。。。。谢谢啦。

ESP_Xutao
Posts: 134
Joined: Tue Sep 27, 2016 5:42 pm

Re: 关于8266 light sleep 的能耗问题。我已经看过论坛上的相关讨论了,也进行了修改,但是能耗还是达不到官方手册上的指标

Postby ESP_Xutao » Thu Jan 05, 2017 2:21 pm

你好:
你可以看一下官网上的Light Sleep sample code。https://github.com/espressif/esp8266-nonos-sample-code.git

greenu
Posts: 4
Joined: Wed Jan 04, 2017 7:12 pm

Re: 关于8266 light sleep 的能耗问题。我已经看过论坛上的相关讨论了,也进行了修改,但是能耗还是达不到官方手册上的指标

Postby greenu » Fri Jan 06, 2017 1:18 pm

ESP_Xutao wrote:你好:
你可以看一下官网上的Light Sleep sample code。https://github.com/espressif/esp8266-nonos-sample-code.git


您好,我试了一下示例代码,效果差不多。我看功耗的波形感觉像是没进light sleep,而是进了modem sleep。官方的文档中有说到:
若系统应用中有小于 DTIM Beacon 间隔时间的循环定时,系统将不能进入 Light-sleep 模式。
所以我想问一下,是否系统中有什么其他的定时器在跑?如果有的话是否可以关掉?能关掉的话接口可否说明一下?

Who is online

Users browsing this forum: No registered users and 60 guests