? ? ? ? 從買回這款板子到現(xiàn)在大概已經(jīng)有一個月左右。剛開始看到這塊芯片就被它價格便宜、性能強悍所吸引,于是利用業(yè)余時間對這塊板子小小研究了一番。我將從以下幾個方面談談這個月我對這塊板子的使用:
1)esp8266芯片? ? ?2)esp8266開發(fā)板? ? 3)環(huán)境配置
4)開發(fā)小項目? ? 5)補充知識
1?esp8266芯片
? ? ? ESP8266/ESP8285 在較小尺寸封裝中集成了業(yè)界領先的 Tensilica L106 超低功耗 32 位微型 MCU,帶有 16 位精簡模式,主頻支持 80 MHz 和 160 MHz,支持 RTOS,集成 Wi-Fi MAC/ BB/RF/PA/LNA,板載天線。支持標準的 IEEE802.11 b/g/n 協(xié)議,完整的 TCP/IP 協(xié)議棧。用戶可以使用該模塊為現(xiàn)有的設備添加聯(lián)網(wǎng)功能,也可以構建獨立的網(wǎng)絡控制器。該芯片是高性能無線 SoC,以最低成本提供最大實用性,為 Wi-Fi 功能嵌入其他系統(tǒng)提供可能。
(對于Tensilica公司的MCU,esp8266芯片的官方廠家在知乎上有一篇文章是專門回答這個問題的,鏈接地址為樂鑫的物聯(lián)網(wǎng)芯片esp8266使用的MCUTensilica L106到底是什么來頭??。簡單來說Tensilica是一家設計微處理器架構的公司,目前已經(jīng)被Cadence公司收購。Tensilica公司的代表MCU是Xtensa處理器,這款處理器是一個可以自由裝組、可以彈性擴張,并可以自動合成的處理器核心。而樂鑫公司的代表芯片ESP8266采用的是Tensilica公司的L106核心,擁有5階流水線。而樂鑫的ESP32芯片則采用的是Tensilica公司的Xtensa 32bit LX6核心,其優(yōu)勢在于CPU強大的性能和低功耗。)
上圖列出了樂鑫公司目前在售的幾款esp8266芯片,其芯片特點為:
特點
802.11 b/g/n
內(nèi)置Tensilica L106 超低功耗 32 位微型 MCU,主頻支持 80?MHz?和160 MHz,支持 RTOS
內(nèi)置10 bit高精度ADC
內(nèi)置TCP/IP協(xié)議棧
內(nèi)置TR 開關、balun、LNA、功率放大器和匹配網(wǎng)絡
內(nèi)置PLL、穩(wěn)壓器和電源管理組件,802.11b 模式下+18 dBm的輸出功率
A-MPDU 、 A-MSDU 的聚合和 0.4 s的保護間隔
Wi-Fi @ 2.4 GHz,支持 WPA/WPA2 安全模式
支持AT本地升級及云端OTA升級
支持 STA/AP/STA+AP 工作模式
支持 Smart Config 功能(包括 Android 和 iOS 設備)
HSPI 、UART、I2C、I2S、IR Remote Control、PWM、GPIO
深度睡眠保持電流為 20 uA,關斷電流小于 5 uA
2 ms 之內(nèi)喚醒、連接并傳遞數(shù)據(jù)包
待機狀態(tài)消耗功率小于1.0 mW (DTIM3)
工作溫度范圍:詳情請見具體型號規(guī)格書
由此可見這款芯片的功能還是比較強大的。
2 esp8266開發(fā)板
? ? ? ? 一塊esp8266開發(fā)板價格大概在十幾塊,這次我買的是帶CH340ttl轉(zhuǎn)usb芯片的開發(fā)板。如下圖:
? ? ? 在安信可官網(wǎng)上可以下載esp8266的原理圖和封裝,鏈接為:ESP8266原理圖PCB封裝文件。網(wǎng)上有esp8266最小系統(tǒng)的原理圖,如下圖:
? ? 參考設計手冊,不管是芯片的下載模式還是運行模式,EN(CH_PD),RST都需要置高,而GPIO15需要置低。GPIO0和GPIO2的高低電平?jīng)Q定了ESP模組的啟動模式。串口通信需要占用TXD和RXD兩個引腳。這里選用的是ch340芯片作為ttl轉(zhuǎn)usb通信芯片,也可以采用pl2303芯片作為接口轉(zhuǎn)換芯片。
? ? ? 在燒寫bin程序時需要進入下載模式,即GPIO0置低,而運行模式需要把GPIO0置高。燒錄完成需要重啟并且rst一下。
3 環(huán)境配置
? ? ? 由于esp8266采用的是Tensilica公司的核心,目前支持esp8266的開發(fā)環(huán)境并不算多,一般包括:1)AT指令。直接采用串口對芯片發(fā)送AT指令或者利用其他單片機給esp8266發(fā)送AT指令;2)Arduino IDE。通過配置在原本的編程環(huán)境中添加對esp8266開發(fā)板的支持,編程語言用c語言,這也是目前網(wǎng)絡上相對較多的使用方法。3)刷Node MCU固件,采用Lua語言編程,或者也可以刷其他固件,我這里刷的是micropython固件,編程語法和python基本類似,對一些常用的功能都有很好封裝函數(shù)。
? ? ? ?燒寫工具采用ESP FLASH TOOL,下載地址為ESP FLASH TOOL燒寫工具。 由于我這里燒寫的micropython固件,我在這里就著重介紹一些micropython。
? ? ? ? MicroPython是 Python 3 語言 的精簡高效實現(xiàn) ,包括Python標準庫的一小部分,經(jīng)過優(yōu)化可在微控制器和受限環(huán)境中運行。MicroPython包含了諸如交互式提示,任意精度整數(shù),關閉,列表解析,生成器,異常處理等高級功能。 足夠精簡,適合運行在只有256k的代碼空間和16k的RAM的芯片上。
????????除了實現(xiàn)一系列核心Python庫之外,MicroPython還包括訪問硬件的“machine”等模塊。
? ? ? ? 如上是micropython中文網(wǎng)的一段對micropython的介紹。由于最近在使用python作為目前主要的編程語言工具,所以上手microtpython也是十分容易的。下載micropython固件在micropython固件下載。利用esp8266 flash tool進行燒寫,SPI? MODE選擇DIO,F(xiàn)LASH SIZE選擇為32Mbit。燒寫前先要對芯片進行擦除,然后點擊“START”開始燒寫程序,出現(xiàn)FLASH即說明燒寫成功。