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

Seeed Studio XIAO RA4M1 クイックスタート


はじめに​

XIAO RA4M1 は、Renesas の RA4M1 チップ(最大 48 MHz 動作の 32-bit ARM® Cortex®-M4 MCU)をクラシックな XIAO フォームファクタに統合したものです。この開発ボードは、256KB フラッシュ、32KB SRAM、8KB EEPROM、USB 2.0 コネクタ、リセットおよびブートボタン、3 つの LED、14-bit A/D コンバータ、12-bit D/A コンバータ、CAN BUS インターフェースを備えています。オンボード充電回路と低消費電力モード(最小 45μA)により、バッテリー駆動アプリケーションに最適です。Arduino Uno R4 と同じ 32-bit R7FA4M1AB3CNE マイクロコントローラを共有しており、Arduino IDE と豊富な XIAO アクセサリにネイティブ対応しているため、電子工作プロジェクトの理想的な出発点となります。

特長​

  • 人気のマイコンを搭載: Renesas RA4M1 を採用した 32-bit ARM® Cortex®-M4 R7FA4M1AB3CNE MCU を搭載し、最大 48 MHz で動作、256 KB のフラッシュメモリと 32 KB の SRAM を備えています。
  • 充実したオンボードリソース: 14-bit ADC、12-bit DAC、CAN BUS、USB 2.0、オンボード RGB LED を搭載しています。
  • 8 つの新しい IO を拡張: 既存の XIAO ボードと比較して背面に 8 本の新しい IO ピンを追加し(合計 19 GPIO)、より複雑なアプリケーションを実現できます。
  • 強力なセキュリティ機能: ハードウェア暗号化、セキュアブート、鍵ストレージなどの機能を内蔵し、アプリケーションのセキュリティを確保します。
  • ソフトウェア互換性: Arduino IDE と完全互換で、シームレスなプロジェクト開発とプロトタイピングが可能です。
  • 効率的な電源設計: 4 つの動作モードを提供し、ディープスリープ時の消費電流は最小 45μA、リチウムバッテリーの充電管理もサポートします。
  • コンパクトな親指サイズ設計: 21 x 17.8mm のサイズで、Seeed Studio のクラシックな XIAO フォームファクタを採用しており、省スペースなアプリケーションに最適です。
  • 量産に適した設計: すべての部品を表面側に配置した表面実装デバイス(SMD)設計で、両側にスタンプロールホールを備え、大量生産を容易にします。

仕様​

ProductXIAO RA4M1
ProcessorRA4M1 - 32-bit Microcontrollers with 48MHz Arm Cortex-M4 and LCD Controller and Cap Touch for HMI - Renesas
48-MHz Arm® Cortex®-M4 コア(FPU 搭載)
RAM32 KB SRAM
Flash256 KB
LEDs1x ユーザー LED
1x 電源 LED
1x RGB LED
Interfaces19 IOs:
6x アナログ
19x デジタル
2x IIC
2x UART
2x SPI
Buttons1x RESET ボタン
1x BOOT ボタン
SecurityAES128/256
Low Power (Typ.)42.6μ[email protected]
Software CompatibilityArduino IDE
Working Temperature-20°C~70°C
Dimensions21×17.8 mm

ハードウェア概要​

作業を始める前に、製品の基本的なパラメータを把握しておくことが非常に重要です。次の表は、Seeed Studio XIAO RA4M1 の特性に関する情報を示しています。

表面​

裏面​

ピンマップ​

XIAO PinFunctionChip PinAlternate FunctionsDescriptionArduino Name
5VVBUS電源入力/出力
GND
3V33V3_OUT電源出力
D0AnalogP014AN009GPIO、ADC0
D1AnalogP000AN000GPIO、ADC1
D2AnalogP001AN001GPIO、ADC2
D3AnalogP002AN002GPIO、ADC3
D4SDA1P206GPIO、I2C データ4
D5Analog,SCL1P100GPIO、I2C クロック、ADC5
D6TXD2P302SDA2GPIO、UART 送信、I2C6
D7RXD2P301SCL2GPIO、UART 受信、I2C7
D8SPI1_SCKP111GPIO、SPI クロック8
D9SPI1_MISOP110CRX0GPIO、SPI データ、UART9
D10SPI1_MOSIP109CTX0GPIO、SPI データ、UART10
D11RX9P408GPIO、UART
D12TX9P409GPIO、UART
D13GPIOP013GPIO
D14GPIOP012GPIO
D15TXD0P101SDA0,AN021,SPI0_MOSIGPIO、UART 送信、ADC、SPI、I2C
D16RXD0P104SCL0,SPI0_MISOGPIO、UART、SPI、I2C
D17CRX0P102AN020,SPI0_SCKGPIO、UART、ADC、SPI
D18CTX0P103AN019GPIO、SPI、ADC、UART
ADC_BATP015BAT 電圧値を読み取る
ResetRESリセット
BootP201ブートモードに入る
RGB LEDP112RGB LED20
RGB LEDP500RGB LED EN21
CHARGE_LEDVBUSCHG-LED_赤
USER_LEDP011ユーザーライト(Y)19

クイックスタート​

ハードウェアの準備​

次のものを用意してください:


ヒント

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

ソフトウェアの準備​

XIAO RA4M1 に推奨されるプログラミングツールは Arduino IDE です。そのため、ソフトウェアの準備として Arduino のインストールを完了する必要があります。

ヒント

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

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

  • Step 3. Arduino IDE に RA4M1 ボードパッケージを追加します。

    File > Preferences に移動し、"Additional Boards Manager URLs" に以下の URL を入力します: https://files.seeedstudio.com/arduino/package_renesas_1.2.0_index.json

    Tools > Board > Boards Manager... に移動し、検索ボックスにキーワード RA4M1 を入力して、Seeed Renesas Board の最新バージョンを選択し、インストールします。

  • Step 4. ボードとポートを選択します。

    Arduino IDE の上部で、左側の開発ボード欄に xiao と入力して検索し、XIAO_RA4M1 を選択して、ポートを選択します。

ブートローダーモード​

誤ったプログラムを使用すると、XIAO のポートが認識されなくなったり、正しく動作しなくなることがあります。よくある問題としては、次のようなものがあります。

  • XIAO をコンピュータに接続しても、ポート番号が見つからない。
  • XIAO は接続されてポート番号も表示されるが、プログラムの書き込みに失敗する。

上記の 2 つの状況に遭遇した場合、XIAO をブートローダーモードにすることで、認識されないデバイスや書き込み失敗の問題のほとんどを解決できます。具体的な方法は次のとおりです。

  • Method 1. XIAO RA4M1 上の BOOT ボタンを押したままにします。
  • Method 2. BOOT ボタンを押したまま、データケーブルでコンピュータに接続します。コンピュータに接続した後で BOOT ボタンを離します。

リセット​

プログラムが異常に動作した場合、電源投入中に Reset を 1 回押すことで、XIAO にアップロード済みのプログラムを再実行させることができます。 電源投入時に BOOT キーを押し続け、その後 Reset キーを 1 回押すと、ブートローダーモードに入ることもできます。

ここまでで、XIAO RA4M1 の機能やハードウェアについて十分理解できたと思います。次に、最も簡単な Blink プログラムを例にして、XIAO RA4M1 で最初の点滅を実行してみましょう!

  • Step 1. Arduino アプリケーションを起動します。
  • Step 2. File > Examples > 01.Basics > Blink に移動し、プログラムを開きます。
  • Step 3. ボードモデルを XIAO RA4M1 に設定し、正しいポート番号を選択してプログラムを書き込みます。

プログラムが正常に書き込まれると、次のような出力メッセージが表示され、XIAO RA4M1 の右側にあるオレンジ色の LED が点滅しているのが確認できます。

おめでとうございます。これで XIAO RA4M1 向けにプログラムを書いて書き込む方法を習得しました!

注記

XIAO RA4M1 上のユーザー LED ピンが High レベルに設定されているときのみ LED は消灯し、ピンが Low レベルに設定されているときのみ点灯します。

RGB LED で遊ぶ​

XIAO RA4M1 には制御可能な内蔵 RGB LED が搭載されています。以下は、LED の色を赤・緑・青の間で滑らかに変化させる例です。

  • Step 1. Adafruit_NeoPixel ライブラリをダウンロードします

Sketch > Include Liarbry > Manage Libraries... に移動し、Adafruit_NeoPixel を検索して、最新バージョンをインストールします。

  • Step 2. 以下のコードを新しいスケッチにコピーします。
#include <Adafruit_NeoPixel.h>

#define LED_PIN RGB_BUILTIN // Define the pin for the built-in RGB LED
#define NUM_PIXELS 1 // Number of WS2812 LEDs

Adafruit_NeoPixel pixels(NUM_PIXELS, LED_PIN, NEO_GRB + NEO_KHZ800);

void setup() {
pinMode(PIN_RGB_EN, OUTPUT); // Set up the power pin
digitalWrite(PIN_RGB_EN, HIGH); //Turn on power to the LED
pixels.begin(); // Initialize the NeoPixel library
}

void loop() {
// Transition from Red to Green
for (int i = 0; i <= 255; i++) {
pixels.setPixelColor(0, pixels.Color(255 - i, i, 0)); // Red decreases, Green increases
pixels.show();
delay(10); // Adjust delay for smoothness
}

// Transition from Green to Blue
for (int i = 0; i <= 255; i++) {
pixels.setPixelColor(0, pixels.Color(0, 255 - i, i)); // Green decreases, Blue increases
pixels.show();
delay(10); // Adjust delay for smoothness
}

// Transition from Blue to Red
for (int i = 0; i <= 255; i++) {
pixels.setPixelColor(0, pixels.Color(i, 0, 255 - i)); // Blue decreases, Red increases
pixels.show();
delay(10); // Adjust delay for smoothness
}
}

  • Step 3. ボードモデルを XIAO RA4M1 に設定し、正しいポート番号を選択してプログラムを書き込みます。

バッテリーと電源管理​

追加のコンポーネントなしでバッテリー電圧を読み取ることは可能でしょうか? はい、XIAO RA4M1 ならこれまでになく簡単です。以前の XIAO ESP32C3 などの XIAO ファミリーでは、バッテリー電圧を読み取るには抵抗を使って手動で A0 に接続する必要がありました。

しかし XIAO RA4M1 では、このプロセスが簡略化されています。BAT_DET_PIN/P015 ピンを直接使用してバッテリー電圧レベルを読み取ることができ、設計と開発を効率化できます。バッテリーレベルの読み取りを有効にするには、BAT_READ_EN/P400 ピンを High に設定する必要があることを忘れないでください。

  • Step 1. ハードウェアの準備
Seeed Studio XIAO RA4M1Seeed Studio Expansion Base for XIAO with Grove OLED

XIAO 拡張ボード上の OLED ディスプレイは I2C プロトコルを使用しており、ボード上の I2C 回路を介して XIAO の I2C インターフェースに接続されています。そのため、XIAO を拡張ボードに直接挿し込むだけで、画面にコンテンツを表示するプログラムを書くことができます。

  • Step 2. u8g2 ライブラリをインストールします。
  • Step 3. コードをコピーして Arduino IDE に貼り付けます。
#include <Arduino.h>
#include <U8x8lib.h>
#include <Wire.h>

U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(/* clock=*/ WIRE_SCL_PIN, /* data=*/ WIRE_SDA_PIN, /* reset=*/ U8X8_PIN_NONE); // OLEDs without Reset of the Display

#define enablePin BAT_READ_EN // Pin for enabling battery voltage reading
#define adcPin BAT_DET_PIN // Analog input pin (GPIO29 in your case)
const float referenceVoltage = 3.3; // Reference voltage for the ADC
const float voltageDivider = 2.0; // Voltage divider factor

void setup() {
Serial.begin(9600); // Initialize serial communication at 9600 baud
pinMode(enablePin, OUTPUT); // Set the enable pin as an output
digitalWrite(enablePin, HIGH); // Set the pin high to enable battery voltage reading
u8x8.begin();
u8x8.setFlipMode(1); // set number from 1 to 3, the screen word will rotary 180
u8x8.setFont(u8x8_font_chroma48medium8_r);
}

void loop() {
int rawValue = analogRead(adcPin); // Read the analog input value
float voltage = rawValue * (referenceVoltage / 1023.0) * voltageDivider; // Calculate the voltage
// Print the raw value and the calculated voltage
u8x8.setCursor(0, 0);
u8x8.print("Raw value:0x");
u8x8.print(rawValue, HEX);
u8x8.setCursor(0, 2);
u8x8.print("Voltage:");
u8x8.print(voltage, 2);
u8x8.print("V");

delay(500); // Delay for 500 milliseconds
}

  • ステップ 4. ボードモデルを XIAO RA4M1 に選択し、正しいポート番号を選択してプログラムを書き込みます

リソース​

ハードウェア設計

トラブルシューティング​

Q1: ピンをはんだ付けする際に注意すべき点は何ですか​

XIAO RA4M1 は非常に小型であるため、ヘッダをはんだ付けする際は十分に注意してください。異なるピン同士をくっつけないようにし、シールドや他の部品にはんだが付着しないようにしてください。そうしないと、XIAO がショートしたり正常に動作しなくなる可能性があり、その結果生じた問題についてはユーザーの自己責任となります。

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

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

Loading Comments...