Primeros pasos con Seeed Studio XIAO SAMD21
El Seeed Studio XIAO SAMD21, que anteriormente se llamaba Seeeduino XIAO, es el primer debut de la familia Seeed Studio XIAO, una serie de potentes placas de desarrollo del tamaño del pulgar compatibles con Arduino. Lleva el potente ATSAMD21G18A-MU que es un microcontrolador de bajo consumo. Por otro lado, esta pequeña placa tiene buen rendimiento en procesamiento pero necesita menos energía. Está diseñada en un tamaño diminuto y puede usarse para dispositivos portátiles y proyectos pequeños.
Seeed Studio XIAO SAMD21 tiene 14 PINs, que pueden usarse para 11 interfaces digitales, 11 interfaces analógicas, 10 interfaces PWM (d1-d10), 1 pin de salida DAC D0, 1 interfaz de pad SWD, 1 interfaz I2C, 1 interfaz SPI, 1 interfaz UART, indicador de comunicación serie (T/R), luz de parpadeo (L) a través de multiplexación de pines. Los colores de los LEDs (Power, L, RX, TX) son verde, amarillo, azul y azul. Además, Seeed Studio XIAO SAMD21 tiene una interfaz Type-C que puede suministrar energía y descargar código. Hay dos botones de reinicio, puedes conectarlos en corto para reiniciar la placa.
Documentaciones
Hay dos documentos sobre el uso del Seeed Studio XIAO SAMD21 que se enfocan en diferentes áreas, consulta la tabla a continuación como referencia:
Documentación por Seeed | Documentación por Nanase |
---|---|
Diagrama de pines | Interfaz |
Primeros pasos con Seeed Studio XIAO SAMD21 | Seeed Studio XIAO SAMD21 con tarjeta MicroSD (SPI) |
Uso de GPIO de Seeed Studio XIAO SAMD21 | Seeed Studio XIAO SAMD21 con GPS (UART) |
Recursos de Seeed Studio XIAO SAMD21 | IOBUS de ciclo único |
CircuitPython en Seeed Studio XIAO SAMD21
- Comienza con **CircuitPython en Seeed Studio XIAO SAMD21 **.
Características
- CPU potente: Microcontrolador ARM® Cortex®-M0+ de 32 bits a 48MHz (SAMD21G18) con 256KB de Flash, 32KB de SRAM.
- Compatibilidad flexible: Compatible con Arduino IDE.
- Operación de proyecto fácil: Amigable con protoboard.
- Tamaño pequeño: Tan pequeño como un pulgar (21x17.8mm) para dispositivos portátiles y proyectos pequeños.
- Múltiples interfaces de desarrollo: 11 pines digitales/analógicos, 10 pines PWM, 1 salida DAC, 1 interfaz de pad de enlace SWD, 1 interfaz I2C, 1 interfaz UART, 1 interfaz SPI.
Especificación
Elemento | Valor |
---|---|
CPU | CPU ARM Cortex-M0+ (SAMD21G18) funcionando hasta 48MHz |
Memoria Flash | 256KB |
SRAM | 32KB |
Pines de E/S Digitales | 11 |
Pines de E/S Analógicos | 11 |
Interfaz I2C | 1 |
Interfaz SPI | 1 |
QTouch | 7 (A0,A1,A6,A7,A8,A9,A10) |
Interfaz UART | 1 |
Interfaz de alimentación y descarga | Tipo-C |
Alimentación | 3.3V/5V DC |
Dimensiones | 21×17.8×3.5mm |
Descripción General del Hardware
Para pines de E/S generales: El voltaje de funcionamiento del MCU es de 3.3V. La entrada de voltaje conectada a los pines de E/S generales puede causar daño al chip si es superior a 3.3V.
Para pines de alimentación: El circuito convertidor DC-DC integrado capaz de cambiar el voltaje de 5V a 3.3V permite alimentar el dispositivo con una fuente de 5V a través del PIN-VIN y el PIN-5V.
XIAO SAMD21 actualmente solo admite alimentación por batería y no puede conectarse a Type-C mientras una batería esté conectada, ya que puede representar un riesgo de seguridad.
Por favor preste atención al uso, no levante la cubierta del blindaje.
Entrar al Modo Bootloader
A veces el puerto del Seeed Studio XIAO SAMD21 puede desaparecer cuando el proceso de programación del usuario falla. podemos resolver este problema mediante la siguiente operación:
- Conecte el Seeed Studio XIAO SAMD21 a su computadora.
- Use pinzas o líneas cortas para cortocircuitar los pines RST en el diagrama dos veces.
- Los LED naranjas parpadean y se encienden.
En este punto, el chip entra al modo Bootloader y el puerto de grabación aparece nuevamente. Debido a que el chip samd21 tiene dos particiones, una es el Bootloader y la otra es el programa del usuario. El producto grabará un código bootloader en la memoria del sistema cuando salga de fábrica. Podemos cambiar de modo realizando los pasos anteriores.
Reinicio
Si desea reiniciar el Seeed Studio XIAO SAMD21, realice los siguientes pasos:
- Conecte el Seeed Studio XIAO SAMD21 a su computadora.
- Use pinzas o líneas cortas para cortocircuitar los pines RST solo una vez
- Los LED naranjas parpadean y se encienden.
Tenga en cuenta: El comportamiento del LED integrado es inverso al de un Arduino. En el Seeed Studio XIAO SAMD21, el pin debe ser puesto en bajo, mientras que en otros microcontroladores debe ser puesto en alto.
Interrupción
Todos los pines en el Seeed Studio XIAO SAMD21 admiten interrupciones, pero dos pines no pueden usarse al mismo tiempo: pin 5 y pin 7. Para más detalles sobre Interrupción por favor consulte aquí.
Multiplexación de Pines
No necesitamos configurar los pines nosotros mismos, después de usar los pines, puede llamar una función directamente.
Entrada y Salida Digital
- Use el pin 6 como pin digital:
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
- Usa el pin 6 como pin analógico:
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);
}
Serial
- Usa el pin 6 como pin TX del UART (el pin RX del UART es el pin 7):
void setup() {
Serial1.begin(115200);
while (!Serial);
}
void loop() {
Serial1.println("Hello,World");
delay(1000);
}
I2C
- Usa el pin 5 como el pin SCL del IIC (el pin SDA del IIC es el pin 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
- Usa el pin 8 como el pin SCK de SPI (el pin MISO de SPI es el pin 9, el pin MOSI de SPI es el 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
Para saber cómo usar QTouch, proporcionamos un proyecto de ejemplo: Cómo Hacer un Piano de Frutas con la Función Q-Touch del Seeed Studio XIAO SAMD21.
Entrada y Salida Analógica
Aunque todavía tiene "salidas analógicas" basadas en PWM, el SAMD21 también cuenta con salida analógica verdadera en forma de un convertidor digital-analógico (DAC). Este módulo puede producir un voltaje analógico entre 0 y 3.3V. Se puede usar para producir audio con sonido más natural, o como una especie de "potenciómetro digital" para controlar dispositivos analógicos.
El DAC solo está disponible en el pin A0 de Arduino, y se controla usando analogWrite(A0, <valor>
). El DAC se puede configurar hasta una resolución de 10 bits (asegúrate de llamar analogWriteResolution(10) en tu configuración), lo que significa que valores entre 0 y 1023 establecerán el voltaje en algún lugar entre 0 y 3.3V.
Además del DAC, los canales ADC del SAMD21 también se distinguen del ATmega328: están equipados con hasta 12 bits de resolución. Eso significa que los valores de entrada analógica pueden variar de 0-4095, representando un voltaje entre 0 y 3.3V. Para usar los ADC en modo de 12 bits, asegúrate de llamar analogReadResolution(12) en tu configuración.
Graficado Serial del DAC
Aquí hay un ejemplo que demuestra tanto el DAC como el ADC. Para configurar el experimento, conecta A0 a A1 -- impulsaremos A0 con un voltaje analógico, luego lo leeremos con A1. Es el circuito más simple que hemos puesto en un tutorial:

El Seeed Studio XIAO SAMD21 usando la placa de expansión Seeed Studio XIAO SAMD21
Este sketch produce una salida de onda senoidal en A0, con valores que van de 0 a 3.3V. Luego usa A1 para leer esa salida en su ADC, y convertirla en un voltaje entre 0 y 3.3V.
Puedes, por supuesto, abrir el monitor serial para ver los valores de voltaje transmitirse. Pero si la onda senoidal es difícil de visualizar a través de texto, echa un vistazo al nuevo Graficador Serial de Arduino, yendo a Herramientas > Graficador Serial.


DAC
Gracias a Aleksei Tertychnyi por enviar el código, todas las funcionalidades relacionadas fueron desarrolladas y contribuidas por él.
#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
}
Primeros Pasos
Hardware
Materiales requeridos
- Seeed Studio XIAO SAMD21 x1
- Computadora x1
- Cable USB tipo C x1
Algunos cables USB solo pueden suministrar energía y no pueden transferir datos. Si no tienes un cable USB o no sabes si tu cable USB puede transmitir datos, puedes consultar seeed USB type C support USB 3.1.
-
Paso 1. Prepara un Seeed Studio XIAO SAMD21 y un cable Type-C.
-
Paso 2. Conecta el Seeed Studio XIAO SAMD21 a tu computadora. Entonces el LED de alimentación amarillo debería encenderse.
Software
Si esta es tu primera vez usando Arduino, te recomendamos encarecidamente que consultes Getting Started with Arduino
- Paso 1. Necesitas instalar un software de Arduino.
Ejecutar la aplicación Arduino
Haz doble clic en la aplicación Arduino (arduino.exe) que has descargado previamente.
Si el software de Arduino se carga en un idioma diferente, puedes cambiarlo en el diálogo de preferencias. Consulta la página del Software Arduino (IDE) para más detalles.
- Paso 2. Abrir el ejemplo Blink
Abre el sketch de ejemplo LED blink: File > Examples >01.Basics > Blink.
- Paso 3. Agregar Seeeduino a tu Arduino IDE
Haz clic en File > Preference, y completa Additional Boards Manager URLs con la url de abajo:
https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json
Haz clic en Tools-> Board-> Boards Manager..., escribe la palabra clave "Seeed Studio XIAO SAMD21" en el campo de búsqueda. Aquí aparece "Seeed SAMD Boards". Instálalo.
- Paso 4. Selecciona tu placa y puerto
Después de instalar la placa, haz clic en Tools-> Board, encuentra "**Seeed Studio XIAO **" y selecciónalo. Ahora ya has configurado la placa de Seeed Studio XIAO SAMD21 para Arduino IDE.
Selecciona el dispositivo serie de la placa Arduino desde el menú Tools | Serial Port. Es probable que sea COM3 o superior (COM1 y COM2 generalmente están reservados para puertos serie de hardware). Para averiguarlo, puedes desconectar tu placa Arduino y volver a abrir el menú; la entrada que desaparezca debería ser la placa Arduino. Vuelve a conectar la placa y selecciona ese puerto serie.
- Paso 5. Cargar el programa
Ahora, simplemente haz clic en el botón "Upload" en el entorno. Espera unos segundos y si la carga es exitosa, el mensaje "Done uploading." aparecerá en la barra de estado.
Unos segundos después de que termine la carga, deberías ver el LED del pin 13 (L) en la placa comenzar a parpadear (en naranja). Si es así, ¡felicitaciones! Has puesto Arduino en funcionamiento. Si tienes problemas, por favor consulta las sugerencias de solución de problemas.
el tamaño máximo de flash es 8KB más información en la hoja de datos ATSAMD218A-MU en recursos
La aplicación de ejemplo
-
Cómo usar Seeed Studio XIAO SAMD21 para iniciar sesión en tu Raspberry PI
-
Cómo reparar un xiao dañado usando raspberry pi. Gracias a John_Doe por compartir.
Recursos
-
[Ebook] XIAO: Gran Potencia, Placa Pequeña Dominando Arduino y TinyML
-
🔗 [Kicad] Huella Seeed Studio XIAO SAMD21
Recursos del Curso

Soporte Técnico y Discusión de Productos
¡Gracias por elegir nuestros productos! Estamos aquí para brindarle diferentes tipos de soporte para asegurar que su experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.