Saltar al contenido principal

Primeros pasos con Seeed Studio XIAO SAMD21

pir

El Seeed Studio XIAO SAMD21, que solía llamarse Seeeduino XIAO, es la primera aparición de la familia Seeed Studio XIAO, una serie de potentes placas de desarrollo del tamaño de un pulgar compatibles con Arduino. Incorpora el potente ATSAMD21G18A-MU, que es un microcontrolador de bajo consumo. Por otro lado, esta pequeña placa tiene un buen rendimiento de procesamiento pero necesita menos energía. Está diseñada en un tamaño diminuto y puede utilizarse para dispositivos wearables y proyectos pequeños.

Seeed Studio XIAO SAMD21 tiene 14 pines, que pueden utilizarse 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) mediante multiplexación de pines. Los colores de los LED (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 cortocircuitarlos para reiniciar la placa.

Documentaciones

Hay dos documentos sobre el uso de Seeed Studio XIAO SAMD21 que se centran en diferentes áreas, consulta la siguiente tabla como referencia:

Documentación de SeeedDocumentación de Nanase
Diagrama de pinesInterfaz
Primeros pasos con Seeed Studio XIAO SAMD21Seeed Studio XIAO SAMD21 con tarjeta MicroSD (SPI)
Uso de GPIO de Seeed Studio XIAO SAMD21Seeed Studio XIAO SAMD21 con GPS (UART)
Recursos de Seeed Studio XIAO SAMD21IOBUS de ciclo único

CircuitPython en Seeed Studio XIAO SAMD21

Características

  • Potente CPU: microcontrolador ARM® Cortex®-M0+ de 32 bits a 48 MHz (SAMD21G18) con 256KB de Flash y 32KB de SRAM.
  • Compatibilidad flexible: Compatible con Arduino IDE.
  • Operación sencilla de proyectos: Compatible con protoboard.
  • Tamaño pequeño: Tan pequeño como un pulgar (21x17.8mm) para dispositivos wearables y proyectos pequeños.
  • Múltiples interfaces de desarrollo: 11 pines digitales/analógicos, 10 pines PWM, 1 salida DAC, 1 interfaz de pad SWD, 1 interfaz I2C, 1 interfaz UART, 1 interfaz SPI.

Especificaciones

Nombre del productoSeeed Studio XIAO SAMD21
ChipsetMicrochip SAMD21G18
ProcesadorProcesador ARM Cortex-M0+ funcionando hasta 48 MHz
RAM32KB SRAM
Flash256KB Flash
InterfazPin GPIO x14
Pin digital x11
Pin analógico x11
DAC x1
I2C x1
UART x1
SPI x1
Integrado en placaLED de usuario x1
LED de encendido x1
LED de estado para comunicación serie (indicadores TX/RX) x2
Conectividad inalámbrica/
AlimentaciónTensión de entrada (Type-C): 5V
Tensión de entrada (BAT): 5V
Salida máxima5V@500mA
3.3V@200mA
Compatibilidad de softwareArduino, PlatformIO, MicroPython, CircuitPython, Zephyr
Exposición para la Serie XIAO - Seeed Studio Wiki
Temperatura de trabajo-40 a 85°C
Dimensiones21×17.8mm
VariantesSeeed Studio XIAO SAMD21 (Pre-Soldered) - Seeed Studio
Seeed Studio XIAO SAMD21 - Arduino Microcontroller - SAMD21 Cortex M0+ (3 PCs) - Seeed Studio

Descripción general del hardware

pir

pir

pir

pir

precaución

Para los pines de E/S generales: El voltaje de trabajo del MCU es 3.3V. Un voltaje de entrada conectado a los pines de E/S generales puede causar daños al chip si es superior a 3.3V.

Para los 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 de VIN-PIN y 5V-PIN.

Es fundamental entender que las almohadillas VIN y GND en la parte posterior del XIAO SAMD21 no están diseñadas para conectar directamente una batería, especialmente una batería recargable de litio (LiPo/Li-Ion). La placa carece del circuito esencial de gestión de batería necesario para un funcionamiento seguro. Estas almohadillas son simplemente un punto de entrada de alimentación alternativo que evita el diodo de protección integrado de la placa. Si deseas alimentar tu proyecto con una batería, debes utilizar un módulo externo de gestión de batería dedicado que proporcione carga y protección, y luego conectar la salida regulada de ese módulo al pin de 5V o 3V3 del XIAO.

Por favor, presta atención al uso, no levantes la cubierta de protección.

Mapa de pines

Pin XIAOFunciónPin del chipDescripción
5VVBUSEntrada/Salida de alimentación
GND
3V33V3_OUTSalida de alimentación
D0AnalógicoPA02GPIO, ADC
D1AnalógicoPA04GPIO, ADC
D2AnalógicoPA10GPIO, ADC
D3AnalógicoPA11GPIO, ADC
D4Analógico,SDAPA08GPIO, datos I2C, ADC
D5Analógico,SCLPA09GPIO, reloj I2C, ADC
D6Analógico,TXPB08GPIO, transmisión UART, ADC
D7Analógico,RXPB09GPIO, recepción UART, ADC
D8Analógico,SPI_SCKPA07GPIO, reloj SPI, ADC
D9Analógico,SPI_MISOPA05GPIO, datos SPI, ADC
D10Analógico,SPI_MOSIPA06GPIO, datos SPI
ResetRESRESET
TX_LEDPA19TX_LED
RX_LEDPA18RX_LED
Power_LEDVBUSCHG-LED_Red
USER_LEDPA17Luz de usuario_Amarillo

Entrar en modo Bootloader

A veces el puerto de Seeed Studio XIAO SAMD21 puede desaparecer cuando falla el proceso de programación del usuario. Podemos resolver este problema mediante la siguiente operación:

  • Conecta el Seeed Studio XIAO SAMD21 a tu ordenador.
  • Usa pinzas o cables cortos para cortocircuitar los pines RST del diagrama dos veces.
  • Los LED naranjas parpadean y se encienden.

En este punto, el chip entra en modo Bootloader y el puerto de grabación vuelve a aparecer. Debido a que el chip samd21 tiene dos particiones, una es el Bootloader y la otra es el programa de usuario. El producto grabará un código de bootloader en la memoria del sistema cuando salga de fábrica. Podemos cambiar de modo realizando los pasos anteriores.

pir

Reiniciar

Si quieres reiniciar el Seeed Studio XIAO SAMD21, realiza los siguientes pasos:

  • Conecta el Seeed Studio XIAO SAMD21 a tu ordenador.
  • Usa pinzas o cables cortos para cortocircuitar los pines RST solo una vez
  • Los LED naranjas parpadean y se encienden.

Ten en cuenta: El comportamiento del LED integrado es el inverso al de un Arduino. En el Seeed Studio XIAO SAMD21, el pin tiene que ponerse en nivel bajo, mientras que en otros microcontroladores tiene que ponerse en nivel alto.  

Interrupción

Todos los pines de Seeed Studio XIAO SAMD21 admiten interrupciones, pero hay dos pines que no pueden utilizarse al mismo tiempo: el pin 5 y el pin 7. Para más detalles sobre las interrupciones, consulta aquí.

Multiplexación de pines

No necesitamos configurar los pines nosotros mismos, después de usar los pines, puedes llamar directamente a una función.

Entrada y salida digital

  • Usa 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 de UART (el pin RX de 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 pin SCL de IIC (el pin SDA de 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 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: How to Make a Fruit Piano on Seeed Studio XIAO SAMD21 ’s Q-Touch Function.

Entrada y salida analógica

Aunque todavía tiene "salidas analógicas" basadas en PWM, el SAMD21 también incorpora una verdadera salida analógica en forma de un convertidor digital‑analógico (DAC). Este módulo puede producir un voltaje analógico entre 0 y 3,3 V. Se puede usar para producir audio con un 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, <value>). El DAC se puede configurar hasta una resolución de 10 bits (asegúrate de llamar a analogWriteResolution(10) en tu configuración), lo que significa que los valores entre 0 y 1023 ajustarán el voltaje a algún punto entre 0 y 3,3 V.

Además del DAC, los canales ADC del SAMD21 también se diferencian de los del ATmega328: están equipados con hasta 12 bits de resolución. Eso significa que los valores de entrada analógica pueden ir de 0 a 4095, representando un voltaje entre 0 y 3,3 V. Para usar los ADC en modo de 12 bits, asegúrate de llamar a analogReadResolution(12) en tu configuración.

Trazado serie del DAC

Aquí hay un ejemplo que demuestra tanto el DAC como el ADC. Para configurar el experimento, conecta A0 a A1: aplicaremos a A0 un voltaje analógico y luego lo leeremos con A1. Es el circuito más simple que hemos puesto nunca en un tutorial:

nota

El Seeed Studio XIAO SAMD21 utiliza la placa de expansión Seeed Studio XIAO SAMD21

Este sketch produce una onda sinusoidal en la salida A0, con valores que van de 0 a 3,3 V. Luego usa A1 para leer esa salida en su ADC y convertirla en un voltaje entre 0 y 3,3 V.

Por supuesto, puedes abrir el monitor serie para ver el flujo de valores de voltaje. Pero si la onda sinusoidal es difícil de visualizar mediante texto, prueba el nuevo Serial Plotter de Arduino, yendo a Tools > Serial Plotter.

DAC

Gracias a Aleksei Tertychnyi por enviar el código; todas las funcionalidades relacionadas fueron desarrolladas y aportadas 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
}

Resultado

pir

Primeros pasos

Hardware

Materiales necesarios

  • Seeed Studio XIAO SAMD21 x1
  • Ordenador x1
  • Cable USB tipo C x1
tip

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 ordenador. Entonces el LED de alimentación amarillo debería encenderse.

Software

nota

Si es la primera vez que usas Arduino, te recomendamos encarecidamente que consultes Getting Started with Arduino

  • Paso 1. Necesitas instalar el software de Arduino.

Inicia la aplicación de Arduino

Haz doble clic en la aplicación de Arduino (arduino.exe) que has descargado previamente.

nota

Si el software de Arduino se carga en un idioma diferente, puedes cambiarlo en el cuadro de diálogo de preferencias. Consulta la página Arduino Software (IDE) para más detalles.

  • Paso 2. Abre el ejemplo Blink

Abre el sketch de ejemplo de parpadeo del LED: File > Examples >01.Basics > Blink.

pir

  • Paso 3. Añade Seeeduino a tu Arduino IDE

Haz clic en File > Preference y rellena Additional Boards Manager URLs con la siguiente URL:

https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json

pir

Haz clic en Tools-> Board-> Boards Manager..., escribe la palabra clave "Seeed Studio XIAO SAMD21" en el cuadro de búsqueda. Aparecerá "Seeed SAMD Boards". Instálalo.

pir

  • Paso 4. Selecciona tu placa y tu puerto

Después de instalar la placa, haz clic en Tools-> Board, busca "Seeed Studio XIAO" y selecciónala. Ahora ya has configurado la placa Seeed Studio XIAO SAMD21 para Arduino IDE.

pir

Selecciona el dispositivo serie de la placa Arduino en el menú Tools | Serial Port. Probablemente será COM3 o superior (COM1 y COM2 suelen estar reservados para los 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.

pir

  • Paso 5. Sube el programa

Ahora, simplemente haz clic en el botón "Upload" en el entorno. Espera unos segundos y, si la carga se realiza correctamente, aparecerá el mensaje "Done uploading." en la barra de estado.

pir

Unos segundos después de que finalice la carga, deberías ver que el LED del pin 13 (L) en la placa comienza a parpadear (en naranja). Si es así, ¡felicitaciones! Has puesto Arduino en funcionamiento. Si tienes problemas, consulta las sugerencias de solución de problemas.

nota

el tamaño máximo de la memoria flash es de 8 KB, más información en la hoja de datos ATSAMD218A-MU en recursos

La aplicación de ejemplo

Recursos

Diseño de hardware

Diseño mecánico

Software y herramientas

Recursos del curso

Soporte técnico y debate sobre el producto

Gracias por elegir nuestros productos. Estamos aquí para ofrecerte diferentes tipos de soporte y garantizar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para adaptarnos a diferentes preferencias y necesidades.

Loading Comments...