Seeed Studio XIAO ESP32-C5 入門ガイド
はじめに
| Seeed Studio XIAO ESP32-C5 |
|---|
![]() |
仕様
| 項目 | Seeed Studio XIAO ESP32-C5 | Seeed Studio XIAO ESP32-S3 | Seeed Studio XIAO ESP32-C3 | Seeed Studio XIAO ESP32-C6 |
|---|---|---|---|---|
| プロセッサ | ESP32-C5 RISC-V 32-bit @240 MHz | ESP32R8N8 32-bit Xtensa LX7 dual-core @240 MHz | ESP32-C3 32-bit RISC-V @160 MHz | ESP32-C6 32-bit RISC-V @160 MHz |
| ワイヤレス接続 | 2.4 GHz & 5 GHz デュアルバンド Wi-Fi 6 および Bluetooth 5 (LE) | 2.4 GHz Wi-Fi および Bluetooth 5 (LE) | 2.4 GHz Wi-Fi および Bluetooth 5 (LE) | 2.4 GHz Wi-Fi 6、Bluetooth 5 (LE) |
| メモリ | 8 MB PSRAM & 8 MB Flash | 8 MB PSRAM & 8 MB Flash | 400 KB SRAM, 4 MB Flash | 512KB SRAM , 4MB Flash |
| インターフェース | I2C / UART / SPI | I2C / UART / SPI | I2C / UART / SPI | I2C / UART / SPI |
| PWM/アナログピン | 11 / 5 | 11 / 9 | 11 / 4 | 11 / 7 |
| オンボードボタン | Reset / Boot Button | Reset / Boot Button | Reset / Boot Button | Reset button / Boot button |
| オンボードLED | Charge / USER LED | Charge / USER LED | Charge LED | Charge / USER LED |
| バッテリー充電チップ | SGM40567 | SGM40567 | ETA4054S2F | SGM40567 |
特徴
- 強力なCPU: ESP32-C5、最大240 MHzで動作する32ビットRISC-Vシングルコアプロセッサ
- 完全なWi-Fiサブシステム: IEEE 802.11 a/b/g/n/ac/ax準拠のデュアルバンドWi-Fi 6サブシステム(2.4 GHzおよび5 GHz)、Station、SoftAP、同時SoftAP+Station動作、およびプロミスキャス(モニタ)モードをサポート。
- Bluetooth LEサブシステム: Bluetooth 5およびBluetoothメッシュの機能をサポート
- 優れたRF性能: 外部RFアンテナが含まれています。
- バッテリー充電チップ: リチウムバッテリーの充電および放電管理をサポート。
- 豊富なオンチップリソース: 384 KBオンチップSRAM、320 KB ROM
- 超小型サイズ: 親指ほどの小ささ(21x17.8mm)XIAOシリーズクラシックフォームファクタで、ウェアラブルデバイスや小型プロジェクトに最適
- 信頼性の高いセキュリティ機能: AES-128/256、SHAファミリーハッシュ、HMAC、専用デジタル署名ペリフェラル、およびSecure Boot(V2)をサポートする暗号化ハードウェアアクセラレータ。
- 豊富なインターフェース: 1×I2C、1×SPI、2×UART、最大11×GPIO(PWM対応)、5×ADCチャンネル、およびJTAG(裏面のパッド)ボンディングパッドインターフェース。
- 片面実装部品、表面実装設計
ハードウェア概要
| XIAO ESP32-C5 表示図 |
|---|
![]() |
| XIAO ESP32-C5 ピンリスト |
![]() |
ピンマップ
| XIAOピン | 機能 | チップピン | 代替機能 | 説明 |
|---|---|---|---|---|
| 5V | VBUS | 電源入力/出力 | ||
| GND | ||||
| 3V3 | 3V3_OUT | 電源出力 | ||
| D0 | Analog | GPIO1 | LP_UART_DSRN, LP_GPIO1 | GPIO、ADC |
| D1 | GPIO0 | LP_UART_DTRN, LP_GPIO0 | GPIO | |
| D2 | GPIO25 | GPIO | ||
| D3 | GPIO7 | SDIO_DATA1 | GPIO | |
| D4 | SDA | GPIO23 | GPIO、I2Cデータ | |
| D5 | SCL | GPIO24 | GPIO、I2Cクロック | |
| D6 | TX | GPIO11 | GPIO、UART送信 | |
| D7 | RX | GPIO12 | GPIO、UART受信 | |
| D8 | SCK | GPIO8 | TOUCH7 | GPIO、SPIクロック |
| D9 | MISO | GPIO9 | TOUCH8 | GPIO、SPIデータ |
| D10 | MOSI | GPIO10 | TOUCH9 | GPIO、SPIデータ |
| MTDO | GPIO5 | LP_UART_TXD, LP_GPIO5 | JTAG | |
| MTDI | GPIO3 | LP_I2C_SCL, LP_GPIO3 | JTAG、ADC | |
| MTCK | GPIO4 | LP_UART_RXD, LP_GPIO4 | JTAG、ADC | |
| MTMS | GPIO2 | LP_I2C_SDA, LP_GPIO2 | JTAG、ADC | |
| ADC_BAT | GPIO6 | BAT電圧値を読み取り | ||
| ADC_CRL | GPIO26 | 電力を節約するために測定回路を制御(有効/無効)します。 | ||
| Reset | CHIP_EN | EN | ||
| Boot | GPIO28 | ブートモードに入る | ||
| U.FL-R-SMT1 | LNA_IN | UFLアンテナ | ||
| CHARGE_LED | VCC_3V3 | CHG-LED_Red | ||
| USER_LED | GPIO27 | ユーザーライト_Yellow |
入門ガイド
XIAO ESP32-C5をより早く使い始められるように、以下のハードウェアとソフトウェアの準備を読んでXIAOを準備してください。
ハードウェア
以下を準備する必要があります:
- 1 x Seeed Studio XIAO ESP32-C5
- 1 x コンピュータ
- 1 x USB Type-Cケーブル
| Seeed Studio XIAO ESP32-C5 |
|---|
![]() |
一部のUSBケーブルは電力供給のみで、データ転送ができません。USBケーブルをお持ちでない場合、またはお持ちのUSBケーブルがデータ転送可能かわからない場合は、Seeed USB Type-C support USB 3.1をご確認ください。
ソフトウェア
XIAO ESP32-C5の推奨プログラミングツールはArduino IDEですので、ソフトウェア準備の一環としてArduinoのインストールを完了する必要があります。
Arduinoを初めて使用する場合は、Getting Started with Arduinoを参照することを強くお勧めします。
-
ステップ 1. お使いのオペレーティングシステムに応じて、Arduino IDEの安定版をダウンロードしてインストールします。
-
ステップ 2. Arduinoアプリケーションを起動します。
-
ステップ 3. BOARDS MANAGER を開く -> esp32 を検索 -> バージョン3.3.5以上をインストール

プログラムのアップロード
以下では点灯プログラムを例に説明します
ステップ 1. XIAO_ESP32C5 と PORT を選択します。PORT が分からない場合は、XIAO_ESP32C5 を再挿入して取り外し、確認してください。

ステップ 2. スケッチにコードを貼り付けます
LED_BUILTIN は開発ボード上の L LED に対応しています。
void setup() {
// put your setup code here, to run once:
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(LED_BUILTIN, LOW);
Serial.print("LED ON \n");
delay(1000);
digitalWrite(LED_BUILTIN, HIGH);
Serial.print("LED OFF \n");
delay(1000);
}
ステップ 3. クリックしてアップロードします

効果のデモンストレーション:
プログラムをアップロードすると、L インジケータライトが 1 秒間隔で点滅し、同時にシリアルモニタに LED ON と LED OFF が印刷されます。


ディープスリープモード
XIAO ESP32-C5 はディープスリープとウェイクアップ機能を備えています。この例では、ピン D0 のハイレベルトリガーを使用してデバイスをディープスリープから起こします。
これは設定可能なオプションであることに注意することが重要です。ハードウェアは異なる回路設計に対応するため、ハイレベルとローレベルの両方のトリガーをサポートしています。
#define WAKEUP_PIN D0 // LP_GPIO1
RTC_DATA_ATTR int bootCount = 0;
void print_wakeup_reason(){
esp_sleep_wakeup_cause_t wakeup_reason = esp_sleep_get_wakeup_cause();
switch(wakeup_reason)
{
case ESP_SLEEP_WAKEUP_EXT0 : Serial.println("Wakeup caused by external signal using RTC_IO"); break;
case ESP_SLEEP_WAKEUP_EXT1 : Serial.println("Wakeup caused by external signal using RTC_CNTL"); break;
case ESP_SLEEP_WAKEUP_TIMER : Serial.println("Wakeup caused by timer"); break;
case ESP_SLEEP_WAKEUP_TOUCHPAD : Serial.println("Wakeup caused by touchpad"); break;
case ESP_SLEEP_WAKEUP_ULP : Serial.println("Wakeup caused by ULP program"); break;
case ESP_SLEEP_WAKEUP_GPIO : Serial.println("Wakeup caused by GPIO"); break;
default : Serial.printf("Wakeup was not caused by deep sleep: %d\n",wakeup_reason); break;
}
}
void setup(){
Serial.begin(115200);
delay(1000);
++bootCount;
Serial.println("Boot number: " + String(bootCount));
print_wakeup_reason();
pinMode(WAKEUP_PIN, INPUT_PULLUP);
pinMode(LED_BUILTIN, OUTPUT);
uint64_t mask = 1ULL << WAKEUP_PIN;
esp_deep_sleep_enable_gpio_wakeup(mask, ESP_GPIO_WAKEUP_GPIO_HIGH);
digitalWrite(LED_BUILTIN, LOW);
delay(100);
digitalWrite(LED_BUILTIN, HIGH);
delay(2000); //Delay time depends on the serial port / Give the PC time to stabilize
Serial.println("Going to sleep now");
esp_deep_sleep_start();
}
void loop(){}
XIAO がディープスリープに入る前にシリアルモニタを開くのが十分に早ければ、以下に示すようなメッセージ出力を見ることができます。これは XIAO が現在スリープ状態であることを意味します。その後、ボタンを押すことで表示して起動することもできます。デバイスが起動されたかどうかを確認するために、L LED のオン・オフ状態を観察することもできます。起動されると、点滅効果を示します。

ディープスリープモードに入った後、XIAO のポートは消失し、再びポート番号を確認するには起動する必要があります!
XIAO ESP32-C5 は GPIO ウェイクアップとタイマーウェイクアップをサポートしています。低消費電力開発中にハードウェアデバッグ機能の喪失とファームウェアフラッシュの困難を防ぐため、JTAG(MTMS、MTDI、MTCK、MTDO)ピンを専用使用のために予約し、ディープスリープモードのウェイクアップソースとして使用しないことを強く推奨します。
バッテリー使用
XIAO ESP32-C5 は 3.7V リチウムバッテリーを電源供給入力として使用することができます。配線方法については、以下の図を参照してください。

はんだ付け時に正極と負極を短絡させてバッテリーと機器を燃やさないよう注意してください。
バッテリー使用に関する注意事項:
- 仕様を満たす適格なバッテリーを使用してください。
- XIAO はバッテリーを使用しながらデータケーブル経由でコンピュータデバイスに接続できます。XIAO には回路保護チップが内蔵されているため安全です。
- XIAO ESP32-C5 がバッテリーで電源供給されている場合、C LED が点灯します。これを充電管理が実行されているかどうかを判断する基準として使用できます。
バッテリー電圧の確認
XIAO ESP32-C5 は SGM40567 バッテリー充電チップと TPS22916CYFPR バッテリー電圧取得チップを搭載しています。BAT_VOLT_PIN_EN を有効にしてバッテリー電圧取得機能を起動し、BAT_VOLT_PIN を通じてバッテリー電圧を読み取ることができます。
XIAO ESP32C5 では、BAT_VOLT_PIN に対応するピンは GPIO6 で、BAT_VOLT_PIN_EN に対応するピンは GPIO26 です。
#include <Arduino.h>
void setup() {
Serial.begin(115200);
pinMode(BAT_VOLT_PIN, INPUT); // Configure A0 as ADC input
pinMode(BAT_VOLT_PIN_EN , OUTPUT);
digitalWrite(BAT_VOLT_PIN_EN , HIGH);
}
void loop() {
uint32_t Vbatt = 0;
for(int i = 0; i < 16; i++) {
Vbatt += analogReadMilliVolts(BAT_VOLT_PIN ); // Read and accumulate ADC voltage
}
float Vbattf = 2 * Vbatt / 16 / 1000.0; // Adjust for 1:2 divider and convert to volts
Serial.println(Vbattf, 3); // Output voltage to 3 decimal places
delay(1000); // Wait for 1 second
}
-
analogReadMilliVolts(BAT_Voltage_Read)- この関数は
BAT_VOLT_PINピンから現在のアナログ電圧を読み取り、ミリボルト(mV)単位で校正された電圧値を返すために使用されます。 - 生の ADC 値のみを提供する従来の
analogRead()とは異なり、analogReadMilliVolts()はチップに埋め込まれた工場校正パラメータを自動的に適用します。これにより、より高い精度、電圧測定の線形性の向上が実現され、手動での ADC から電圧への変換が不要になります。 - 電圧サンプリングプロセス中、
forループを通じて 16 回の繰り返しサンプリングが実行され、結果が累積されます。複数回サンプリングの目的は、過渡ノイズと離散エラーを抑制し、測定安定性を向上させることです。最後に、累積値をサンプル数(16)で割って、よりスムーズで信頼性の高い平均電圧値を取得します。
- この関数は

データシートによると、ESP32-C5 の有効測定範囲は 0〜3300 mV をカバーしています。そのため、XIAO ESP32-C5 の内蔵バッテリー電圧取得回路は、電圧分割用に 2 つの 100K 抵抗で設計されており、正確な値の読み取りを可能にしています。
リソース
-
[PDF] ESP32-C5 データシート
-
[PCB 設計ファイル] XIAO ESP32-C5 KiCad プロジェクト
-
[回路図] XIAO ESP32-C5 回路図
-
[XLSX] XIAO ESP32-C5 ピン配置シート
-
[Kicad] XIAO ESP32-C5 フットプリント
-
[STEP] XIAO ESP32-C5 STEP ファイル
技術サポート & 製品ディスカッション
弊社製品をお選びいただきありがとうございます!弊社製品での体験ができるだけスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、複数のコミュニケーションチャネルを提供しています。



