環境:
Win10、Arduino IDE 2.3.6、ESP32 NodeMCU-32S 開發板
步驟:
- 到 Arduino 官網下載 Arduino IDE 安裝。
我安裝的版本是 2.3.6 - 在 Arduino IDE 新增支援 ESP32
「工具」->「開發板」->「開發板管理員」
搜尋「ESP32」,找到 Espressif Systems 提供的 ESP32 開發板支援安裝
(我安裝的 Arduino IDE 版本,直接搜尋就可找到,有的版本似乎要先在偏好設定新增「其他開發板管理網址」
參考:https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html )
安裝完成 - 選擇 ESP32 NodeMCU-32S 開發板
「工具」->「開發板」->「esp32」->「NodeMCU-32S」 - 我這塊開發板,使用的 USB-to-UART(USB-to-COM、USB-to-TTL) 晶片,是 CP2102
將開發板連接到電腦,可發現 Win10 沒有 CP2102 驅動程式 - 到 CP2102 官網 Silicon Labs 下載驅動程式
https://www.silabs.com/software-and-tools/usb-to-uart-bridge-vcp-drivers?tab=downloads
驅動程式下載頁面有各種版本,若不知要下載哪個,可下載後查看裡面說明文件
我在 CP210x_Universal_Windows_Driver.zip 裡的 CP210x_Universal_Windows_Driver_ReleaseNotes.txt 文件,看到
====================================================
OS VERSIONS
-----------
This package provides the CP210x VCP driver for the following versions
of Windows:
- Windows 10 version 1803 and later (x64, x86)
- Windows 11 (x64)
====================================================
Win10 可以使用,所以我安裝這個驅動程式
我解壓縮到
D:\download\CP210x_Universal_Windows_Driver
在裝置管理員,沒驅動程式的 CP2102 上按右鍵,選「更新驅動程式」
選擇下載後解壓縮的驅動程式位置進行安裝
安裝成功 - 在 Arduino IDE 使用開發板,還須設定開發板連接到哪個連接埠。
先到裝置管理員,找剛剛裝好驅動程式的 USB-to-UART 裝置(CP2102)
如下圖,在連接埠中,看到 CP210x USB-to-UART Bridge 使用「COM5」
到 Arduino IDE
「工具」->「連接埠」->選擇「COM5」
之後便可進行開發
- 開發板外觀


- 引腳
#上圖右排編號
名稱
類型
功能
1
3V3
P
3.3 V 電源
2
EN
I
CHIP_PU, Reset
3
SVP, P36
I
GPIO36, ADC1_CH0, S_VP
4
SVN, P39
I
GPIO39, ADC1_CH3, S_VN
5
P34
I
GPIO34, ADC1_CH6, VDET_1
6
P35
I
GPIO35, ADC1_CH7, VDET_2
7
P32
I/O
GPIO32, ADC1_CH4, TOUCH_CH9, XTAL_32K_P
8
P33
I/O
GPIO33, ADC1_CH5, TOUCH_CH8, XTAL_32K_N
9
P25
I/O
GPIO25, ADC2_CH8, DAC_1
10
P26
I/O
GPIO26, ADC2_CH9, DAC_2
11
P27
I/O
GPIO27, ADC2_CH7, TOUCH_CH7
12
P14
I/O
GPIO14, ADC2_CH6, TOUCH_CH6, MTMS
13
P12
I/O
GPIO12, ADC2_CH5, TOUCH_CH5, MTDI
14
GND
G
接地
15
P13
I/O
GPIO13, ADC2_CH4, TOUCH_CH4, MTCK
16
SD2, P9
I/O
GPIO9, SD_SATA2
17
SD3, P10
I/O
GPIO10, SD_DATA3
18
CMD, P11
I/O
GPIO11, SD_CMD
19
5V
P
5 V 電源
#上圖左排編號
名稱
類型
功能
1
GND
G
接地
2
P23
I/O
GPIO23
3
P22
I/O
GPIO22
4
TX, P1
I/O
GPIO1, U0TXD
5
RX, P3
I/O
GPIO3, U0RXD
6
P21
I/O
GPIO21
7
GND
G
接地
8
P19
I/O
GPIO19
9
P18
I/O
GPIO18
10
P5
I/O
GPIO5
11
P17
I/O
GPIO17
12
P16
I/O
GPIO16
13
P4
I/O
GPIO4, ADC2_CH0, TOUCH_CH0
14
P0
I/O
GPIO0, ADC2_CH1, TOUCH_CH1, Boot
16
P2
I/O
GPIO2, ADC2_CH2, TOUCH_CH2
17
P15
I/O
GPIO15, ADC2_CH3, TOUCH_CH3, MTDO
17
SD1, P8
I/O
GPIO8, SD_DATA1
18
SD0, P7
I/O
GPIO7, SD_DATA0
19
CLK, P6
I/O
GPIO6, SD_CLK, SCK
- 開發板內建LED燈在腳位2上,我接上電腦就會自己閃爍
程式碼void setup() { pinMode(2, OUTPUT); } void loop() { digitalWrite(2, HIGH); delay(1000); digitalWrite(2, LOW); delay(1000); } - 上傳程式到開發板時,取得的開發板資訊,晶片是 ESP32-D0WD-V3
Serial port COM5: Connecting..... Connected to ESP32 on COM5: Chip type: ESP32-D0WD-V3 (revision v3.1) Features: Wi-Fi, BT, Dual Core + LP Core, 240MHz, Vref calibration in eFuse, Coding Scheme None Crystal frequency: 40MHz MAC:
- ESP32-D0WD-V3 官網列出的規格
Features:
- Core: Xtensa® dual-core 32-bit LX6 CPU, frequency up to 240MHz
- Memories:
- 448 KB of ROM
- 520 KB of SRAM
- 16 KB of RTCSRAM
- Working Voltage: 2.3 V to 3.6 V
- Up to 34 GPIOs
- 5 strapping GPIOs
- 6 GPIOs need for flash/PSRAM
- 2*12-bit ADC (up to 18 channels)
- Communication interfaces
- 2 I2C interfaces
- 2 I2S interfaces
- 4 SPI interfaces
- 3 UART interfaces
- Security:
- 1024 bit OTP
- AES, SHA, RSA, ECC, RNG
- Secure Boot, Flash Encryption
- Extended temperature range: -40 to 125 °C
- https://wokwi.com/projects/new/esp32
ESP32 線上模擬器 - ESP32 Pin腳概述
名稱
No.
類型
功能
模擬
VDDA
1
P
模擬電源(2.3 V ∼ 3.6 V)
LNA_IN
2
I/O
射頻輸入和輸出
VDD3P3
3
P
模擬電源(2.3 V ∼ 3.6 V)
VDD3P3
4
P
模擬電源(2.3 V ∼ 3.6 V)
VDD3P3_RTC
SENSOR_VP
5
I
GPIO36,
ADC1_CH0,
RTC_GPIO0
SENSOR_CAPP
6
I
GPIO37,
ADC1_CH1,
RTC_GPIO1
SENSOR_CAPN
7
I
GPIO38,
ADC1_CH2,
RTC_GPIO2
SENSOR_VN
8
I
GPIO39,
ADC1_CH3,
RTC_GPIO3
CHIP_PU
9
I
高電位:晶片使能;低電位:晶片關閉;
注意:不能讓CHIP_PU腳位浮空。
VDET_1
10
I
GPIO34,
ADC1_CH6,
RTC_GPIO4
VDET_2
11
I
GPIO35,
ADC1_CH7,
RTC_GPIO5
32K_XP
12
I/O
GPIO32,
ADC1_CH4,
RTC_GPIO9,
TOUCH9,
32K_XP (32.768 kHz晶振輸入)
32K_XN
13
I/O
GPIO33,
ADC1_CH5,
RTC_GPIO8,
TOUCH8,
32K_XN (32.768 kHz晶振輸出)
GPIO25
14
I/O
GPIO25,
ADC2_CH8,
RTC_GPIO6,
DAC_1,
EMAC_RXD0
GPIO26
15
I/O
GPIO26,
ADC2_CH9,
RTC_GPIO7,
DAC_2,
EMAC_RXD1
GPIO27
16
I/O
GPIO27,
ADC2_CH7,
RTC_GPIO17,
TOUCH7,
EMAC_RX_DV
MTMS
17
I/O
GPIO14,
ADC2_CH6,
RTC_GPIO16,
TOUCH6,
EMAC_TXD2, HSPICLK, HS2_CLK,
SD_CLK,
MTMS
MTDI
18
I/O
GPIO12,
ADC2_CH5,
RTC_GPIO15,
TOUCH5,
EMAC_TXD3, HSPIQ, HS2_DATA2,
SD_DATA2,
MTDI
VDD3P3_RTC
19
P
RTC IO電源輸入(2.3 V ∼ 3.6 V)
MTCK
20
I/O
GPIO13,
ADC2_CH4,
RTC_GPIO14,
TOUCH4,
EMAC_RX_ER, HSPID, HS2_DATA3,
SD_DATA3,
MTCK
MTDO
21
I/O
GPIO15,
ADC2_CH3,
RTC_GPIO13,
TOUCH3,
EMAC_RXD3, HSPICS0, HS2_CMD,
SD_CMD,
MTDO
名稱
No.
類型
功能
GPIO2
22
I/O
GPIO2,
ADC2_CH2,
RTC_GPIO12,
TOUCH2,
HSPIWP,
HS2_DATA0,
SD_DATA0
GPIO0
23
I/O
GPIO0,
ADC2_CH1,
RTC_GPIO11,
TOUCH1, EMAC_TX_CLK,
CLK_OUT1,
GPIO4
24
I/O
GPIO4,
ADC2_CH0,
RTC_GPIO10,
TOUCH0, EMAC_TX_ER,
HSPIHD,
HS2_DATA1,
SD_DATA1
VDD_SDIO
GPIO16
25
I/O
GPIO16,
HS1_DATA4,
U2RXD,
EMAC_CLK_OUT
VDD_SDIO
26
P
1.8 V或VDD3P3_RTC電源輸出
GPIO17
27
I/O
GPIO17,
HS1_DATA5,
U2TXD,
EMAC_CLK_OUT_180
SD_DATA_2
28
I/O
GPIO9,
HS1_DATA2,
U1RXD,
SD_DATA2,
SPIHD
SD_DATA_3
29
I/O
GPIO10,
HS1_DATA3,
U1TXD,
SD_DATA3,
SPIWP
SD_CMD
30
I/O
GPIO11,
HS1_CMD,
U1RTS,
SD_CMD,
SPICS0
SD_CLK
31
I/O
GPIO6,
HS1_CLK,
U1CTS,
SD_CLK,
SPICLK
SD_DATA_0
32
I/O
GPIO7,
HS1_DATA0,
U2RTS,
SD_DATA0,
SPIQ
SD_DATA_1
33
I/O
GPIO8,
HS1_DATA1,
U2CTS,
SD_DATA1,
SPID
VDD3P3_CPU
GPIO5
34
I/O
GPIO5,
HS1_DATA6,
VSPICS0,
EMAC_RX_CLK
GPIO18
35
I/O
GPIO18,
HS1_DATA7,
VSPICLK
GPIO23
36
I/O
GPIO23,
HS1_STROBE,
VSPID
VDD3P3_CPU
37
P
CPU IO電源輸入(1.8 V ∼ 3.6 V)
GPIO19
38
I/O
GPIO19,
U0CTS,
VSPIQ,
EMAC_TXD0
GPIO22
39
I/O
GPIO22,
U0RTS,
VSPIWP,
EMAC_TXD1
U0RXD
40
I/O
GPIO3,
U0RXD,
CLK_OUT2
U0TXD
41
I/O
GPIO1,
U0TXD,
CLK_OUT3,
EMAC_RXD2
GPIO21
42
I/O
GPIO21,
VSPIHD,
EMAC_TX_EN
模擬
VDDA
43
P
模擬電源(2.3 V ∼ 3.6 V)
XTAL_N
44
O
外部主晶振輸出
XTAL_P
45
I
外部主晶振輸入
VDDA
46
P
模擬電源(2.3 V ∼ 3.6 V)
CAP2
47
I
並聯3.3 nF (10%)電容和20 k Ω電阻到CAP1
ESP32的所有IO腳都具備GPIO功能,其中部分還具有RTC_GPIO功能。不過,這些IO腳位是多功能的,可以依照需求進行不同功能的配置,也有一些腳位有使用限制,需要特別注意。名稱
No.
類型
功能
CAP1
48
I
串聯10 nF電容到地
GND
49
P
接地
上表中,部分腳位功能有高亮標記,具體如下:
GPIO –僅作輸入腳,沒有輸出功能,不含輸出驅動器或內建上拉/下拉電路。
GPIO –用於與封裝內flash/PSRAM通訊,不建議作其他用途。更多信息,詳見章節2.6晶片與flash/ PSRAM的管腳對應關係。
GPIO –具有以下重要功能之一:
Strapping腳位–啟動時邏輯電平需為特定值。詳見章節3啟動配置項目。
JTAG介面–通常用於調試功能。
UART介面–通常用於調試功能。附錄A.1 –腳位清單說明也可參考。
- ESP32 外設Pin腳分配
介面
訊號
Pin腳
功能
ADC
ADC1_CH0
SENSOR_VP
2個12-bit SAR ADC
ADC1_CH1
SENSOR_CAPP
ADC1_CH2
SENSOR_CAPN
ADC1_CH3
SENSOR_VN
ADC1_CH4
32K_XP
ADC1_CH5
32K_XN
ADC1_CH6
VDET_1
ADC1_CH7
VDET_2
ADC
ADC2_CH0
GPIO4
2個12-bit SAR ADC
ADC2_CH1
GPIO0
ADC2_CH2
GPIO2
ADC2_CH3
MTDO
ADC2_CH4
MTCK
ADC2_CH5
MTDI
ADC2_CH6
MTMS
ADC2_CH7
GPIO27
ADC2_CH8
GPIO25
ADC2_CH9
GPIO26
DAC
DAC_1
GPIO25
2個8-bit DAC
DAC_2
GPIO26
觸摸感應器
TOUCH0
GPIO4
電容式觸控感應器
TOUCH1
GPIO0
TOUCH2
GPIO2
TOUCH3
MTDO
TOUCH4
MTCK
TOUCH5
MTDI
TOUCH6
MTMS
TOUCH7
GPIO27
TOUCH8
32K_XN
TOUCH9
32K_XP
JTAG
MTDI
MTDI
軟體調試JTAG
MTCK
MTCK
MTMS
MTMS
MTDO
MTDO
SD/SDIO/MMC主機控制器
HS2_CLK
MTMS
支援V3.01標準SD內存卡
HS2_CMD
MTDO
HS2_DATA0
GPIO2
HS2_DATA1
GPIO4
HS2_DATA2
MTDI
HS2_DATA3
MTCK
介面
訊號
Pin腳
功能
馬達PWM
PWM0_OUT0 ~ 2
任意GPIO管腳
16-bit計時器的3路通道可產生PWM波形,每路包含1對輸出訊號、 3個故障偵測訊號、 3個事件捕捉訊號,及3個同步訊號。
PWM1_OUT_IN0 ~ 2
PWM0_FLT_IN0 ~ 2
PWM1_FLT_IN0 ~ 2
PWM0_CAP_IN0 ~ 2
PWM1_CAP_IN0 ~ 2
PWM0_SYNC_IN0 ~ 2
PWM1_SYNC_IN0 ~ 2
SDIO/SPI從機控制器
SD_CLK
MTMS
SDIO接口,符合SDIO V2.0卡產業標準。
SD_CMD
MTDO
SD_DATA0
GPIO2
SD_DATA1
GPIO4
SD_DATA2
MTDI
SD_DATA3
MTCK
UART
U0RXD_in
任意GPIO管腳
3路UART設備,支援硬體流控制和DMA
U0CTS_in
U0DSR_in
U0TXD_out
U0RTS_out
U0DTR_out
U1RXD_in
U1CTS_in
U1TXD_out
U1RTS_out
U2RXD_in
U2CTS_in
U2TXD_out
U2RTS_out
I2C
I2CEXT0_SCL_in
任意GPIO管腳
2路I2C設備,支援主機或從機模式
I2CEXT0_SDA_in
I2CEXT1_SCL_in
I2CEXT1_SDA_in
I2CEXT0_SCL_out
I2CEXT0_SDA_out
I2CEXT1_SCL_out
I2CEXT1_SDA_out
LED PWM
ledc_hs_sig_out0 ~ 7
任意GPIO管腳
16路獨立通道;採用@80 MHz時脈/RTC時鐘。佔空比精確度:16-bit。
ledc_ls_sig_out0 ~ 7
介面
訊號
Pin腳
功能
I2S
I2S0I_DATA_in0 ~ 15
任意GPIO管腳
用於串列立體聲資料的輸入輸出,並行LCD資料的輸出,camera並行資料的輸入。
註:I2S0_CLK和I2S1_CLK僅可透過IO MUX映射至GPIO0、U0RXD(GPIO3)或U0TXD (GPIO1),選擇GPIO功能CLK_OUT1、CLK_OUT2或CLK_OUT3。
更多信息,請參考
《ESP32技術參考手冊》>章節IO_MUX
和GPIO Matrix > IO MUX Pad清單。
I2S0O_BCK_in
I2S0O_WS_in
I2S0I_BCK_in
I2S0I_WS_in
I2S0I_H_SYNC
I2S0I_V_SYNC
I2S0I_H_ENABLE
I2S0O_BCK_out
I2S0O_WS_out
I2S0I_BCK_out
I2S0I_WS_out
I2S0O_DATA_out0 ~ 23
I2S1I_DATA_in0 ~ 15
I2S1O_BCK_in
I2S1O_WS_in
I2S1I_BCK_in
I2S1I_WS_in
I2S1I_H_SYNC
I2S1I_V_SYNC
I2S1I_H_ENABLE
I2S1O_BCK_out
I2S1O_WS_out
I2S1I_BCK_out
I2S1I_WS_out
I2S1O_DATA_out0 ~ 23
I2S0_CLK
GPIO0 、 U0RXD 、
或U0TXD
I2S1_CLK
紅外線遙控器
RMT_SIG_IN0 ~ 7
任意GPIO管腳
8路IR收發器,支援不同波形標準。
RMT_SIG_OUT0 ~ 7
通用SPI
HSPIQ_in/_out
任意GPIO管腳
Standard SPI介接包括時脈、片選、 MOSI和MISO 。這些介面可連接至LCD等周邊設備,支援以下功能:
主機和從機模式;
4種模式的SPI傳輸格式;
可配置SPI頻率;
高達64位元組FIFO和DMA。
HSPID_in/_out
HSPICLK_in/_out
HSPI_CS0_in/_out
HSPI_CS1_out
HSPI_CS2_out
VSPIQ_in/_out
VSPID_in/_out
VSPICLK_in/_out
VSPI_CS0_in/_out
VSPI_CS1_out
VSPI_CS2_out
介面
訊號
Pin腳
功能
並行QSPI
SPIHD
SD_DATA_2
支援Standard SPI、Dual SPI和Quad SPI
可連接外部Flash和SRAM。
SPIWP
SD_DATA_3
SPICS0
SD_CMD
SPICLK
SD_CLK
SPIQ
SD_DATA_0
SPID
SD_DATA_1
HSPICLK
MTMS
HSPICS0
MTDO
HSPIQ
MTDI
HSPID
MTCK
HSPIHD
GPIO4
HSPIWP
GPIO2
VSPICLK
GPIO18
VSPICS0
GPIO5
VSPIQ
GPIO19
VSPID
GPIO23
VSPIHD
GPIO21
VSPIWP
GPIO22
EMAC
EMAC_TX_CLK
GPIO0
乙太網路MAC、MII/RMII介面
EMAC_RX_CLK
GPIO5
EMAC_TX_EN
GPIO21
EMAC_TXD0
GPIO19
EMAC_TXD1
GPIO22
EMAC_TXD2
MTMS
EMAC_TXD3
MTDI
EMAC_RX_ER
MTCK
EMAC_RX_DV
GPIO27
EMAC_RXD0
GPIO25
EMAC_RXD1
GPIO26
EMAC_RXD2
U0TXD
EMAC_RXD3
MTDO
EMAC_CLK_OUT
GPIO16
EMAC_CLK_OUT_180
GPIO17
EMAC_TX_ER
GPIO4
EMAC_MDC_out
任意GPIO管腳
EMAC_MDI_in
任意GPIO管腳
EMAC_MDO_out
任意GPIO管腳
EMAC_CRS_out
任意GPIO管腳
EMAC_COL_out
任意GPIO管腳
,
介面
訊號
Pin腳
功能
脈衝計數器
pcnt_sig_ch0_in0
任意GPIO管腳
脈衝計數器透過7種模式捕捉脈衝並對脈衝邊緣計數。
pcnt_sig_ch1_in0
pcnt_ctrl_ch0_in0
pcnt_ctrl_ch1_in0
pcnt_sig_ch0_in1
pcnt_sig_ch1_in1
pcnt_ctrl_ch0_in1
pcnt_ctrl_ch1_in1
pcnt_sig_ch0_in2
pcnt_sig_ch1_in2
pcnt_ctrl_ch0_in2
pcnt_ctrl_ch1_in2
pcnt_sig_ch0_in3
pcnt_sig_ch1_in3
pcnt_ctrl_ch0_in3
pcnt_ctrl_ch1_in3
pcnt_sig_ch0_in4
pcnt_sig_ch1_in4
pcnt_ctrl_ch0_in4
pcnt_ctrl_ch1_in4
pcnt_sig_ch0_in5
pcnt_sig_ch1_in5
pcnt_ctrl_ch0_in5
pcnt_ctrl_ch1_in5
pcnt_sig_ch0_in6
pcnt_sig_ch1_in6
pcnt_ctrl_ch0_in6
pcnt_ctrl_ch1_in6
pcnt_sig_ch0_in7
pcnt_sig_ch1_in7
pcnt_ctrl_ch0_in7
pcnt_ctrl_ch1_in7
TWAI
twai_rx
任意GPIO管腳
相容ISO11898-1協定(CAN規範2.0)
twai_tx
twai_bus_off_on
twai_clkout
- https://hackmd.io/@arduino/esp32
NodeMCU-32s開發板環境 - HackMD - https://sites.google.com/site/arduinochutiyan/esp32_%E5%9F%BA%E7%A4%8E/a01esp32-%E8%85%B3%E4%BD%8D
Arduino初體驗 - A01ESP32 腳位 - https://sites.google.com/site/arduinochutiyan/esp32_%E5%9F%BA%E7%A4%8E/a02-%E5%85%A7%E5%BB%BAled%E9%96%83%E7%88%8D
Arduino初體驗 - A02 內建LED閃爍 - https://products.espressif.com/#/product-selector?names=ESP32-D0WD-V3
ESP Product Selector - https://makerpro.cc/2016/04/understand-what-is-uart/
說文解字】認識UART通用非同步收發器 | MakerPRO - https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_cn.pdf
ESP32系列晶片技術規格書 - https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_cn.pdf
ESP32技術參考手冊 - https://docs.espressif.com/projects/esp-idf/zh_CN/v4.4/esp32/hw-reference/esp32/get-started-devkitc.html
ESP32-DevKitC V2 入门指南 - https://www.circuitstate.com/pinouts/doit-esp32-devkit-v1-wifi-development-board-pinout-diagram-and-reference/
DOIT ESP32 DevKit V1 Wi-Fi Development Board - Pinout Diagram & Arduino Reference - CIRCUITSTATE Electronics












沒有留言:
張貼留言