メインコンテンツまでスキップ

Seeed Studio XIAO ESP32-C5 入門ガイド

はじめに

Seeed Studio XIAO ESP32-C5

仕様

項目Seeed Studio XIAO ESP32-C5Seeed Studio XIAO ESP32-S3Seeed Studio XIAO ESP32-C3Seeed Studio XIAO ESP32-C6
プロセッサESP32-C5 RISC-V 32-bit @240 MHzESP32R8N8 32-bit Xtensa LX7 デュアルコア @240 MHzESP32-C3 32-bit RISC-V @160 MHzESP32-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 Flash8 MB PSRAM & 8 MB Flash400 KB SRAM, 4 MB Flash512KB SRAM , 4MB Flash
インターフェースI2C / UART / SPII2C / UART / SPII2C / UART / SPII2C / UART / SPI
PWM/アナログピン11 / 511 / 911 / 411 / 7
オンボードボタンReset / Boot ButtonReset / Boot ButtonReset / Boot ButtonReset button / Boot button
オンボードLEDCharge / USER LEDCharge / USER LEDCharge LEDCharge / USER LED
バッテリー充電チップSGM40567SGM40567ETA4054S2FSGM40567

特長

  • 高性能 CPU: ESP32-C5、最大 240 MHz で動作する 32­bit 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 mesh の機能をサポート
  • 優れた 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 ピン機能チップピン代替機能説明
5VVBUS電源入力/出力
GND
3V33V3_OUT電源出力
D0AnalogGPIO1LP_UART_DSRN, LP_GPIO1GPIO、ADC
D1GPIO0LP_UART_DTRN, LP_GPIO0GPIO
D2GPIO25GPIO
D3GPIO7SDIO_DATA1GPIO
D4SDAGPIO23GPIO、I2C データ
D5SCLGPIO24GPIO、I2C クロック
D6TXGPIO11GPIO、UART 送信
D7RXGPIO12GPIO、UART 受信
D8SCKGPIO8TOUCH7GPIO、SPI クロック
D9MISOGPIO9TOUCH8GPIO、SPI データ
D10MOSIGPIO10TOUCH9GPIO、SPI データ
MTDOGPIO5LP_UART_TXD, LP_GPIO5JTAG
MTDIGPIO3LP_I2C_SCL, LP_GPIO3JTAG、ADC
MTCKGPIO4LP_UART_RXD, LP_GPIO4JTAG、ADC
MTMSGPIO2LP_I2C_SDA, LP_GPIO2JTAG、ADC
ADC_BATGPIO6BAT 電圧値を読み取る
ADC_CRLGPIO26省電力のため測定回路を制御(有効/無効)する
ResetCHIP_ENEN
BootGPIO28ブートモードに入る
U.FL-R-SMT1LNA_INUFL アンテナ
CHARGE_LEDVCC_3V3CHG-LED_Red
USER_LEDGPIO27User Light_Yellow

はじめに

XIAO ESP32-C5 をすばやく使い始められるように、以下のハードウェアおよびソフトウェアの準備を読んで、XIAO を準備してください。

ハードウェア

次のものを用意する必要があります:

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_ESP3-2C5 を抜き差しして確認してください。

ステップ 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 リチウムバッテリーを電源入力として使用することができます。配線方法については、以下の図を参照してください。

pir
注意

はんだ付けの際には、正極と負極を短絡させてバッテリーや機器を損傷させないよう十分注意してください。

バッテリー使用上の注意:

  1. 規格を満たした認定バッテリーを使用してください。
  2. バッテリー使用中でも、XIAO はデータケーブルを介してコンピュータデバイスに接続できます。XIAO には保護回路チップが内蔵されているため、安全にご使用いただけます。
  3. 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)単位の較正済み電圧値を返すために使用されます。
    • 従来の analogRead() が生の ADC 値のみを提供するのとは異なり、analogReadMilliVolts() はチップに組み込まれた工場出荷時のキャリブレーションパラメータを自動的に適用します。これにより、電圧測定の精度が向上し、線形性が改善され、手動での ADC から電圧への変換が不要になります。
    • 電圧サンプリング処理中は、for ループを通じて16 回の繰り返しサンプリングが行われ、その結果が加算されます。複数回サンプリングを行う目的は、瞬間的なノイズや離散誤差を抑制し、測定の安定性を高めることです。最後に、累積値をサンプル数(16)で割ることで、より平滑で信頼性の高い平均電圧値を得ます。
pir
ヒント

データシートによると、ESP32-C5 の有効測定範囲は 0~3300 mV をカバーしています。そのため、XIAO ESP32-C5 の内蔵バッテリー電圧取得回路は、2 つの 100K 抵抗による分圧設計となっており、値を正確に読み取ることができます。

リソース

ハードウェア設計

メカニカル設計

技術サポート & 製品ディスカッション

当社製品をお選びいただきありがとうございます。私たちは、製品をできるだけスムーズにご利用いただけるよう、さまざまなサポートを提供しています。お好みやニーズに応じて選択いただけるよう、複数のコミュニケーションチャネルを用意しています。

Loading Comments...