Skip to main content

Seeed Studio XIAO RA4M1 入門ガイド


はじめに

XIAO RA4M1 は、Renesas の RA4M1 チップ(最大 48 MHz 動作の 32-bit ARM® Cortex®-M4 MCU)をクラシックな XIAO フォームファクタに統合したものです。この開発ボードは、256KB Flash、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 を採用し、最大 48 MHz で動作する 32-bit ARM® Cortex®-M4 R7FA4M1AB3CNE MCU、256 KB の Flash メモリ、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)設計で、両側にスタンプロールホールを備え、大量生産を容易にします。

仕様

製品XIAO RA4M1
プロセッサRA4M1 - 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
LED1x ユーザー LED
1x 電源 LED
1x RGB LED
インターフェース19 IOs:
6x アナログ
19x デジタル
2x IIC
2x UART
2x SPI
ボタン1x RESET ボタン
1x BOOT ボタン
セキュリティAES128/256
低消費電力(Typ.)42.6μ[email protected]
ソフトウェア互換性Arduino IDE
動作温度-20°C~70°C
寸法21×17.8 mm

ハードウェア概要

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





XIAO RA4M1 前面表示図
XIAO RA4M1 ピン一覧

ピンマップ

XIAO ピン機能チップピン代替機能説明Arduino 名
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_BATP400BAT 電圧値を読み取る
ResetRESリセット
BootP201ブートモードに入る
RGB LEDP112RGB LED20
RGB LEDP500RGB LED EN21
CHARGE_LEDVBUSCHG-LED_Red
USER_LEDP011ユーザーライト(Y)19

はじめに

ハードウェアの準備

次のものを準備してください:


tip

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

ソフトウェアの準備

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

tip

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

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

  • ステップ 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 の最新バージョンを選択し、インストールします。

  • ステップ 4. ボードとポートを選択します。

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

ブートローダーモード

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

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

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

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

リセット

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

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

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

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

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

note

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

RGB LED で遊ぶ

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

  • ステップ 1. Adafruit_NeoPixel ライブラリをダウンロードします

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

  • ステップ 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
}
}

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

バッテリーと電源管理

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

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

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

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

  • ステップ 2. u8g2 ライブラリをインストールします。
  • ステップ 3. コードをコピーして Ardiono 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...