Pular para o conteúdo principal

Primeiros passos com o Seeed Studio XIAO SAMD21

pir

O Seeed Studio XIAO SAMD21, que costumava ser chamado de Seeeduino XIAO, é a primeira estreia da família Seeed Studio XIAO, uma série de poderosas placas de desenvolvimento do tamanho de um polegar compatíveis com Arduino. Ele carrega o poderoso ATSAMD21G18A-MU, que é um microcontrolador de baixo consumo. Por outro lado, esta pequena placa tem bom desempenho de processamento, mas precisa de menos energia. Ela é projetada em um tamanho minúsculo e pode ser usada para dispositivos vestíveis e projetos pequenos.

O Seeed Studio XIAO SAMD21 possui 14 PINs, que podem ser usados para 11 interfaces digitais, 11 interfaces analógicas, 10 interfaces PWM (d1-d10), 1 pino de saída DAC D0, 1 interface de pad SWD, 1 interface I2C, 1 interface SPI, 1 interface UART, indicador de comunicação serial (T/R), luz de piscar (L) por meio de multiplexação de pinos. As cores dos LEDs (Power, L, RX, TX) são verde, amarelo, azul e azul. Além disso, o Seeed Studio XIAO SAMD21 possui uma interface Type-C que pode fornecer energia e carregar código. Existem dois botões de reset, você pode conectá-los em curto para reiniciar a placa.

Documentações

Existem dois documentos sobre o uso do Seeed Studio XIAO SAMD21 que se concentram em áreas diferentes, consulte a tabela abaixo como referência:

Documentação da SeeedDocumentação da Nanase
Diagrama de pinosInterface
Introdução ao Seeed Studio XIAO SAMD21Seeed Studio XIAO SAMD21 com MicroSD Card(SPI)
Uso de GPIO no Seeed Studio XIAO SAMD21Seeed Studio XIAO SAMD21 com GPS(UART)
Recursos do Seeed Studio XIAO SAMD21IOBUS de ciclo único

CircuitPython no Seeed Studio XIAO SAMD21

Recursos

  • CPU poderosa: microcontrolador ARM® Cortex®-M0+ 32 bits 48MHz (SAMD21G18) com 256KB Flash, 32KB SRAM.
  • Compatibilidade flexível: Compatível com Arduino IDE.
  • Operação fácil de projeto: Compatível com protoboard.
  • Tamanho pequeno: Tão pequeno quanto um polegar (21x17.8mm) para dispositivos vestíveis e projetos pequenos.
  • Múltiplas interfaces de desenvolvimento: 11 pinos digitais/analógicos, 10 pinos PWM, 1 saída DAC, 1 interface de pad SWD, 1 interface I2C, 1 interface UART, 1 interface SPI.

Especificações

Nome do ProdutoSeeed Studio XIAO SAMD21
ChipsetMicrochip SAMD21G18
ProcessadorProcessador ARM Cortex-M0+ rodando a até 48 MHz
RAM32KB SRAM
Flash256KB Flash
InterfacePino GPIO x14
Pino Digital x11
Pino Analógico x11
DAC x1
I2C x1
UART x1
SPI x1
OnboardLED de usuário x1
LED de energia x1
LEDs de status para comunicação serial (Indicadores TX/RX) x2
Conectividade sem fio/
AlimentaçãoTensão de entrada (Type-C): 5V
Tensão de entrada (BAT): 5V
Saída máxima5V@500mA
3.3V@200mA
Compatibilidade de softwareArduino, PlatformIO, MicroPython, CircuitPython, Zephyr
Exibição da Série XIAO - Seeed Studio Wiki
Temperatura de trabalho-40 a 85°C
Dimensões21×17.8mm
VariantesSeeed Studio XIAO SAMD21 (Pré-soldado) - Seeed Studio
Seeed Studio XIAO SAMD21 - Arduino Microcontroller - SAMD21 Cortex M0+ (3 PCs) - Seeed Studio

Visão geral de hardware

pir

pir

pir

pir

cuidado

Para pinos gerais de I/O: A tensão de trabalho do MCU é 3.3V. A tensão de entrada conectada aos pinos gerais de I/O pode causar danos ao chip se for maior que 3.3V.

Para pinos de alimentação: O circuito conversor DC-DC integrado capaz de transformar a tensão de 5V em 3.3V permite alimentar o dispositivo com uma fonte de 5V via VIN-PIN e 5V-PIN.

É fundamental entender que os pads VIN e GND na parte de trás do XIAO SAMD21 não foram projetados para conectar diretamente uma bateria, especialmente uma bateria recarregável de lítio (LiPo/Li-Ion). A placa não possui o circuito essencial de gerenciamento de bateria necessário para uma operação segura. Esses pads são simplesmente um ponto alternativo de entrada de energia que ignora o diodo de proteção integrado da placa. Se você desejar alimentar seu projeto com uma bateria, deve usar um módulo externo dedicado de gerenciamento de bateria que forneça carga e proteção e, em seguida, conectar a saída regulada desse módulo ao pino de 5V ou 3V3 do XIAO.

Por favor, preste atenção ao usar, não levante a tampa de blindagem.

Mapa de pinos

Pino XIAOFunçãoPino do ChipDescrição
5VVBUSEntrada/Saída de energia
GND
3V33V3_OUTSaída de energia
D0AnalógicoPA02GPIO, ADC
D1AnalógicoPA04GPIO, ADC
D2AnalógicoPA10GPIO, ADC
D3AnalógicoPA11GPIO, ADC
D4Analógico,SDAPA08GPIO, Dados I2C, ADC
D5Analógico,SCLPA09GPIO, Clock I2C, ADC
D6Analógico,TXPB08GPIO, Transmissão UART, ADC
D7Analógico,RXPB09GPIO, Recepção UART, ADC
D8Analógico,SPI_SCKPA07GPIO, Clock SPI, ADC
D9Analógico,SPI_MISOPA05GPIO, Dados SPI, ADC
D10Analógico,SPI_MOSIPA06GPIO, Dados SPI
ResetRESRESET
TX_LEDPA19TX_LED
RX_LEDPA18RX_LED
Power_LEDVBUSCHG-LED_Vermelho
USER_LEDPA17Luz de usuário_Amarela

Entrar no modo Bootloader

Às vezes, a porta do Seeed Studio XIAO SAMD21 pode desaparecer quando o processo de programação do usuário falha. Podemos resolver esse problema com a seguinte operação:

  • Conecte o Seeed Studio XIAO SAMD21 ao seu computador.
  • Use uma pinça ou fios curtos para fazer curto-circuito nos pinos RST do diagrama duas vezes.
  • Os LEDs laranja piscam e acendem.

Neste ponto, o chip entra no modo Bootloader e a porta de gravação aparece novamente. Como o chip samd21 possui duas partições, uma é o Bootloader e a outra é o programa do usuário. O produto grava um código de bootloader na memória do sistema quando sai de fábrica. Podemos alternar os modos executando as etapas acima.

pir

Reset

Se você quiser resetar o Seeed Studio XIAO SAMD21, execute as etapas a seguir:

  • Conecte o Seeed Studio XIAO SAMD21 ao seu computador.
  • Use uma pinça ou fios curtos para fazer curto-circuito nos pinos RST apenas uma vez
  • Os LEDs laranja piscam e acendem.

Observe: O comportamento do LED interno é o oposto daquele em um Arduino. No Seeed Studio XIAO SAMD21, o pino deve ser puxado para nível baixo, enquanto em outros microcontroladores ele deve ser puxado para nível alto.  

Interrupção

Todos os pinos do Seeed Studio XIAO SAMD21 suportam interrupções, mas dois pinos não podem ser usados ao mesmo tempo: pino 5 e pino 7. Para mais detalhes sobre interrupção, verifique aqui.

Multiplexação de pinos

Não precisamos configurar os pinos nós mesmos, após usar os pinos, você pode chamar uma função diretamente.

Entrada e saída digital

  • Use o pino 6 como pino 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

  • Use o pino 6 como pino 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

  • Use o pino 6 como pino TX da UART (pino RX da UART é o pino 7):

void setup() {
Serial1.begin(115200);
while (!Serial);
}

void loop() {
Serial1.println("Hello,World");
delay(1000);
}

I2C

  • Use o pino 5 como pino SCL do IIC (pino SDA do IIC é o pino 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 o pino 8 como pino SCK do SPI (pino MISO do SPI é o pino 9, pino MOSI do SPI é o pino 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 como usar o QTouch, fornecemos um projeto de exemplo: How to Make a Fruit Piano on Seeed Studio XIAO SAMD21 ’s Q-Touch Function.

Entrada e Saída Analógica

Embora ainda tenha "saídas analógicas" baseadas em PWM, o SAMD21 também apresenta saída analógica verdadeira na forma de um conversor digital‑para‑analógico (DAC). Este módulo pode produzir uma tensão analógica entre 0 e 3,3 V. Ele pode ser usado para produzir áudio com som mais natural ou como uma espécie de "potenciômetro digital" para controlar dispositivos analógicos.

O DAC está disponível apenas no pino Arduino A0 e é controlado usando analogWrite(A0, <value>). O DAC pode ser configurado com resolução de até 10 bits (certifique‑se de chamar analogWriteResolution(10) na sua configuração), o que significa que valores entre 0 e 1023 definirão a tensão em algum ponto entre 0 e 3,3 V.

Além do DAC, os canais ADC do SAMD21 também se destacam em relação ao ATmega328: eles vêm equipados com até 12 bits de resolução. Isso significa que os valores de entrada analógica podem variar de 0 a 4095, representando uma tensão entre 0 e 3,3 V. Para usar os ADCs em modo de 12 bits, certifique‑se de chamar analogReadResolution(12) na sua configuração.

Plotando o DAC via Serial

Aqui está um exemplo que demonstra tanto o DAC quanto o ADC. Para montar o experimento, conecte A0 a A1 — iremos acionar A0 com uma tensão analógica e depois lê‑la com A1. É o circuito mais simples que já colocamos em um tutorial:

nota

O Seeed Studio XIAO SAMD21 usando a placa de expansão Seeed Studio XIAO SAMD21

Este sketch produz uma onda senoidal na saída A0, com valores variando de 0 a 3,3 V. Em seguida, ele usa A1 para ler essa saída no seu ADC e convertê‑la em uma tensão entre 0 e 3,3 V.

Você pode, é claro, abrir o monitor serial para ver o fluxo de valores de tensão. Mas se a forma de onda senoidal for difícil de visualizar por texto, experimente o novo Serial Plotter do Arduino, em Tools > Serial Plotter.

DAC

Agradecemos a Aleksei Tertychnyi por enviar o código; todas as funcionalidades relacionadas foram desenvolvidas e contribuídas por ele.

#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

Primeiros Passos

Hardware

Materiais necessários

  • Seeed Studio XIAO SAMD21 x1
  • Computador x1
  • Cabo USB tipo C x1
dica

Alguns cabos USB podem apenas fornecer alimentação e não transferir dados. Se você não tem um cabo USB ou não sabe se o seu cabo USB pode transmitir dados, você pode conferir o seeed USB type C support USB 3.1.

  • Passo 1. Prepare um Seeed Studio XIAO SAMD21 e um cabo Type‑C.

  • Passo 2. Conecte o Seeed Studio XIAO SAMD21 ao seu computador. Então o LED amarelo de alimentação deve acender.

Software

nota

Se esta é a sua primeira vez usando Arduino, recomendamos fortemente que você consulte Getting Started with Arduino

  • Passo 1. Você precisa instalar o software Arduino.

Inicie o aplicativo Arduino

Dê um clique duplo no aplicativo Arduino (arduino.exe) que você baixou anteriormente.

nota

Se o software Arduino for carregado em um idioma diferente, você pode alterá‑lo na caixa de diálogo de preferências. Veja a página do Arduino Software (IDE) para mais detalhes.

  • Passo 2. Abra o exemplo Blink

Abra o sketch de exemplo de piscar LED: File > Examples >01.Basics > Blink.

pir

  • Passo 3. Adicione o Seeeduino ao seu Arduino IDE

Clique em File > Preference e preencha Additional Boards Manager URLs com a URL abaixo:

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

pir

Clique em Tools-> Board-> Boards Manager..., digite a palavra‑chave "Seeed Studio XIAO SAMD21" no campo de busca. Aparecerá "Seeed SAMD Boards". Instale‑o.

pir

  • Passo 4. Selecione sua placa e porta

Depois de instalar a placa, clique em Tools-> Board, encontre "Seeed Studio XIAO" e selecione‑a. Agora você já configurou a placa Seeed Studio XIAO SAMD21 para o Arduino IDE.

pir

Selecione o dispositivo serial da placa Arduino no menu Tools | Serial Port. Provavelmente será COM3 ou superior (COM1 e COM2 são normalmente reservadas para portas seriais de hardware). Para descobrir, você pode desconectar sua placa Arduino e reabrir o menu; a entrada que desaparecer deve ser a placa Arduino. Reconecte a placa e selecione essa porta serial.

pir

  • Passo 5. Envie o programa

Agora, simplesmente clique no botão "Upload" no ambiente. Espere alguns segundos e, se o envio for bem‑sucedido, a mensagem "Done uploading." aparecerá na barra de status.

pir

Alguns segundos após o término do upload, você deverá ver o LED do pino 13 (L) na placa começar a piscar (em laranja). Se isso acontecer, parabéns! Você colocou o Arduino para funcionar. Se tiver problemas, consulte as sugestões de solução de problemas.

nota

o tamanho máximo da flash é 8KB, mais informações no datasheet ATSAMD218A-MU em recursos

O aplicativo de exemplo

Recursos

Projeto de Hardware

Projeto Mecânico

Software e Ferramentas

Recursos do Curso

Suporte Técnico e Discussão de Produtos

Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...