Skip to main content

Primeros pasos con Seeed Studio XIAO RA4M1


Introducción

El XIAO RA4M1 integra el chip RA4M1 de Renesas (MCU ARM® Cortex®-M4 de 32 bits hasta 48 MHz) en el clásico factor de forma XIAO. Esta placa de desarrollo ofrece 256KB de Flash, 32KB de SRAM, 8KB de EEPROM, un conector USB 2.0, botones de reset y boot, 3 LEDs, un convertidor A/D de 14 bits, un convertidor D/A de 12 bits y una interfaz CAN BUS. Con circuitería de carga integrada y modos de bajo consumo (tan bajos como 45μA), es ideal para aplicaciones alimentadas por batería. Al compartir el mismo microcontrolador R7FA4M1AB3CNE de 32 bits que el Arduino Uno R4, es nativamente compatible con Arduino IDE y con la amplia gama de accesorios XIAO, lo que la convierte en el punto de partida perfecto para proyectos de electrónica.

Características

  • Microcontrolador popular integrado: Impulsado por Renesas RA4M1, un MCU R7FA4M1AB3CNE ARM® Cortex®-M4 de 32 bits que funciona hasta 48 MHz, con 256 KB de memoria Flash y 32 KB de SRAM.
  • Recursos destacados a bordo: Equipado con un ADC de 14 bits, DAC de 12 bits, CAN BUS, USB 2.0 y un LED RGB integrado.
  • 8 nuevos IO ampliados: Añade 8 nuevos pines IO en la parte posterior en comparación con las placas XIAO anteriores (19 GPIO en total), lo que permite aplicaciones más complejas.
  • Potentes funciones de seguridad: Cifrado por hardware integrado, arranque seguro, almacenamiento de claves y otras funciones para garantizar la seguridad de la aplicación.
  • Compatibilidad de software: Totalmente compatible con Arduino IDE para un desarrollo y creación de prototipos de proyectos sin interrupciones.
  • Diseño de energía eficiente: Ofrece 4 modos de funcionamiento con un consumo de energía tan bajo como 45μA en suspensión profunda y admite gestión de carga de baterías de litio.
  • Diseño compacto del tamaño de un pulgar: Con unas dimensiones de 21 x 17.8mm, adopta el clásico factor de forma XIAO de Seeed Studio, ideal para aplicaciones con limitaciones de espacio.
  • Amigable para producción: Diseño de dispositivo de montaje superficial (SMD) con todos los componentes en la parte frontal y orificios tipo sello en ambos lados, lo que facilita una producción en masa eficiente.

Especificación

ProductoXIAO RA4M1
ProcesadorRA4M1 - 32-bit Microcontrollers with 48MHz Arm Cortex-M4 and LCD Controller and Cap Touch for HMI - Renesas
Núcleo Arm® Cortex®-M4 de 48 MHz con FPU
RAM32 KB SRAM
Flash256 KB
LEDs1x LED de usuario
1x LED de encendido
1x LED RGB
Interfaces19 IOs:
6x Analógico
19x Digital
2x IIC
2x UART
2x SPI
Botones1x Botón RESET
1x Botón BOOT
SeguridadAES128/256
Bajo consumo (Típ.)42.6μ[email protected]
Compatibilidad de softwareArduino IDE
Temperatura de trabajo-20°C~70°C
Dimensiones21×17.8 mm

Descripción general del hardware

Antes de empezar, es bastante esencial conocer algunos parámetros básicos del producto. La siguiente tabla proporciona información sobre las características de Seeed Studio XIAO RA4M1.





Diagrama de indicación frontal de XIAO RA4M1
Lista de pines de XIAO RA4M1

Mapa de pines

Pin XIAOFunciónPin del chipFunciones alternativasDescripciónNombre Arduino
5VVBUSEntrada/Salida de alimentación
GND
3V33V3_OUTSalida de alimentación
D0AnalógicoP014AN009GPIO, ADC0
D1AnalógicoP000AN000GPIO, ADC1
D2AnalógicoP001AN001GPIO, ADC2
D3AnalógicoP002AN002GPIO, ADC3
D4SDA1P206GPIO, datos I2C4
D5Analógico,SCL1P100GPIO, reloj I2C, ADC5
D6TXD2P302SDA2GPIO, transmisión UART,I2C6
D7RXD2P301SCL2GPIO, recepción UART,I2C7
D8SPI1_SCKP111GPIO, reloj SPI8
D9SPI1_MISOP110CRX0GPIO, datos SPI,UART9
D10SPI1_MOSIP109CTX0GPIO, datos SPI,UART10
D11RX9P408GPIO, UART
D12TX9P409GPIO,UART
D13GPIOP013GPIO
D14GPIOP012GPIO
D15TXD0P101SDA0,AN021,SPI0_MOSIGPIO, transmisión UART, ADC,SPI,I2C
D16RXD0P104SCL0,SPI0_MISOGPIO,UART, SPI,I2C
D17CRX0P102AN020,SPI0_SCKGPIO, UART , ADC,SPI
D18CTX0P103AN019GPIO, SPI ,ADC,UART
ADC_BATP400Leer el valor de voltaje de la batería
ResetRESRESET
BootP201Entrar en modo Boot
RGB LEDP112LED RGB20
RGB LEDP500RGB LED EN21
CHARGE_LEDVBUSCHG-LED_Red
USER_LEDP011Luz de usuario (Y)19

Primeros pasos

Preparación de hardware

Necesitas preparar lo siguiente:


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.

Preparación de software

La herramienta de programación recomendada para el XIAO RA4M1 es Arduino IDE, por lo que como parte de la preparación de software, deberás completar la instalación de Arduino.

tip

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

  • Paso 1. Descarga e instala la versión estable de Arduino IDE de acuerdo con tu sistema operativo.
  • Paso 2. Inicia la aplicación de Arduino.

  • Paso 3. Añade el paquete de placa RA4M1 a tu Arduino IDE.

    Ve a File > Preferences, y rellena "Additional Boards Manager URLs" con la siguiente URL: https://files.seeedstudio.com/arduino/package_renesas_1.2.0_index.json

    Ve a Tools > Board > Boards Manager..., escribe la palabra clave RA4M1 en el cuadro de búsqueda, selecciona la última versión de Seeed Renesas Board e instálala.

  • Paso 4. Selecciona tu placa y puerto.

    En la parte superior del Arduino IDE, puedes buscar xiao en la placa de desarrollo de la izquierda, seleccionar XIAO_RA4M1 y seleccionar directamente el puerto.

Modo BootLoader

A veces, usar el programa incorrecto puede hacer que el XIAO pierda su puerto o no funcione correctamente. Los problemas comunes incluyen:

  • El XIAO está conectado al ordenador, pero no se encuentra ningún número de puerto.
  • El XIAO está conectado y aparece un número de puerto, pero la carga del programa falla.

Cuando te encuentres con las dos situaciones anteriores, puedes intentar poner el XIAO en modo BootLoader, lo que puede resolver la mayoría de los problemas de dispositivos no reconocidos y cargas fallidas. El método específico es:

  • Método 1. Mantén pulsado el botón BOOT en el XIAO RA4M1 sin soltarlo.
  • Método 2. Mantén pulsado el botón BOOT y luego conéctalo al ordenador mediante el cable de datos. Suelta el botón BOOT después de conectarlo al ordenador.

Reinicio

Cuando el programa se ejecuta de forma anómala, puedes pulsar Reset una vez durante el encendido para que el XIAO vuelva a ejecutar el programa cargado. Cuando mantienes pulsada la tecla BOOT mientras enciendes y luego pulsas la tecla Reset una vez, también puedes entrar en el modo BootLoader.

A estas alturas, creo que ya tienes un buen conocimiento de las funciones y el hardware del XIAO RA4M1. A continuación, tomemos como ejemplo el programa Blink más sencillo y realicemos el primer parpadeo para tu XIAO RA4M1.

  • Paso 1. Inicia la aplicación de Arduino.
  • Paso 2. Ve a File > Examples > 01.Basics > Blink y abre el programa.
  • Paso 3. Selecciona el modelo de placa XIAO RA4M1 y selecciona el número de puerto correcto para cargar el programa.

Una vez que el programa se haya cargado correctamente, verás el siguiente mensaje de salida y podrás observar que el LED naranja en el lado derecho del XIAO RA4M1 está parpadeando.

Enhorabuena, ¡has aprendido a escribir y cargar programas para el XIAO RA4M1!

note

El LED solo se apagará cuando el pin del LED de usuario en el XIAO RA4M1 se establezca en un nivel alto, y solo se encenderá cuando el pin se establezca en un nivel bajo.

Juega con los LED RGB

El XIAO RA4M1 viene con un LED RGB integrado que puedes controlar; a continuación se muestra un ejemplo de cómo cambiar suavemente el color del LED entre rojo, verde y azul.

  • Paso 1. Descarga la biblioteca Adafruit_NeoPixel

Ve a Sketch > Include Liarbry > Manage Libraries..., y busca Adafruit_NeoPixel, instala la última versión.

  • Paso 2. Copia el siguiente código en un nuevo sketch:
#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
}
}

  • Paso 3. Selecciona el modelo de placa XIAO RA4M1 y selecciona el número de puerto correcto para cargar el programa.

Batería y gestión de energía

¿Es posible leer el voltaje de la batería sin componentes adicionales? Sí, con el XIAO RA4M1 es más fácil que nunca. En miembros anteriores de la familia XIAO, como el XIAO ESP32C3, leer el voltaje de la batería requería conectarse manualmente a A0 con una resistencia.

Pero con el XIAO RA4M1, este proceso se simplifica. Ahora puedes usar directamente el pin BAT_DET_PIN/P105 para leer el nivel de voltaje de la batería, simplificando tu diseño y desarrollo. Solo recuerda configurar el pin BAT_READ_EN/P400 en alto, ya que es necesario para habilitar la lectura del nivel de la batería.

  • Paso 1. Preparación de hardware
Seeed Studio XIAO RA4M1Seeed Studio Expansion Base for XIAO with Grove OLED

La pantalla OLED en la placa de expansión XIAO utiliza el protocolo I2C y está conectada a la interfaz I2C del XIAO a través del circuito I2C de la placa. Por lo tanto, podemos conectar directamente el XIAO a la placa de expansión y programarlo para mostrar contenido en la pantalla.

  • Paso 2. Instala la biblioteca u8g2.
  • Paso 3. Copia el código y pégalo en el 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
}

  • Paso 4. Selecciona el modelo de placa como XIAO RA4M1 y selecciona el número de puerto correcto para cargar el programa

Recursos

Diseño de hardware

Solución de problemas

P1: ¿Qué debo tener en cuenta al soldar pines?

Debido al tamaño miniatura de XIAO RA4M1, ten cuidado al soldar los pines; no unas pines diferentes entre sí y no dejes que la soldadura toque la cubierta o otros componentes. De lo contrario, puede provocar que XIAO tenga un cortocircuito o no funcione correctamente, y las consecuencias derivadas de esto serán asumidas por el usuario.

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...