zoukankan      html  css  js  c++  java
  • ESP8266常见问题汇总——转载自官网

    ESP8266 常见问题

    本页面收集esp8266常见问题

    本文档主要介绍开发者在ESP8266开发中常见的一些问题。 这些问题主要包括以下几大类:

    • 基本概念相关
    • ESP8266 相关
    • AiCloud 相关
    • 固件编译调试相关
    • 文档资料相关

    以下是各分类的具体问题和解答。

    • ESP8266是什么?

      ESP8266 是高性能无线 SOC,在较小尺寸封装中集成了业界领先的 Tensilica L106 超低功耗 32 位微型 MCU,带有 16 位精简模式,主频支持 80 MHz 和 160 MHz,支持 RTOS,集成 Wi-Fi MAC/ BB/RF/PA/LNA,板载天线。支持标准的 IEEE802.11 b/g/n 协议,完整的 TCP/IP 协议栈。

    • ESP01, ESP02是什么?

      ESP01~ESP14是由深圳安信可科技研发生产的ESP8266系列模组,在ESP8266芯片的基础上,完善了外围器件布局和优化天线。

    • AiCloud是什么?

      AiCloud 是安信可提供给广大客户的免费服务器,数据全裸,UDP 传输,简单稳定,且含有诸多例程和 PC 端上位机调试工具。

    • 乐鑫与安信可的关系

      乐鑫是ESP8266的芯片厂商,安信可是依据ESP8266生产模组,并提供一系列开发方案的厂家。

    • ESP8266必须要借助服务器才能开发吗?

      这个根据您的需求来定,若您只需要局域网就可以满足产品需求,那么无需服务器,同样可以使用ESP8266进行开发。

    • 如何购买ESP8266模组和测试板?

      安信可官方淘宝店铺:http://shop.ai-thinker.com/

    • 我该选择哪个型号的ESP8266模组?

      模组硬件之间的差异主要是封装区别,以及flash大小的区分,您可以查看ESP8266选型列表,若有疑问,可联系我们的销售人员。

    • 我该选择AT开发还是SDK开发?

        SDK方法:
        优势:让系统成本最少 体积最小 
        劣势:新手需要一个礼拜到半个月的时间去熟悉代码的研读

        AT方法:
        优势:只需要知道几条AT指令即可用外部单片机实现网络通讯!开发速度快。 
        劣势:增加了外置CPU成本

      您可以自已依此评估自己适合哪种方案

    • 我该选择FreeRTOS还是NONOS?

      因为FreeRTOS是后面才开放的,所以一般常用的是NONOS
      若是您之前有开发过FreeRTOS,那么您可以直接使用FreeRTOS方案的SDK,且该方法有利于您之后使用ESP32系列

    • 开发中,遇到问题如何寻求帮助?

      若您是企业用户,我们会专门委派一名工程师负责贵司的对接;
      若您是个人用户,您可以在论坛发帖,或发邮件到support@aithinker.com,我们也会有专门的工程师去处理。

    * 为什么透传会丢包?

    因为没有设置硬件流控。如果需要避免丢包,请设置硬件流控。透传功能使用的是TCP协议,每包数据是1460(取决于协议栈),只要网络良好,buffer空间没有被消耗完,就可以不停地传输数据。对于透传。串口接收的数据间隔超过20ms,就会认为 接受结束,将已经接受的数据传输至网络。如果网络不好,就可能会丢失一些数据,因此,为了避免这种情况,可以将串口设置为流控模式。

    * ESP8266可以同时使用AP+STA吗?

    ESP8266 可以同时使用AP+STA模式(但不能做WiFi放大器)。

    * ESP8266可以进行低功耗吗?

    ESP8266可以进行低功耗。AT指令进行低功耗说明:

     设置睡眠模式,sleep只在单STA模式下生效,默认工作在modem-sleep模式。
     AT+SLEEP=0   0为禁止休眠模式
                  1为light-sleep模式  功耗0.9mA
                  2为modem-sleep模式  功耗15mA

    * 将建立的TCP Server 连接通过AT 指令保存到flash?

    * 如何让ESP8266上电后快速连接AP?

    外设

    *SDIO 是否支持 SD 卡?

      ESP8266 是 SDIO Slave ,不支持 SD 卡。

    *ESP8266 有几个 UART?

      ESP8266 有两个 UART,其中 UARTO 有 TX、RX,可做数据传输;UART1 由于 RX 脚被 SPI-Flash 占用,只能使用 TX,可以做串口调试信息打印。

    *GPIO 可以直接连 5V 吗?

      不可以。GPIO 只能承受 3.6V。需要通过降压电路,否则会造成 GPIO 损坏。

    硬件

    *ESP8266 电压电流需求?

      ESP8266 的数字部分的电压范围是 1.8V ~ 3.3V,模拟部分的工作电压是 3.0V ~ 3.6V,最低 2.7V。

    模拟电源峰值 350 mA,数字电源峰值 200 mA。

    注意:选择的 SPI Flash 工作电压也需要与 GPIO 的电压匹配。CHIP_EN 还是工作在 3.0 - 3.6V,使用1.8V GPIO 控制时需要注意电平转换。

    *设计 ESP8266 的供电时,需要注意哪些问题?

      请注意如下几点:1.如果是使用 LDO 变压,请确保输入电压和输出电压要足够大。2.电源轨去耦电容器必须接近 ESP8266 摆放,等效电阻要足够低。3.ESP8266 不能直连 5V 电压。4.如果是通过 DC-DC 给 ESP8266 供电,必要时要加上 LC 滤波电路。

    *ESP8266 上电时电流很大,是什么原因?

      ESP8266 的 RF 和数字电路具有极高的集成度。上电后,RF 自校准会需要大电流。模拟部分电路最大的极限电路可能达到 500 mA;数字电路部分最大电流 达到 200 mA。一般的操作,平均电流在 100 mA 左右。因此,ESP8266 需要供电能达到 500 mA,能够保证不会有瞬间压降。

    *可以使用锂电池或者 2 节 AA 纽扣电池直接给 ESP8266 供电吗?

      2 节 AA 纽扣电池可以给 ESP8266 供电。锂电池放电时压降比较大,不适合直接给 ESP8266 供电。ESP8266 的 RF 电路会受温度及电压浮动影响。不推荐不加任何校准的电源直接给 ESP8266 供电。推荐使用 DC-DC 或者 LDO 给 ESP8266 供电。

    *ESP8266 的 RAM 的使用结构是怎么的?

    ESP8266 的 RAM 总共 160 KB。

    IRAM 空间为 64 KB: 前 32 KB 用作 IRAM,用来存放没有加 ICACHE_FLASH_ATTR 的代码,即 .text 段,会通过 ROM code 或二级 boot 从 SPI Flash 中的 BIN 中加载到 IRAM。 后 32 KB 被映射作为 iCache,放在 SPI Flash 中的,加了 ICACHE_FLASH_ATTR 的代码会被从 SPI Flash 自动动态加载到 iCache。

    DRAM 空间为 96 KB: 对于 Non-OS_SDK,前 80 KB 用来存放 .data/.bss/.rodata/heap,heap 区的大小取决于 .data/.bss/.rodata 的大小;还有 16 KB 给 ROM code 使用。 对于 RTOS_SDK,96 KB 用来存放 .data/.bss/.rodata/heap,heap 区的大小取决于 .data/.bss/.rodata 的大小。

    WiFi相关

    *路由配置是正确的,但是发生找不到路由,连接失败,为什么?

    如果 SSID 和密码配置是正确的,可能的原因有 2 个。

    1.推荐使用英文字符,不要使用中文。

    2.需要注意 bssid_set 的设置,如果不需要指定路由的 MAC 地址,那么需配置 stationConf.bssid_set = 0。

    * ESP8266 SoftAP + Station 模式下网络断开或丢包的情况?

    虽然 ESP8266 支持 SoftAP + Station 共存模式,但是 ESP8266 实际只有一个硬件信道。因此在 SoftAP + Station 模式时,ESP8266 SoftAP 会动态调整信道值与 ESP8266 Station 一致。这个限制会导致 ESP8266 SoftAP + Station 模式时一些行为上的不便,用户请注意。例如:

    情况一 如果 ESP8266 Station 连接到一个路由 (假设路由信道号为 6); 通过接口 wifi_softap_set_config 设置 ESP8266 SoftAP; 若设置值合法有效,该 API 将返回 true ,但信道号仍然会自动调节成与 ESP8266 Station 接口一致,在这个例子里也就是信道号为 6。

    情况二 调用接口 wifi_softap_set_config 设置 ESP8266 SoftAP (例如信道号为 5); 其他 Station 连接到 ESP8266 SoftAP; 将 ESP8266 Station 连接到路由( 假设路由信道号为 6) ; ESP8266 SoftAP 将自动调整信道号与 ESP8266 Station 一致(信道 6); 由于信道改变,之前连接到 ESP8266 SoftAP 的 Station 的 Wi-Fi 连接断开。

    情况三 其他 Station 与 ESP8266 SoftAP 建立连接; 如果 ESP8266 Station 一直尝试扫描或连接某路由,可能导致 ESP8266 SoftAP 端的连接断开,或者 UDP 丢包,ping 丢包等情况。因为 ESP8266 Station 会遍历各个信道查找目标路由,意味着 ESP8266 其实在不停切换信道,ESP8266 SoftAP 的信道也因此在不停更改。这可能导致 ESP8266 SoftAP 端的原有连接断开,或者 UDP 丢包,ping 丢包等情况。

    这种情况,用户可以通过设置定时器,超时后调用 wifi_station_disconnect 停止 ESP8266 Station 不断连接路由的尝试;或者在初始配置时,调用 wifi_station_set_reconnect_policy 和 wifi_station_set_auto_connect 禁止 ESP8266 Station 尝试重连路由。

    *Wi-Fi 信道是什么?可以自行选择信道吗?

    信道指的是 Wi-Fi 使用的指定频段中特定频率的波段。不同国家地区使用的信道数目是不同的。您可以参考ESP8266 Wi-Fi 信道选择指南

    应用

    *为什么云端升级需要2个 “bin” 文件?“user1.bin” 和 “user2.bin” 有什么区别?

      user1.bin 和 user2.bin 是 2 个不同的 BIN 文件。生成 user1.bin 和 user2.bin 时,必须使用相同的 Flash 和 boot 设置,以保证 OTA 升级成功。2个 BIN 文件是互补的,运行 user1.bin 的时候,升级是下载 user2.bin;运行 user2.bin 的时候,升级是下载 user1.bin。这样可以保证升级过程中,如果有掉线的情况发生,设备还是可以正常运行。

    * 导入工程注意事项

      工程文件的导入的注意不要有空格和中文字符,例如:C:UsersAdministratorDesktopsdkesp_iot_sdk_v1.3.0

    * esp8266模组LED灯为什么上电闪一下就灭了?

      a,因为esp8266模组的LED接在GPIO2,而此IO与UART1_TX共用,此时模组上电会输出一下打印信息,所以LED会闪直到打印信息输出完毕,LED就灭了。

      b,若想查看启动信息的内容,请选择串口调试助手74880的波特率,硬件上把rst拉低再拉高,可以查看启动信息。

      c,若想通过串口调试助手发送AT指令,请切换波特率到115200,即可。

    * ESP8266启动信息说明?

    * 模组发送AT指令无响应?

    a,请选择74880的波特率,看下启动日志,把RST复位引脚拉低再拉高,可使用安信可串口调试助手进行查看,aithinker_serial_tool_v1.2.3.7z

    b,是否进入flash启动模式,GPIO15下拉,GPIO0,GPIO2上拉?

    c,是否烧录了固件?烧录配置flash size大小是否跟WiFi模组的flash一致?

    * 如何屏蔽上电打印?

    U0TXD默认上电有系统打印,对此敏感应用可通过UART的内部引脚交换功能,在初始化的时候,调用system_uart_swap函数。将 U0TXD、U0RXD 分别于U0RTS(MTDO/GPIO15)、U0CTS (MTCK/GPIO13)交换来屏蔽该上电的系统打印。 交换后,硬件上的下载管脚还是使用U0TXD + U0RXD,通信时需要将MTDO对应接到MCU的RXD,MTCK对应加到MCU的TXD。

    * 使用UART1打印日志,如何配置?

    UART1只有TX功能,可以在UART0用于通讯时做打印log用。 参考代码如下:

               void ICACHE_FLASH_ATTR uart_init_new(void)
               {
              // Wait for FIFOs to be emptied
                UART_WaitTxFifoEmpty(UART0);
                UART_WaitTxFifoEmpty(UART1);
                // Configure UART settings
                UART_ConfigTypeDef uart_config;
                uart_config.baud_rate  = BIT_RATE_74880;
                uart_config.data_bits   = UART_WordLength_8b;
                uart_config.parity     = USART_Parity_None;
                uart_config.stop_bits   = USART_StopBits_1
                uart_config.flow_ctrl   = USART_HardwareFlowControl_None;
                uart_config.UART_RxFlowThresh = 120;
                uart_config.UART_InverseMask = UART_None_Inverse;
                UART_ParamConfig(UART0, &uart_config);
                UART_IntrConfTypeDef uart_intr;
                uart_intr.UART_IntrEnMask = UART_RXFIFO_TOUT_INT_ENA | UART_FRM_ERR_INT_ENA | UART_RXFIFO_FULL_INT_ENA;
                uart_intr.UART_RX_FifoFullIntrThresh = 100;
                uart_intr.UART_RX_TimeOutIntrThresh = 2;
                uart_intr.UART_TX_FifoEmptyIntrThresh = 20;
                UART_IntrConfig(UART0, &uart_intr);
                // Set UART1 for printing
                UART_SetPrintPort(UART1);
                // Register interrupt handler
                UART_intr_handler_register(uart0_rx_intr_handler);
                ETS_UART_INTR_ENABLE();
               }

    * 上电为什么输出乱码?

    上电输出乱码是正常的,因为外部晶振选择是26M,请选择74880的波特率,按下复位键或把RST引脚拉低再拉高,可以看到启动信息。可使用安信可串口调试助手进行查看,aithinker_serial_tool_v1.2.3.7z

    * 为什么编译sdk的时候会发生irom0_0_seg错误?

  • 相关阅读:
    WSP部署错误—SharePoint管理框架中的对象“SPSolutionLanguagePack Name=0”依赖其他不存在的对象
    Elevate Permissions To Modify User Profile
    Error with Stsadm CommandObject reference not set to an instance of an object
    ASP.NET MVC3添加Controller时没有Scaffolding options
    测试使用Windows Live Writer写日志
    配置TFS 2010出现错误—SQL Server 登录的安全标识符(SID)与某个指定的域或工作组帐户冲突
    使用ADO.NET DbContext Generator出现错误—Unable to locate file
    CSS
    HTML DIV标签
    数据库
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/11256388.html
Copyright © 2011-2022 走看看