Seeed Studio XIAO SAMD21の使用開始
Seeed Studio XIAO SAMD21は、以前はSeeeduino XIAOと呼ばれていましたが、Arduinoと互換性のある親指サイズの強力な開発ボードシリーズであるSeeed Studio XIAOファミリーの最初のデビュー作です。低消費電力マイクロコントローラーである強力なATSAMD21G18A-MUを搭載しています。一方、この小さなボードは処理性能が良好でありながら、消費電力は少なくて済みます。小型サイズで設計されており、ウェアラブルデバイスや小規模プロジェクトに使用できます。
Seeed Studio XIAO SAMD21は14個のPINを持ち、ピン多重化により11個のデジタルインターフェース、11個のアナログインターフェース、10個のPWMインターフェース(d1-d10)、1個のDAC出力ピンD0、1個のSWDパッドインターフェース、1個のI2Cインターフェース、1個のSPIインターフェース、1個のUARTインターフェース、シリアル通信インジケーター(T/R)、点滅ライト(L)として使用できます。LED(Power、L、RX、TX)の色は緑、黄、青、青です。さらに、Seeed Studio XIAO SAMD21は電源供給とコードダウンロードが可能なType-Cインターフェースを備えています。2つのリセットボタンがあり、それらをショート接続してボードをリセットできます。
ドキュメント
Seeed Studio XIAO SAMD21の使用に関する2つのドキュメントがあり、それぞれ異なる分野に焦点を当てています。参考として以下の表をご確認ください:
Seedによるドキュメント | Nanaseによるドキュメント |
---|---|
ピン配置図 | インターフェース |
Seeed Studio XIAO SAMD21使用開始 | Seeed Studio XIAO SAMD21とMicroSDカード(SPI) |
Seeed Studio XIAO SAMD21 GPIO使用方法 | Seeed Studio XIAO SAMD21とGPS(UART) |
Seeed Studio XIAO SAMD21リソース | シングルサイクルIOBUS |
CircuitPython on Seeed Studio XIAO SAMD21
特徴
- 強力なCPU:ARM® Cortex®-M0+ 32bit 48MHzマイクロコントローラー(SAMD21G18)、256KB Flash、32KB SRAM搭載。
- 柔軟な互換性:Arduino IDEと互換性があります。
- 簡単なプロジェクト操作:ブレッドボードフレンドリー。
- 小型サイズ:ウェアラブルデバイスや小型プロジェクト向けに親指サイズ(21x17.8mm)。
- 複数の開発インターフェース:11個のデジタル/アナログピン、10個のPWMピン、1個のDAC出力、1個のSWDボンディングパッドインターフェース、1個のI2Cインターフェース、1個のUARTインターフェース、1個のSPIインターフェース。
仕様
項目 | 値 |
---|---|
CPU | 最大48MHzで動作するARM Cortex-M0+ CPU(SAMD21G18) |
フラッシュメモリ | 256KB |
SRAM | 32KB |
デジタルI/Oピン | 11 |
アナログI/Oピン | 11 |
I2Cインターフェース | 1 |
SPIインターフェース | 1 |
QTouch | 7(A0,A1,A6,A7,A8,A9,A10) |
UARTインターフェース | 1 |
電源供給およびダウンロードインターフェース | Type-C |
電源 | 3.3V/5V DC |
寸法 | 21×17.8×3.5mm |
ハードウェア概要
一般的なI/Oピンについて: MCUの動作電圧は3.3Vです。一般的なI/Oピンに接続される電圧入力が3.3Vより高い場合、チップの損傷を引き起こす可能性があります。
電源供給ピンについて: 内蔵DC-DCコンバータ回路は5V電圧を3.3Vに変換することができ、VIN-PINと5V-PINを介して5V電源でデバイスに電力を供給することができます。
XIAO SAMD21は現在バッテリー電源供給のみをサポートしており、バッテリーが接続されている間はType-Cに接続することはできません。安全上のリスクを引き起こす可能性があります。
使用時は注意し、シールドカバーを持ち上げないでください。
ブートローダーモードに入る
ユーザーのプログラミングプロセスが失敗した場合、Seeed Studio XIAO SAMD21のポートが消失することがあります。以下の操作でこの問題を解決できます:
- Seeed Studio XIAO SAMD21をコンピュータに接続します。
- ピンセットまたはショート線を使用して、図のRSTピンを2回ショートします。
- オレンジ色のLEDが点滅し、点灯します。
この時点で、チップはブートローダーモードに入り、書き込みポートが再び表示されます。samd21チップには2つのパーティションがあり、1つはブートローダー、もう1つはユーザープログラムです。製品は工場出荷時にシステムメモリにブートローダーコードを書き込みます。上記の手順を実行することでモードを切り替えることができます。
リセット
Seeed Studio XIAO SAMD21をリセットしたい場合は、以下の手順を実行してください:
- Seeed Studio XIAO SAMD21をコンピュータに接続します。
- ピンセットまたはショート線を使用してRSTピンを1回だけショートします
- オレンジ色のLEDが点滅し、点灯します。
注意:内蔵LEDの動作はArduinoのものとは逆です。Seeed Studio XIAO SAMD21では、ピンをローに引く必要がありますが、他のマイクロコントローラーではハイに引く必要があります。
割り込み
Seeed Studio XIAO SAMD21のすべてのピンは割り込みをサポートしていますが、2つのピンを同時に使用することはできません:5番ピンと7番ピンです。割り込みの詳細についてはこちらをご確認ください。
ピン多重化
ピンを自分で設定する必要はありません。ピンを使用した後、関数を直接呼び出すことができます。
デジタル入力と出力
- ピン6をデジタルピンとして使用:
const int buttonPin = 6; // the number of the pushbutton pin
const int ledPin = 13; // the number of the LED pin
int buttonState = 0; // variable for reading the pushbutton status
void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
}
void loop() {
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed. If it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED on:
digitalWrite(ledPin, HIGH);
} else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
}
AnalogRead
- アナログピンとしてピン6を使用:
void setup() {
// declare the ledPin as an OUTPUT:
pinMode(ledPin, OUTPUT);
}
void loop() {
// read the value from the sensor:
sensorValue = analogRead(sensorPin);
// turn the ledPin on
digitalWrite(ledPin, HIGH);
// stop the program for <sensorValue> milliseconds:
delay(sensorValue);
// turn the ledPin off:
digitalWrite(ledPin, LOW);
// stop the program for for <sensorValue> milliseconds:
delay(sensorValue);
}
シリアル
- UART の TX ピンとしてピン 6 を使用します(UART の RX ピンはピン 7 です):
void setup() {
Serial1.begin(115200);
while (!Serial);
}
void loop() {
Serial1.println("Hello,World");
delay(1000);
}
I2C
- ピン5をIICのSCLピンとして使用(IICのSDAピンはピン4):
// Wire Master Writer
// by Nicholas Zambetti <http://www.zambetti.com>
// Demonstrates use of the Wire library
// Writes data to an I2C/TWI slave device
// Refer to the "Wire Slave Receiver" example for use with this
// Created 29 March 2006
// This example code is in the public domain.
#include <Wire.h>
void setup()
{
Wire.begin(); // join i2c bus (address optional for master)
}
byte x = 0;
void loop()
{
Wire.beginTransmission(4); // transmit to device #4
Wire.write("x is "); // sends five bytes
Wire.write(x); // sends one byte
Wire.endTransmission(); // stop transmitting
x++;
delay(500);
}
SPI
- Use pin 8 as the SCK pin of SPI(MISO pin of SPI is pin 9,MOSI pin of SPI is pin 10):
#include <SPI.h>
const int CS = 7;
void setup (void) {
digitalWrite(CS, HIGH); // disable Slave Select
SPI.begin ();
SPI.setClockDivider(SPI_CLOCK_DIV8);//divide the clock by 8
}
void loop (void) {
char c;
digitalWrite(CS, LOW); // enable Slave Select
// send test string
for (const char * p = "Hello, world!\r" ; c = *p; p++) {
SPI.transfer (c);
}
digitalWrite(CS, HIGH); // disable Slave Select
delay(2000);
}
QTouch
QTouchの使用方法については、サンプルプロジェクトを提供しています:Seeed Studio XIAO SAMD21 のQ-Touch機能でフルーツピアノを作る方法。
アナログ入力と出力
PWMベースの「アナログ出力」を持ちながら、SAMD21はデジタル-アナログコンバータ(DAC)の形で真のアナログ出力も備えています。このモジュールは0から3.3Vの間のアナログ電圧を生成できます。より自然な音でオーディオを生成したり、アナログデバイスを制御する「デジタルポテンショメータ」として使用できます。
DACはArduinoピンA0でのみ利用可能で、analogWrite(A0, <value>
)を使用して制御されます。DACは最大10ビット解像度に設定できます(セットアップでanalogWriteResolution(10)を呼び出すことを確認してください)。これは0から1023の値が電圧を0から3.3Vの間のどこかに設定することを意味します。
DACに加えて、SAMD21のADCチャンネルもATmega328とは異なります:最大12ビット解像度を備えています。これはアナログ入力値が0-4095の範囲で、0から3.3Vの間の電圧を表すことを意味します。ADCを12ビットモードで使用するには、セットアップでanalogReadResolution(12)を呼び出すことを確認してください。
DACのシリアルプロッティング
以下はDACとADCの両方を実演する例です。実験をセットアップするには、A0をA1に接続してください -- A0をアナログ電圧で駆動し、A1でそれを読み取ります。これまでのチュートリアルで最もシンプルな回路です:

Seeed Studio XIAO SAMD21はSeeed Studio XIAO SAMD21 拡張ボードを使用しています
このスケッチはA0で正弦波出力を生成し、値は0から3.3Vの範囲です。次にA1を使用してその出力をADCに読み込み、0から3.3Vの間の電圧に変換します。
もちろん、シリアルモニターを開いて電圧値のストリームを表示できます。しかし、正弦波がテキストで視覚化するのが困難な場合は、Tools > Serial PlotterでArduinoの新しいSerial Plotterをチェックしてください。


DAC
コードを提出してくれたAleksei Tertychnyiに感謝します。関連するすべての機能は彼によって開発され、貢献されました。
#define DAC_PIN A0 // Make code a bit more legible
float x = 0; // Value to take the sin of
float increment = 0.02; // Value to increment x by each time
int frequency = 440; // Frequency of sine wave
void setup()
{
analogWriteResolution(10); // Set analog out resolution to max, 10-bits
analogReadResolution(12); // Set analog input resolution to max, 12-bits
Serial.begin(9600);
}
void loop()
{
// Generate a voltage value between 0 and 1023.
// Let's scale a sin wave between those values:
// Offset by 511.5, then multiply sin by 511.5.
int dacVoltage = (int)(511.5 + 511.5 * sin(x));
x += increment; // Increase value of x
// Generate a voltage between 0 and 3.3V.
// 0= 0V, 1023=3.3V, 512=1.65V, etc.
analogWrite(DAC_PIN, dacVoltage);
// Now read A1 (connected to A0), and convert that
// 12-bit ADC value to a voltage between 0 and 3.3.
float voltage = analogRead(A1) * 3.3 / 4096.0;
Serial.println(voltage); // Print the voltage.
delay(1); // Delay 1ms
}
結果
はじめに
ハードウェア
必要な材料
- Seeed Studio XIAO SAMD21 x1
- コンピュータ x1
- USB Type-C ケーブル x1
一部のUSBケーブルは電源供給のみで、データ転送ができません。USBケーブルをお持ちでない場合、またはお使いのUSBケーブルがデータ転送可能かわからない場合は、seeed USB type C support USB 3.1をご確認ください。
-
ステップ1. Seeed Studio XIAO SAMD21 とType-Cケーブルを準備します。
-
ステップ2. Seeed Studio XIAO SAMD21 をコンピュータに接続します。黄色の電源LEDが点灯するはずです。
ソフトウェア
Arduinoを初めて使用する場合は、Getting Started with Arduinoを参照することを強くお勧めします。
- ステップ1. Arduinoソフトウェアをインストールする必要があります。
Arduinoアプリケーションを起動
以前にダウンロードしたArduinoアプリケーション(arduino.exe)をダブルクリックします。
Arduinoソフトウェアが異なる言語で読み込まれる場合は、設定ダイアログで変更できます。詳細については、Arduino Software (IDE) pageを参照してください。
- ステップ2. Blinkサンプルを開く
LED blinkサンプルスケッチを開きます:File > Examples >01.Basics > Blink。
- ステップ3. Arduino IDEにSeeduinoを追加
File > Preferenceをクリックし、Additional Boards Manager URLsに以下のURLを入力します:
https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json
**Tools-> Board-> Boards Manager...**をクリックし、検索欄にキーワード「Seeed Studio XIAO SAMD21」を入力します。「Seeed SAMD Boards」が表示されます。これをインストールします。
- ステップ4. ボードとポートを選択
ボードをインストール後、Tools-> Boardをクリックし、「Seeed Studio XIAO」を見つけて選択します。これでArduino IDE用のSeeed Studio XIAO SAMD21ボードの設定が完了しました。
Tools | Serial Portメニューから、Arduinoボードのシリアルデバイスを選択します。これは通常COM3以上になります(COM1とCOM2は通常ハードウェアシリアルポート用に予約されています)。確認するには、Arduinoボードを切断してメニューを再度開きます。消えたエントリがArduinoボードのはずです。ボードを再接続し、そのシリアルポートを選択します。
- ステップ5.プログラムをアップロード
環境内の「Upload」ボタンをクリックします。数秒待って、アップロードが成功すると、ステータスバーに「Done uploading.」というメッセージが表示されます。
アップロード完了から数秒後、ボード上のピン13(L)LED(オレンジ色)が点滅し始めるはずです。点滅すれば、おめでとうございます!Arduinoが正常に動作しています。問題がある場合は、トラブルシューティングの提案を参照してください。
フラッシュの最大サイズは8KBです。詳細情報はリソースのATSAMD218A-MUデータシートを参照してください。
サンプルアプリケーション
-
Raspberry Piを使用して故障したxiaoを復旧する方法。共有してくれたJohn_Doeに感謝します。
リソース
-
[PDF] ATSAMD218A-MU データシート
-
[電子書籍] XIAO: Big Power, Small Board Mastering Arduino and TinyML
-
🔗 [Kicad] Seeed Studio XIAO SAMD21 フットプリント
コースリソース

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