2022年12月8日 星期四

一些ESP-01, ESP8266, ESP32 的使用及燒錄方式

前些日子因緣際會,剛好拿到ESP-01, ESP8266,  ESP32。常常會忘記使用方式。因此做個簡單的筆記。

實際接線:

ESP-01比較麻煩,除了vcc(3.3v),gnd,tx,rx要接到對應的線之外, enable也要接上3.3v (有一些是標註CH_PD,縮寫是chip power-down)。如果要更新firmware的話。他的GPIO0要接地,這邊指的是送電時就要接地,等它開機後要不要接地都沒有影響。

更新firmware可以用官方工具ESP8266 flash download tool或ESP8266一键烧录工具來燒錄,我兩者都有成功跟失敗過,失敗的這幾次似乎是因為ESP-01之前已經被我玩壞了。

記得,要測試的時候,記得把GPIO0的接地拿掉。我的作法是先斷電,拿掉它的接地再送電。再使用realteam或putty進行測試(baud rate要設對,預設是115200)。

接線的部份如下:

來源網頁:

 https://sites.google.com/mail3.hwsh.tc.edu.tw/earth/arduino/%E5%8F%83%E8%80%83%E8%B3%87%E6%96%99/%E5%85%B6%E4%BB%96esp8266-01%E6%9B%B4%E6%96%B0%E9%9F%8C%E9%AB%94%E8%88%87%E8%A8%AD%E5%AE%9A


記得這個圖是從正面看的,因此接腳的位置會是左右相反。不過正常人應該一看就知道才對。

如果是接usb-rs232-console的話,接線如下:
來源網頁:
https://iot-playground.com/blog/2-uncategorised/35-esp8266-firmware-update


更新firmware後,就可以使用arduino-ide來開發了。
記得在『額外的開發版管理員』,新增網址:http://arduino.esp8266.com/stable/package_esp8266com_index.json
之後在ESP32時會有其它需要新增的網址。
另外要提醒的是,要上傳程式時,GPIO0還是要接地,因此可以裝一個簡單的開關,在arduino ide出現connect時再按鈕即可。

再講ESP32,我買的是ESP32-WROOM-32D,它的型號就有規格資訊:多協議模組 SMD Module, ESP32-D0WD, 32Mbits SPI flash, UART mode, PCB antenna。

它有內建MCU, 意思是不用再透過Arduino或其它MCU做設定。
這種東西用起來都差不多,它的serial port已經內建了,所以不需要再用USB轉RS232的線材,就看他是用micro usb或usb type c 。另外要注意的是, 有一些線只有充電功能不能傳檔,使用時一定要小心,不要像我弄了一個下午才發現是線材的問題。


記得在『額外的開發版管理員』,新增網址:
https://dl.espressif.com/dl/package_esp32_index.json
在Aruduino IDE要選擇ESP32 Dev Module


同樣的,在上傳程式的時候(按下upload,出現connect時),要記得按IO0的按扭 (我認為是GPIO0的縮寫,在某些板本上可能是flash的按鈕)

接著是ESP8266,照片如下:
它的型號是:ESP8266MOD,可惜沒有其它的資訊。但它有內建MCU,可以少做一點功。
這一塊是使用microusb,記得確認用的是傳輸線而非充電線。另外它的按扭是flash,而不是GPIO0。
Arduino IDE的模組要新增:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
我在網路上也有找到其它檔案,但不曉得丟去哪了。說不定是另一個檔案搞定的。

接著要選擇的版是:NodeMCU 1.0 (ESP-12E)。

我另外還買了一片沒有接擴展版的ESP8266-MOD。
但由於沒有附模塊轉接版:
要用的時候還要自己拉線接電組或銲接,因此使用上很麻煩。所以買的時候要小心。

最後再回頭講ESP-01, 我有兩種:
第一種是ESP8266EX 242016 PAGF26 它是ESP-01S

這一片可以正常運作,242016應該就是它的規格,但不曉得到哪邊查,這個在upgrade flash會用到。 (補充說明,旁邊有一顆PN25F08,說明了他是一個8Mbit (1Mbyte)的SPI,如果需要支援不同(或更新)的AT指令集,或者修改它的預設baudrate (預設是115200, 但某版預設是9600,有些人覺得這樣跟arduino 一樣比較好用,不用改來改去)
來源:
https://sites.google.com/mail3.hwsh.tc.edu.tw/earth/arduino/%E5%8F%83%E8%80%83%E8%B3%87%E6%96%99/%E5%85%B6%E4%BB%96esp8266-01%E6%9B%B4%E6%96%B0%E9%9F%8C%E9%AB%94%E8%88%87%E8%A8%AD%E5%AE%9A


接線時要記得圖片是正常,但你的接腳在背面,所以越左右相反。
以此例而已,Arduino的4要接到TX,Arduino的5要接到RX。

由於ESP-01S本身沒有MCU 所以要透過arduino 來控制。
因此在Arduino的板要選擇Arduino UNO (以我的例子而言)
在此也看的出來,為何MCU會受歡迎,光是接線就輕鬆很多。

最後要講的是讓我很頭痛的另一組ESP-01:


它的型號是:ESP8266EX 022021 AB00N3MT21,剛買來的時候應該是好的,但我不曉得怎麼把他弄死了。之後怎麼刷都救不回來,也找不到他相關的規格(flash size/rom size/ram size)之類的,最好笑的是,只找的到AB00N3NT21 的相關資料,看來我手邊的這一塊還是仿造的...說不定賣給我的人也沒有試過,他本來就是壞的。順帶一提,這一片就是我去研究怎麼燒錄的開始...也不算是壞事,至少我學到了很多新知識。

補充說明,最後我覺得esp8266ex旁邊那顆很可疑,它上面寫BY25D80,參考資料倒是滿好找的,它似乎是一顆8Mbit的SPI NOR FLASH ,可惜我照以下網頁再做一次:
https://sites.google.com/mail3.hwsh.tc.edu.tw/earth/arduino/%E5%8F%83%E8%80%83%E8%B3%87%E6%96%99/%E5%85%B6%E4%BB%96esp8266-01%E6%9B%B4%E6%96%B0%E9%9F%8C%E9%AB%94%E8%88%87%E8%A8%AD%E5%AE%9A
但還是失敗。

最後再記錄一下我的想法,官網 有相關的說明 (雖說我這個是仿的ESP8266)
https://www.espressif.com/en/support/documents/technical-documents
它似乎是分成NON-OS (純AT commander)還有 OS version (內建OS) 這兩種。
要燒的東西自然是不同的。有OS的自然需要更大的ROM/RAM。但我連NON-OS都失敗了,就不再試RTOS了。

另外有一種工具是MCU一鍵燒錄,但我這個只是單純的esp8266,看來是不適用的(雖然在燒的時候感覺一切都很好)。一鍵燒錄也有一個版本是可以選擇ROM size的,要用的時候可以去找來試試。(當然也可以燒官方rom)



































沒有留言:

張貼留言