ESP32 ソフトウェア 回路設計

ESP32 UART完全ガイド|UART0・UART1・UART2の違いと使い方を現役エンジニアが解説

投稿日:

ESP32は、Wi-FiやBluetoothだけでなく、UART(Universal Asynchronous Receiver/Transmitter)を使ったシリアル通信にも優れたマイコンです。

センサーやGPSモジュール、RS-485変換器、USB-シリアル変換ICなど、多くの周辺機器と接続できるため、IoT機器や組み込みシステムでは欠かせない通信インターフェースとなっています。

しかし、ESP32を使い始めた方からは、次のような疑問をよく聞きます。

  • UART0・UART1・UART2の違いは?
  • デバッグ用のUARTとユーザーアプリで使うUARTは分けるべき?
  • GPIOは自由に変更できるの?
  • USBシリアル書き込みとUART通信は競合しない?

この記事では、ESP32のUARTの基本から、開発時・製品化時に知っておきたいポイントまで、実務目線で分かりやすく解説します。

UARTとは?

UARTは、マイコンと外部機器がシリアル通信を行うための代表的なインターフェースです。

SPIやI²Cとは異なり、基本的には

  • TX(送信)
  • RX(受信)

の2本の信号線で通信できるため、構成がシンプルで扱いやすいという特長があります。

ESP32では、デバッグログの出力だけでなく、

  • GNSS(GPS)モジュール
  • セルラーモデム
  • Bluetoothモジュール
  • RS-232/RS-485変換器
  • 他のマイコン

など、さまざまな機器との接続にUARTが利用されています。

ESP32には複数のUARTが搭載されている

ESP32には複数のUARTコントローラが搭載されています。

一般的なESP32では、

  • UART0
  • UART1
  • UART2

の3つを利用できます。

このうちUART0は、多くの開発ボードでUSB-シリアル変換ICに接続されており、

  • プログラムの書き込み
  • シリアルモニターへのログ出力

に使用されることが一般的です。

そのため、UART0をユーザーアプリケーションで使用する場合は、書き込みやデバッグへの影響を考慮する必要があります。

一方、UART1やUART2は、外部機器との通信に利用されることが多く、センサーや通信モジュールとの接続に適しています。

GPIOは自由に割り当てられる

ESP32の大きな特長の一つが、GPIOマトリクス機能です。

UARTのTX・RX信号は、多くのGPIOへ割り当てることができるため、基板設計の自由度が高くなります。

例えば、回路レイアウトや他の周辺機能との兼ね合いに応じて、UARTの使用ピンを変更できるケースも少なくありません。

ただし、すべてのGPIOが同じように使えるわけではありません。

ブートストラップピンや入力専用ピンなど、用途に注意が必要なGPIOも存在するため、ピン配置はデータシートや技術資料を確認したうえで決定することが重要です。

UART0・UART1・UART2の使い分け

ESP32には複数のUARTが搭載されていますが、それぞれ役割を意識して使い分けることで、開発や保守がしやすくなります。

UART0

UART0は、多くのESP32開発ボードでUSB-シリアル変換ICと接続されています。

そのため、

  • プログラムの書き込み
  • ブートログの表示
  • デバッグメッセージの出力

に使用されることが一般的です。

製品開発では、UART0をそのままデバッグ専用として残しておくと、不具合解析やメンテナンスが容易になります。

UART1・UART2

UART1とUART2は、外部機器との通信に使用されることが多いUARTです。

例えば、

  • GNSS(GPS)モジュール
  • LTE/5G通信モジュール
  • RS-232・RS-485変換器
  • 他のマイコン
  • PLCや産業機器

などとの接続に適しています。

ESP32ではGPIOマトリクス機能により、多くのGPIOへTX・RXを割り当てられるため、基板設計の自由度が高いことも特徴です。

ESP-IDFでUARTを使用する流れ

ESP-IDFでは、UARTは次のような手順で利用します。

  1. UARTの通信条件を設定する
  2. UARTドライバをインストールする
  3. TX・RXピンを設定する
  4. データの送受信を行う

このように、ESP-IDFではUARTドライバが用意されているため、レジスタを直接操作することなく実装できます。

通信速度やパリティ、ストップビットなどもAPIから設定できるため、さまざまな機器との接続に対応できます。

UART利用時によくあるトラブル

UART通信で相談を受ける内容として、次のようなものがあります。

  • TXとRXを逆に接続している
  • ボーレートが一致していない
  • GPIOの割り当てミス
  • USBシリアルと外部UARTを混在させている
  • フロー制御の設定が一致していない

特にUART0は、書き込みやデバッグにも使用されるため、用途を十分に理解したうえで利用することが大切です。

通信ができない場合は、配線だけでなく、ソフトウェア側の設定も合わせて確認しましょう。

設計時のポイント

実務では、次のような構成をおすすめします。

  • UART0:書き込み・デバッグ専用
  • UART1:ユーザー機器との通信
  • UART2:予備、または追加機器との通信

このように役割を分けることで、ソフトウェアの保守性が向上し、トラブル発生時の切り分けも容易になります。

また、UARTのTX・RXをコネクタへ引き出しておくと、量産後の保守や現地調査にも役立ちます。

まとめ

ESP32には複数のUARTが搭載されており、GPIOマトリクス機能によって柔軟にピンを割り当てられます。

一方で、UART0は書き込みやデバッグにも使用されるため、用途を理解したうえで設計することが重要です。

UART1・UART2を外部機器との通信に活用し、それぞれの役割を明確に分けることで、開発効率や保守性を高めることができます。

ESP32は、Wi-FiやBluetoothだけでなく、有線シリアル通信にも優れたマイコンです。

UARTの特徴を理解し、用途に応じて使い分けることで、より安定したシステム設計につながるでしょう。

※本記事はESP32(オリジナル)を中心に説明しています。ESP32-C3、C5、S3ではUART数や利用可能なGPIOが異なるため、詳細は各データシートをご確認ください。

技術は、経験から価値になる。

DLROW Design

スポンサーリンク

スポンサーリンク

-ESP32, ソフトウェア, 回路設計

Copyright© 江藤良樹の仕事は物づくり , 2026 All Rights Reserved.