Version 3 (modified by 7 years ago) ( diff ) | ,
---|
ESP-WROOM-32に関するTIPS
ESP-WROOM-32(以下、ESP32と省略)は、Xtensa Dual-Core 32-bit LX6 マイクロプロセッサを搭載する、上海のESPRESSIF社が開発した無線モジュールです。WiFiとBluetooth v4.2に対応しています。 開発ボードはスイッチサイエンスでも販売されている(要追記)他にも、ESPRESSIF社からESP32-DevKitCなどが発売さています。
本ページでは、無線モジュール ESP-WROOM-32の各種機能をArduinoとして使うにあたってのサンプルスケッチや注意点などを解説します。
ピンアサイン
Name | No. | Type | Function |
GND | 1 | P | Ground |
3V3 | 2 | P | Power supply. |
EN | 3 | I | Chip-enable signal. Active high. |
SENSOR_VP | 4 | I | GPIO36, SENSOR_VP, ADC_H, ADC1_CH0, RTC_GPIO0 |
SENSOR_VN | 5 | I | GPIO39, SENSOR_VN, ADC1_CH3, ADC_H, RTC_GPIO3 |
IO34 | 6 | I | GPIO34, ADC1_CH6, RTC_GPIO4 |
IO35 | 7 | I | GPIO35, ADC1_CH7, RTC_GPIO5, GPIO32, XTAL_32K_P (32.768 kHz crystal oscillator input), ADC1_CH4, |
IO32 | 8 | I/O | TOUCH9, RTC_GPIO9, GPIO33, XTAL_32K_N (32.768 kHz crystal oscillator output), ADC1_CH5, |
IO33 | 9 | I/O | TOUCH8, RTC_GPIO8 |
IO25 | 10 | I/O | GPIO25, DAC_1, ADC2_CH8, RTC_GPIO6, EMAC_RXD0 |
IO26 | 11 | I/O | GPIO26, DAC_2, ADC2_CH9, RTC_GPIO7, EMAC_RXD1 |
IO27 | 12 | I/O | GPIO27, ADC2_CH7, TOUCH7, RTC_GPIO17, EMAC_RX_DV, GPIO14, ADC2_CH6, TOUCH6, RTC_GPIO16, MTMS, HSPICLK, |
IO14 | 13 | I/O | HS2_CLK, SD_CLK, EMAC_TXD2, GPIO12, ADC2_CH5, TOUCH5, RTC_GPIO15, MTDI, HSPIQ, |
IO12 | 14 | I/O | HS2_DATA2, SD_DATA2, EMAC_TXD3 |
GND | 15 | P | Ground, GPIO13, ADC2_CH4, TOUCH4, RTC_GPIO14, MTCK, HSPID, |
IO13 | 16 | I/O | HS2_DATA3, SD_DATA3, EMAC_RX_ER |
SHD/SD2* | 17 | I/O | GPIO9, SD_DATA2, SPIHD, HS1_DATA2, U1RXD |
SWP/SD3* | 18 | I/O | GPIO10, SD_DATA3, SPIWP, HS1_DATA3, U1TXD |
SCS/CMD* | 19 | I/O | GPIO11, SD_CMD, SPICS0, HS1_CMD, U1RTS |
SCK/CLK* | 20 | I/O | GPIO6, SD_CLK, SPICLK, HS1_CLK, U1CTS |
SDO/SD0* | 21 | I/O | GPIO7, SD_DATA0, SPIQ, HS1_DATA0, U2RTS |
SDI/SD1* | 22 | I/O | GPIO8, SD_DATA1, SPID, HS1_DATA1, U2CTS, GPIO15, ADC2_CH3, TOUCH3, MTDO, HSPICS0, RTC_GPIO13, |
IO15 | 23 | I/O | HS2_CMD, SD_CMD, EMAC_RXD3, GPIO2, ADC2_CH2, TOUCH2, RTC_GPIO12, HSPIWP, HS2_DATA0, |
IO2 | 24 | I/O | SD_DATA0, GPIO0, ADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1, |
IO0 | 25 | I/O | EMAC_TX_CLK, GPIO4, ADC2_CH0, TOUCH0, RTC_GPIO10, HSPIHD, HS2_DATA1, |
IO4 | 26 | I/O | SD_DATA1, EMAC_TX_ER |
IO16 | 27 | I/O | GPIO16, HS1_DATA4, U2RXD, EMAC_CLK_OUT |
IO17 | 28 | I/O | GPIO17, HS1_DATA5, U2TXD, EMAC_CLK_OUT_180 |
IO5 | 29 | I/O | GPIO5, VSPICS0, HS1_DATA6, EMAC_RX_CLK |
IO18 | 30 | I/O | GPIO18, VSPICLK, HS1_DATA7 |
IO19 | 31 | I/O | GPIO19, VSPIQ, U0CTS, EMAC_TXD0 |
NC | 32 | - | - |
IO21 | 33 | I/O | GPIO21, VSPIHD, EMAC_TX_EN |
RXD0 | 34 | I/O | GPIO3, U0RXD, CLK_OUT2 |
TXD0 | 35 | I/O | GPIO1, U0TXD, CLK_OUT3, EMAC_RXD2 |
IO22 | 36 | I/O | GPIO22, VSPIWP, U0RTS, EMAC_TXD1 |
IO23 | 37 | I/O | GPIO23, VSPID, HS1_STROBE |
GND | 38 | P | Ground |
GND | 39 | P | Ground |
*がついているピン(IO6~11)はモジュール内部でSPIフラッシュメモリに接続されているため、他の用途での利用は推奨されません。
周辺機能のピン割当 =
Wikiのフォーマッティングの都合上少し見にくくなっています。詳しくはPDFでご確認ください。
Interface | Signal | Pin | Function |
ADC1_CH0 | SENSOR_VP | ||
ADC1_CH3 | SENSOR_VN | ||
ADC1_CH4 | IO32 | ||
ADC1_CH5 | IO33 | ||
ADC1_CH6 | IO34 | ||
ADC1_CH7 | IO35 | ||
ADC2_CH0 | IO4 | ||
ADC2_CH1 | IO0 | ||
ADC2_CH2 | IO2 | ||
ADC2_CH3 | IO15 | ||
ADC2_CH4 | IO13 | ||
ADC2_CH5 | IO12 | ||
ADC | ADC2_CH6 | IO14 | Two 12-bit SAR ADCs |
ADC2_CH7 | IO27 | ||
ADC2_CH8 | IO25 | ||
ADC2_CH9 | IO26 | ||
Ultra Low Noise | SENSOR_VP | IO36 | Provides about 60dB gain by using larger capacitors on PCB |
Analog Pre-Amplifier | SENSOR_VN | IO39 | |
DAC_1 | IO25 | ||
DAC | DAC_2 | IO26 | Two 8-bit DACs |
TOUCH0 | IO4 | ||
TOUCH1 | IO0 | ||
TOUCH2 | IO2 | ||
TOUCH3 | IO15 | ||
TOUCH4 | IO13 | ||
TOUCH5 | IO12 | ||
TOUCH6 | IO14 | ||
Touch Sensor | TOUCH7 | IO27 | Capacitive touch sensors |
TOUCH8 | IO33 | ||
TOUCH9 | IO32 | ||
HS2_CLK | MTMS | ||
HS2_CMD | MTDO | ||
HS2_DATA0 | IO2 | ||
SD/SDIO/MMC Host | HS2_DATA1 | IO4 | |
Controller | HS2_DATA2 | MTDI | Supports SD memory card V3.01 standard |
HS2_DATA3 | MTCK | ||
PWM0_OUT0~2 | |||
PWM1_OUT_IN0~2 | |||
PWM0_FLT_IN0~2 | |||
PWM1_FLT_IN0~2 | Three channels of 16-bit timers generate PWM waveforms; each has a pair of output signals. Three fault detection | ||
PWM0_CAP_IN0~2 | signals. Three event capture signals. Three sync signals. | ||
PWM1_CAP_IN0~2 | |||
Motor PWM | PWM0_SYNC_IN0~2 | Any GPIOs* | |
PWM1_SYNC_IN0~2 | |||
ledc_hs_sig_out0~7 | 16 independent channels @80 MHz clock/RTC CLK. Duty accuracy: 16 bits. | ||
LED PWM | ledc_ls_sig_out0~7 | Any GPIOs* | |
U0RXD_in | |||
U0CTS_in | |||
U0DSR_in | |||
U0TXD_out | |||
U0RTS_out | |||
U0DTR_out | |||
U1RXD_in | |||
U1CTS_in | |||
U1TXD_out | |||
U1RTS_out | |||
UART | U2RXD_in | Any GPIOs* | Two UART devices with hardware flow-control and DMA |
U2CTS_in | |||
U2TXD_out | |||
U2RTS_out | |||
I2CEXT0_SCL_in | |||
I2CEXT0_SDA_in | |||
I2CEXT1_SCL_in | |||
I2CEXT1_SDA_in | |||
I2CEXT0_SCL_out | |||
I2CEXT0_SDA_out | |||
I2C | I2CEXT1_SCL_out | Any GPIOs* | Two I2C devices in slave or master modes |
I2CEXT1_SDA_out | |||
I2S0I_DATA_in0~15 | |||
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 | "Stereo input and output from/to the audio codec, and parallel LCD data output" | ||
I2S | I2S1I_H_ENABLE | Any GPIOs* | |
I2S1O_BCK_out | |||
I2S1O_WS_out | |||
I2S1I_BCK_out | |||
I2S1I_WS_out | |||
I2S1O_DATA_out0~23 | |||
RMT_SIG_IN0~7 | Eight channels of IR transmitter and receiver for various waveforms | ||
Remote Controller | RMT_SIG_OUT0~7 | Any GPIOs* | |
SPIHD | SHD/SD2 | ||
SPIWP | SWP/SD3 | ||
SPICS0 | SCS/CMD | ||
SPICLK | SCK/CLK | ||
SPIQ | SDO/SD0 | ||
SPID | SDI/SD1 | ||
HSPICLK | IO14 | ||
HSPICS0 | IO15 | ||
HSPIQ | IO12 | ||
HSPID | IO13 | ||
HSPIHD | IO4 | ||
HSPIWP | IO2 | ||
VSPICLK | IO18 | "Supports Standard SPI, Dual SPI, and Quad SPI that can be connected to the external flash and SRAM" | |
Parallel QSPI | VSPICS0 | IO5 | |
VSPIQ | IO19 | ||
VSPID | IO23 | ||
VSPIHD | IO21 | ||
VSPIWP | IO22 | ||
HSPIQ_in/_out | "Standard SPI consists of clock," | ||
HSPID_in/_out | "chip-select, MOSI and MISO. These SPIs can be connected to LCD and other external devices. They support the following features:" | ||
HSPICLK_in/_out | ? both master and slave modes; | ||
HSPI_CS0_in/_out | ? 4 sub-modes of the SPI format transfer that depend on the clock phase (CPHA) and clock polarity (CPOL) control; | ||
HSPI_CS1_out | ? CLK frequencies by a divider; | ||
HSPI_CS2_out | ? up to 64 bytes of FIFO and DMA. | ||
VSPIQ_in/_out | |||
VSPID_in/_out | |||
General Purpose | VSPICLK_in/_out | ||
SPI | VSPI_CS0_in/_out | Any GPIOs* | |
VSPI_CS1_out | |||
VSPI_CS2_out | |||
MTDI | IO12 | ||
MTCK | IO13 | ||
MTMS | IO14 | ||
JTAG | MTDO | IO15 | JTAG for software debugging |
SD_CLK | IO6 | ||
SD_CMD | IO11 | SDIO interface that conforms to the industry standard SDIO 2.0 card specification. On ESP-WROOM-32 these pins are connected to the integrated SPI flash. | |
SD_DATA0 | IO7 | ||
SD_DATA1 | IO8 | ||
SDIO Slave | SD_DATA2 | IO9 | |
SD_DATA3 | IO10 | ||
EMAC_TX_CLK | IO0 | ||
EMAC_RX_CLK | IO5 | ||
EMAC_TX_EN | IO21 | ||
EMAC_TXD0 | IO19 | ||
EMAC_TXD1 | IO22 | ||
EMAC_TXD2 | IO14 | ||
EMAC_TXD3 | IO12 | ||
EMAC_RX_ER | IO13 | ||
EMAC_RX_DV | IO27 | ||
EMAC_RXD0 | IO25 | ||
EMAC_RXD1 | IO26 | ||
EMAC_RXD2 | TXD | ||
EMAC_RXD3 | IO15 | ||
EMAC_CLK_OUT | IO16 | ||
EMAC_CLK_OUT_180 | IO17 | ||
EMAC_TX_ER | IO4 | ||
EMAC | EMAC_MDC_out | Any GPIOs* | Ethernet MAC with MII/RMII interface |
EMAC_MDI_in | Any GPIOs* | ||
EMAC_MDO_out | Any GPIOs* | ||
EMAC_CRS_out | Any GPIOs* | ||
EMAC_COL_out | Any GPIOs* |
SPI通信
複雑で、理解が少し困難です。ざっくり結論を述べると、基本的に好きなピンをSPI通信に利用することができます。
内部の仕様について
ESP32に搭載されているコントローラーにはSPIモジュールが3つ内蔵されています。それぞれ、
- SPI
- HSPI
- VSPI
の名称がつけられています。このうち、SPIに関しては上記ピンアサインの項目の通りFSPIとして内蔵FLASHとの接続に使われています。よって、普段周辺機器を接続する際にはHSPIもしくはVSPIの回路を利用することになります。
一方で、ArduinoのSPIライブラリは、ライブラリ中に定義されるように、VSPI回路を利用します。更に、独自にSPIクラスをインスタンス化すると、こちらにあるようにHSPIが利用されます。
各SPIモジュールのピンアサインは以下の通りです。
Attachments (9)
- hall.png (78.0 KB ) - added by 7 years ago.
- pinout_v0_1.png (100.1 KB ) - added by 7 years ago.
- pinout_v0_1.pdf (106.5 KB ) - added by 7 years ago.
- 32kxtal.jpg (65.8 KB ) - added by 6 years ago.
- 3210_1.JPG (40.5 KB ) - added by 6 years ago.
- pinout_v0_2.pdf (362.3 KB ) - added by 6 years ago.
- pinout_v0_2.png (102.6 KB ) - added by 6 years ago.
-
pinout_v0_2a.pdf
(190.4 KB
) - added by 3 years ago.
ピンアウト図修正版(PDF)
-
pinout_v0_2a.png
(78.6 KB
) - added by 3 years ago.
ピンアウト図修正版
Download all attachments as: .zip