作者: ken

ESP8266 模組註記

No Comments

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);
    }
}

規格簡介

以下圖表,是從商品頁上看到介紹比較詳細的。

Categories: Arduino 其他

Tags:

PHP Code Snippets Powered By : XYZScripts.com