Skip to main content

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 dual-core @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
オンボード LEDC / L LEDCharge / USER LEDCharge LEDCharge / USER LED
バッテリー充電チップSGM40567SGM40567ETA4054S2FSGM40567

特徴

  • 強力な 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 mesh の機能をサポート
  • 優れた RF 性能: 外部 RF アンテナが含まれています。
  • バッテリー充電チップ: リチウムバッテリーの充放電管理をサポート。
  • 豊富なオンチップリソース: 384 KB オンチップ SRAM、320 KB ROM
  • 超小型サイズ: ウェアラブルデバイスや小型プロジェクト向けの親指サイズ(21x17.8mm)XIAO シリーズクラシックフォームファクター
  • 信頼性の高いセキュリティ機能: AES-128/256、SHA ファミリーハッシュ、HMAC、専用デジタル署名ペリフェラル、およびセキュアブート(V2)をサポートする暗号化ハードウェアアクセラレータ。
  • 豊富なインターフェース: 1×I2C、1×SPI、2×UART、最大 11×GPIO(PWM 対応)、5×ADC チャンネル、および JTAG ボンディングパッドインターフェース。
  • 片面実装部品、表面実装設計

ハードウェア概要

XIAO ESP32-C5 表示図
XIAO ESP32-C5 ピンリスト

入門ガイド

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

ハードウェア

以下を準備する必要があります:

Seeed Studio XIAO ESP32-C5
tip

一部の USB ケーブルは電源供給のみで、データ転送ができません。USB ケーブルをお持ちでない場合や、お使いの USB ケーブルがデータ転送可能かわからない場合は、Seeed USB Type-C support USB 3.1 をご確認ください。

ソフトウェア

XIAO ESP32-C5 の推奨プログラミングツールは Arduino IDE ですので、ソフトウェア準備の一環として Arduino のインストールを完了する必要があります。

tip

Arduino を初めて使用する場合は、Getting Started with Arduino を参照することを強くお勧めします。

  • ステップ 1. お使いのオペレーティングシステムに応じて、Arduino IDE の安定版をダウンロードしてインストールします。


  • ステップ 2. Arduino アプリケーションを起動します。

  • ステップ 3. BOARDS MANAGER を開く -> esp32 を検索 -> バージョン 3.3.4 以上をインストール

プログラムのアップロード

以下では点灯プログラムを例に説明します

ステップ 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のオン・オフ状態を観察して、デバイスが起動されたかどうかを確認することもできます。起動されると、点滅効果を示します。

tip

ディープスリープモードに入った後、XIAOのポートは消失し、再度ポート番号を確認するには起動する必要があります!

caution

現在、XIAO ESP32-C5はGPIOウェイクアップのみをサポートしており、ウェイクアップをサポートするピンはD0〜D1のみです。このプログラムは他のピンでは動作しない可能性があります。

バッテリー使用

XIAO ESP32-C5は、3.7Vリチウムバッテリーを電源入力として使用することができます。配線方法については、以下の図を参照してください。

pir
caution

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

バッテリー使用に関する注意事項:

  1. 仕様に適合した認定バッテリーを使用してください。
  2. XIAOはバッテリー使用中でもデータケーブル経由でコンピューターデバイスに接続できます。XIAOには回路保護チップが内蔵されているため、安全です。
  3. XIAO ESP32-C5がバッテリーで駆動されている場合、C LEDが点灯します。これを充電管理が実行されているかどうかを判断する基準として使用できます。

バッテリー電圧の確認

XIAO ESP32-C5には、SGM40567バッテリー充電チップとTPS22916CFYPRバッテリー電圧取得チップが搭載されています。BAT_VOLT_PIN_ENを有効にしてバッテリー電圧取得機能を起動し、BAT_VOLT_PINを通じてバッテリー電圧を読み取ることができます。

tip

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 , LOW);
}

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)で除算して、よりスムーズで信頼性の高い平均電圧値を取得します。
pir
tip

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

リソース

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

弊社製品をお選びいただき、ありがとうございます!弊社製品での体験が可能な限りスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、複数のコミュニケーションチャネルを提供しています。

Loading Comments...