ESP8266硬件相关
本文地址:http://tongxinmao.com/Article/Detail/id/84
ESP8266 尺寸为5x5 mm,ESP8266 模组需要的外围器件有:10个电阻电容电感、1个无源晶振、1个 flash。工作温度范围:-40~125℃。
2.1. 工作模式
1、 问:ESP8266 StandAlone mode和 SLAVE-SPI mode分别是什么?
答:ESP8266 有两种工作模式:
1) StandAlone 模式
该模式 ESP8266 作为主芯片,独立运行;
2) SIP 模式(SLAVE-SPI, Slave-SDIO)
该模式 ESP8266 作为从芯片,采用 SPI 或 SDIO 与主芯片通讯,如主芯片采用 ARM。
2.2. Flash与内存
1、 问:Flash 参考容量及型号是什么样的?
答:Flash 规格需满足以下要求:
1) SPI Flash
2) 支持 Quad SPI(推荐) 和 Dual SPI
3) 容量最好在 4Mbit 及以上
推荐型号 winbond: W25Q40CL
2、 问:可用空间是怎样的?
答:
RAM size < 35kB (station模式下,连上路由后,heap+data区大致可用在 35K 左右,具体可用内存大小,可调用接口system_get_free_heap_size获得)
ROM size < 64kB (片上没有 ROM,用户程序存放在 spi flash 中,当前 spi flash 大小为512KB,当前定义可用程序区 <64KB。可通过更换容量更大的spi flash,从而可支持到4MB。)
问:两个flash的分工?
答:由于ESP8266有两种工作模式,StandAlone和SPI-Slave:
PCB 板中间的 flash 用于 ESP8266 工作在 StandALone 模式下的;
右上角的 flash 用于 ESP8266 工作在 SPI-Slave 模式下,ESP8266 作为 SPI SLAVE(或 SDIO)连接Host,同时 ESP8266 又作为 SPI master通过 HSPI 和右上角的 flash 连接。
客户实际运用时,只需根据使用ESP8266的模式,选用一种 flash 连接方式即可。
4、 问:如何对 Flash 加密,保护客户软件(防抄板)?
答:
方法一:在 ESP8266 芯片中定制客户专用的 id,软件里需要传入正确的客户 id,跟芯片中的客户 id 相符,才能继续运行,否则系统 hang 住。
方法二:在使用烧录工具烧写 flash 时,先读取芯片 id(每颗芯片唯一),将芯片 id 存入 flash 特定地址,在程序中读取芯片 id 和 flash 特定地址中存放的 id ,两者一致,程序才能正常运行。
2.3. CPU
1、 问:CPU主频跑多少?
答:CPU主频支持80M和160M。
2.4. GPIO
1、 问:GPIO口的输出电压电流的规格式?
答:GPIO口输出电压为VDD_IO(比如 3.3V),输出电流应该不超过20mA。
2、 问:GPIO口的软件设置方式。
答:
1) GPIO API 请参见文档“Espressif IoT SDK 编程手册”中 5.1 GPIO接口API
2) 如希望提高设置 GPIO 的速率,可以采用如下方式,直接写寄存器控制。
GPIO_REG_WRITE(GPIO_ENABLE_ADDRESS, xxxx); //使能哪些GPIO口
GPIO_REG_WRITE(GPIO_OUT_W1TS_ADDRESS, xxxx); // 设置哪些GPIO口
GPIO_REG_WRITE(GPIO_OUT_W1TC_ADDRESS, xxxx); //清除哪些GPIO口
第一句只要调用一次;后两句控制输出高电平或低电平。
1、 问:ESP8266 有几个 uart ?
答:ESP8266 有两个 uart,其中 uart0 有 TX、RX,可做数据传输;uart1 仅有 TX,可以做串口调试信息打印。
2、 问:目前支持的波特率范围?
答:110~460800
5、 问:初始波特率为什么是 74880?
答:这是由于一些最初的设计原因,在板子上电初始跑boot rom的一段log需要在74880的波特率下正常打印。跑到用户程序区后,波特率改为115200后可正常打印的。
2.6. PWM
1、问:ESP8266 支持几路PWM?
答:目前支持4路PWM,硬件实际是1路PWM,由软件实现为4路PWM。
2、问:ESP8266 PWM 频率多少?
答:默认100-500Hz。10kHz也行 但分辨率到不了1/256。
2.7. 晶振
1、 问:晶振的要求?
答:要求晶振本身的频偏要在 ±10ppm 以内。
2、 问:Demo 使用26M 晶振,如需更换成 40M 晶振,firmware 是否要修改?
答:请将 esp_init_data_default.bin 中下图红色标注的地方改为 00(40M 晶振)。01 表示 26M 晶振。注意更换为 40M 晶振后,两边的对地调节电容需要更改(应该是 18PF)。(26M 晶振两边的对地调节电容在 8.2pF ~ 12pF)
3.3. softAP&station
1、 问:ESP8266 station 和 softAP 的 mac 地址是否相同?
答:不相同。ESP8266 有两套 MAC ,因此可以支持 softAP + station共存的模式。
2、 问:现在最多可以记录多少个 wifi的ssid和password?
答:最多记录 5 个 AP 的信息
3、 问:ESP8266 softAP 可连接几个station?
答:由于内存限制,ESP8266 softAP最多可连接 4 个 station
2、 问:ESP8266 低功耗注意事项?
答:ESP8266 低功耗只针对 station 模式,对于 softAP 则没有低功耗。
目前实现的低功耗为 moden sleep 模式和 deep sleep 模式,modem sleep目前没有接口控制,自动开启,依据所连AP(路由器)的设置支持DTIM;deep sleep的接口为 system_deep_sleep,设置每休眠多久醒来一次。
3.7. 网络连接
7、 问:最多可以建立几个网络连接?
答:TCP 连接最多可以建立 5 个;UDP 连接最多可以建立 5 个。可同时建立 5 个TCP 连接和 5 个 UDP 连接。
请注意,目前 IOT_Demo 只能建一个 UDP server,如需多建 UDP server,需要向乐鑫申请开放 lwip 的源代码进行修改。
8、 问:UDP server 的注意事项?
答:目前 IOT_Demo 只能建一个 UDP server,如需多建 UDP server,需要向乐鑫申请开放 lwip 的源代码进行修改。
9、 问:ESP8266 作为 station 连入路由后,没有被分配到 IP 地址?
答:查证是否建立了一个以上的 UDP server,目前 IOT_Demo 只能建一个 UDP server,如需多建 UDP server,需要向乐鑫申请开放 lwip 的源代码进行修改。
10、 问:ESP8266 作为 tcp client,某些工具作为 tcp server,连接断开却会重连。
答:使用 TCP&UDPDebug 这个工具做server 即可。这个问题是因为某些网络调试工具,在断开连接时没有实现完整的 TCP 退出流程,如果不走完整的 TCP 退出流程,ESP8266 会判断为异常断开,对TCP server 进行重连。
11、 问:ESP8266 是否支持 iperf,如何测试网络吞吐量?
答:ESP8266 不支持使用 iperf,可以参照文档“Espressif IoT SDK 编程手册”中的 espconn 系列接口自行编写程序测试。另,我司内部测试过网络吞吐量,可发邮件向我司申请提供网络吞吐量的测试结果。
3.8. AT 透传
1、 问:ESP8266 AT 透传的通信能力?
答:在硬件流控情况下,数据不丢失,速度11kbits/s ,基本达到串口极限
2、 问:使用工具测试,无法退出透传?
答:注意,如果直接用键盘打字输入 +++ ,有可能时间太慢,不被认为是连续的三个+,建议使用如下工具:
上一篇:图片文件隐藏脚本代码 BAT
下一篇:SBT支付及优惠券流程