Changes between Version 4 and Version 5 of esp32_tips
- Timestamp:
- May 6, 2017 12:10:35 AM (7 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
esp32_tips
v4 v5 1 1 = ESP-WROOM-32に関するTIPS = 2 2 3 ESP-WROOM-32 (以下、ESP32と省略)は、Xtensa Dual-Core 32-bit LX6 マイクロプロセッサを搭載する、上海のESPRESSIF社が開発した無線モジュールです。WiFiとBluetooth v4.2に対応しています。 開発ボードはスイッチサイエンスでも販売されている(要追記)他にも、ESPRESSIF社からESP32-DevKitCなどが発売さています。3 ESP-WROOM-32は、Xtensa Dual-Core 32-bit LX6 マイクロプロセッサを搭載する、上海のESPRESSIF社が開発した無線モジュールです。WiFiとBluetooth v4.2に対応しています。 開発ボードはスイッチサイエンスでも販売されている(要追記)他にも、ESPRESSIF社からESP32-DevKitCなどが発売さています。 4 4 5 5 本ページでは、無線モジュール ESP-WROOM-32の各種機能をArduinoとして使うにあたってのサンプルスケッチや注意点などを解説します。 6 ESP32と呼ぶときはコントローラーそのもの、無線モジュール全体を指すときはESP-WROOM-32と記述しています。 7 6 8 ---- 7 9 … … 70 72 ただし、以下の制約があります。 71 73 * GPIO 34~39 ピンは出力には使えない 72 * GPIO 0,2 ピンはブートモードの設定に利用される 73 * GPIO 12 は内蔵LDOの電圧設定に利用される 74 * GPIO 15 はU0TXDピンのデバッグログの設定に利用される 75 * Ethernet, SDIO, SPI, JTAG, UARTなどの高速信号は、パフォーマンス低下を回避するためにGPIOマトリクスを介さないで接続でき、その場合は出力ピンが固定される。 74 * GPIO 0,2 ピンは回路的にブートモードの設定に利用されることがあり、実際ほぼこの通り使われていると考えます 75 * GPIO 1,3 ピンは回路的にUART通信(U0RXD、U0TXD)に利用されることがあり、実際ほぼこの通り使われていると考えます 76 * GPIO 12 は内蔵LDOの電圧設定に利用されることがある 77 * GPIO 15 はU0TXDピンのデバッグログの設定に利用されることがある 78 * Ethernet, SDIO, SPI, JTAG, UARTなどの高速信号は、パフォーマンス低下を回避するためにGPIOマトリクスを介さないで接続可能なものがあり、その場合は出力ピンが固定される 79 * GPIO 6~11 はESP-WROOM-32モジュール内部では既にFLASHメモリと接続されている 80 81 特に、GPIO 0,2に関しては電圧を固定してしまうと以降ArduinoIDEなどからのスケッチの書き込みができなくなるため、注意が必要です。更には、ESP-WROOM-32モジュールには内蔵FLASHメモリのために幾つかの回路が配線済みであるため、SDIO Slaveの機能やParallel QSPIといった機能は使えません。 76 82 77 83 == SPI通信 == … … 79 85 === 内部の仕様について === 80 86 81 ESP 32に搭載されているコントローラーにはSPIモジュールが3つ内蔵されています。それぞれ、87 ESP-WROOM-32に搭載されているコントローラーにはSPIモジュールが3つ内蔵されています。それぞれ、 82 88 83 89 * SPI … … 85 91 * VSPI 86 92 87 の名称がつけられています。このうち、SPIに関しては上記ピンアサインの項目の通りFSPIとして内蔵FLASHとの接続に使われています。よって、普段周辺機器を接続する際にはHSPIもしくはVSPIの回路を利用することになります。 93 の名称がつけられています。このうち、SPIに関しては上記ピンアサインの項目の通りFSPIとして内蔵FLASHとの接続に使われています。よって、普段周辺機器を接続する際にはHSPIもしくはVSPIの回路を利用することになります。この2つに関しては、SlaveとMasterどちらも利用可能です。 88 94 89 95 一方で、ArduinoのSPIライブラリは、[https://github.com/espressif/arduino-esp32/blob/3cbc405edf2448cf1d77b0a30a5e62ddab806a85/libraries/SPI/src/SPI.cpp#L277 ライブラリ中]に定義されるように、VSPI回路を利用します。更に、独自にSPIクラスをインスタンス化すると、[https://github.com/espressif/arduino-esp32/blob/3cbc405edf2448cf1d77b0a30a5e62ddab806a85/libraries/SPI/src/SPI.h#L53 こちら]にあるようにHSPIが利用されます。 90 96 91 各SPIモジュールのピンアサインは以下の通りです。 97 各SPIモジュールのピンアサインは以下の通りです。ただし、GPIOマトリックスの項目で説明した通り、比較的自由にリマッピング可能です。 98 * HSPI - SCK,MISO,MOSI,SS = 14,12,13,15 99 * VSPI - SCK,MISO,MOSI,SS = 18,19,23,5 100 101 === サンプルスケッチ === 102 103 以上の仕様と、GPIOマトリックス機能を合わせると、ものによってはブレッドボードに上手く挿すだけでジャンパワイヤなしに通信が可能です。 92 104 93 105 106 == I^2^C通信 == 94 107 108 == GPIO == 109 110 == ADC == 111 112 == DAC == 113 114 == PWM == 115 116 == ホールセンサ == 117 118 == 温度センサー == 119 120 == タッチセンサ ==