ESP8266 模組註記
ESP8266
- 註:
- 當 flash size 4Mb 時,規劃上使用 FS:2MB,OTA:1MB,會得到最大的 FreeSketchSpace
ESP-07
- Board:Generic ESP8266 module
- UR:115200
- CPU:80/160 MHz
- Crystal:26 MHz
- Flash:1MBytes
- Flash freq:80MHz
- EN pin 空接
ESP-07S
- Board:Generic ESP8266 module
- UR:115200
- CPU:80/160 MHz
- Crystal:26 MHz
- Flash:4MBytes
- Flash freq:80MHz
- EN pin pull-high 12K
ESP-12F
- Board:Generic ESP8266 module
- UR:115200
- CPU:80/160 MHz
- Crystal:26 MHz
- Flash:4MBytes
- Flash freq:80MHz
- EN pin 空接
ESP-12S
- Board:Generic ESP8266 module
- UR:115200
- CPU:80/160 MHz
- Crystal:26 MHz
- Flash:4MBytes
- Flash freq:80MHz
- EN pin pull-high 12K
ESP-01F
- Board:Generic ESP8285 module
- CPU:80/160 MHz
- Crystal:26 MHz
- Flash:1 MBytes
- Flash freq:40MHz(fixed)
- ADC:1V
- GPIO 0:pull-high
- GPIO 2:pull-high
- GPIO 15:pull-low
- RESET:pull-high
- EN:pull-high
- PINOUT:all available
- 看起來 01F 稍微短寬,不過應是 01D 算最小的因為它突出的腳應是可以修短的。也不過,01F 能利用所有的 PINOUT。所以它們倆,算是 ESP8266/8285 系列的兩大金剛,兩大護法!其綜效實力目前(同級距者)尚無人能出其左右八方。(我好像有看過 3 塊 RMB 的,這。。。還有天理嗎。。。)
ESP8266-unknown1
- Board:Generic ESP8266 module
- UR:115200
- CPU:80/160 MHz
- Crystal:26 MHz
- Flash:1MBytes
- Flash freq:80MHz
- 除了 RST 有 pull-high,其餘全空接
- ADC 1V
ESP-M3
- 注意一下 datasheet 標記錯誤,沒有 GPIO13,而該是 GPIO12 如底下實圖。
- ESP8285
- 2MB flash
- EN pull-up
- IO0 pull-up
- others N.C.
- 這表示 GPIO 0,(2 下述),(15 沒有拉出來),reset 等腳位都要被使用者再加處置。
- 此外最好不 pull-up 的 EN,反而被噗了,ADC 又沒有拉出來,而兩側的 pinout 距離又沒有對齊 2.54mm 的整數倍,
- 而那顆 LED,它直接接 Vcc,另一端串了一顆 1k 電阻接到了 GPIO2,1k 真的恰當嗎。。。覆用都將耗用可觀的電流。。。
- 所以,筆者也只能施捨地給此模組,八分之七顆星了。。。
- 70~80mA 工作電流。
其他註記
- 傳聞設成 160MHz 後,運行,其他常駐模組,例如 WiFi,可能會將時脈設回來 80MHz。
- 即便設成 160MHz,GPIO 的驅動仍受限於 80MHz,即,於 80MHz 下,設定 GPIO 狀態,將耗用一個時脈週期,而於 160MHz 下,將耗用兩個時脈週期,即 CPU 處於 blocked waiting 狀態。此由 nonblocking IIC 實驗中遇到;加倍 CPU 時脈,並不能使 bit-rate 加倍。
void cmp_cpu_freq(unsigned tnow=0){
// purpose: when esp initing, called once. when during runtime called with parameter to check if freq been switched back.
uint32_t a, start, end;
float f, g;
unsigned t=0;
Serial.println();
for (int i=0; i<10; i++){
if (!tnow){
if (t^=1) system_update_cpu_freq(SYS_CPU_80MHZ);
else system_update_cpu_freq(SYS_CPU_160MHZ);
}
g=10e37f;
start = micros();
for (a=0; a<100; a++){
f = g/1.31415926f; // just an MCU-intense time-waster
g = f/1.31415926f; // just an MCU-intense time-waster
}
end = micros();
printf("[%dMHz s[%u] e[%u] diff[%u] v[%f]]\r\n", (t? 80: 160), start, end, end-start, g);
delay(100);
}
}
規格簡介
以下圖表,是從商品頁上看到介紹比較詳細的。