Algunos métodos de uso de Seeed Studio XIAO MG24 Sense y Standard

¿Qué son?

Seeed Studio XIAO MG24 y XIAO MG24 Sense son placas de desarrollo inalámbricas de ultra bajo consumo basadas en SoC EFR32MG24 de Silicon Labs, con un núcleo ARM Cortex®-M33 de alto rendimiento a 78MHz ARM Cortex®-M33. Ambas placas son nativas de Matter® sobre Thread® y Bluetooth® Low Energy 5.3, soportadas por el Arduino® Core, e incluyen 4MB de Flash, 19 GPIOs, LED y un circuito de carga. Cuentan con un consumo de corriente extremadamente bajo y modos de ultra bajo consumo, lo que las hace ideales para aplicaciones IoT, especialmente proyectos alimentados por batería que utilizan protocolos Matter®. Además, el XIAO MG24 Sense incluye un micrófono analógico a bordo y sensores IMU de seis ejes, lo que lo convierte en una excelente opción para aplicaciones de TinyML como la detección de postura. Para más detalles, por favor haga clic aquí.

Seeed Studio XIAO MG24 Silicon Labs EFR32MG24 BLE 5.3 1.95μA

Seeed Studio XIAO MG24 Standard

Ver Producto
Seeed Studio XIAO MG24 Sense Silicon Labs EFR32MG24 BLE 5.3

Seeed Studio XIAO MG24 Sense

Ver Producto

Empezando

programa simple de fábrica

XIAO MG24

La versión Standard viene con un programa preestablecido de fábrica llamado Luz Intermitente. Cuando enciendes el XIAO, el indicador de usuario naranja se iluminará.

XIAO MG24 Sense

El programa preestablecido de fábrica en la versión Sense está diseñado para que cuanto más fuerte grites, más brillante será la luz.

Preparación de hardware

  • 1 x Seeed Studio XIAO MG24
  • 1 x Computadora
  • 1 x cable USB Tipo-C
nota: Algunos cables USB solo pueden suministrar energía y no pueden transferir datos.

Preparación del software

Para el XIAO MG24, la herramienta de programación sugerida es el Arduino IDE, por lo que el primer paso en la preparación del software es completar la instalación de Arduino.
  • Paso 1. Descarga e instala la versión estable del Arduino IDE según tu sistema operativo.
  • Paso 2. Inicia la aplicación Arduino.
  • Paso 3. Agrega el paquete de la placa XIAO MG24 al Arduino IDE y haz clic en OK.
  • Paso 4. Cierra el Arduino IDE y vuelve a abrirlo.

Agrega la placa XIAO MG24

Agrega la URL a continuación a las preferencias de tu Arduino IDE.

Descarga el paquete de la placa XIAO MG24.


Opta por la variante XIAO_MG24.


Comienza tu primer programa Blink

  • Paso 1. Inicia la aplicación Arduino.
  • Paso 2. Navega a Archivo > Ejemplos > 01.Basics > Blink, abre el programa.
  • Paso 3. Elige el modelo de placa XIAO MG24 y selecciona el número de puerto adecuado para cargar el programa.

Después de que el programa se cargue correctamente, verás el mensaje de salida a continuación y notarás que el LED naranja en el lado derecho del XIAO MG24 está parpadeando.

Uso de la batería

Conexión y gestión de la batería

El XIAO MG24 cuenta con un chip de gestión de energía incorporado que le permite alimentarse de forma independiente usando una batería o cargar la batería a través del puerto USB.
Si planea conectar una batería al XIAO, recomendamos usar una batería recargable de litio certificada de 3.7V. Al soldar la batería, asegúrese de identificar correctamente los terminales positivo y negativo. El terminal negativo debe conectarse al lado más cercano al puerto USB, mientras que el terminal positivo se conecta al lado más alejado del puerto USB.

Visualización del estado de carga

Implementamos una luz indicadora roja para mostrar el estado de carga de la batería, manteniendo a los usuarios informados del estado actual durante la carga.
  • Sin batería conectada: La luz roja se enciende cuando se conecta el cable Type-C y se apaga automáticamente después de 30 segundos.
  • Cargando con una batería conectada: La luz roja parpadea mientras el cable Type-C carga la batería.
  • Cuando la batería está completamente cargada: La luz roja se apaga, señalando la finalización del proceso de carga.

Otras notas

  • Use baterías calificadas: Use solo baterías que cumplan con los requisitos especificados.
  • Conexión del cable de datos: El XIAO puede conectarse a su computadora mediante un cable de datos mientras funciona con batería. Tenga la seguridad de que cuenta con un chip de protección de circuito incorporado para mayor seguridad.
  • Indicador LED: Cuando se alimenta con batería, el XIAO MG24 no mostrará ninguna luz LED (a menos que lo haya programado para hacerlo). Por favor, no evalúe si el XIAO MG24 está funcionando basándose en el estado del LED; confíe en su programa para una evaluación adecuada.
  • Monitoreo del nivel de batería: Desafortunadamente, actualmente no podemos proporcionar una forma de verificar el nivel restante de la batería mediante software (debido a la falta de pines disponibles en el chip). Debe cargar la batería regularmente o usar un multímetro para monitorear el nivel de la batería.

Medición del voltaje de la batería

Código de software:

 

/*
  AnalogReadSerial

  Lee una entrada analógica en el pin 0, imprime el resultado en el Monitor Serial.
  La representación gráfica está disponible usando Serial Plotter (menú Herramientas > Serial Plotter).
  Conecta el pin central de un potenciómetro al pin A0, y los pines exteriores a +5V y tierra.

  Este código de ejemplo es de dominio público.

  https://www.arduino.cc/en/Tutorial/BuiltInExamples/AnalogReadSerial
*/

// la rutina de configuración se ejecuta una vez cuando presionas reset:
void setup() {
  Serial.begin(115200);
  pinMode(PD3, OUTPUT);
  digitalWrite(PD3, HIGH);
}

void loop() {
  int voltageValue = analogRead(PD4);
  float voltage = voltageValue * (5.0 / 4095.0);
  
  Serial.print("Voltaje: ");
  Serial.print(voltage, 2);
  Serial.println(" V");
  delay(1000);  // retardo entre lecturas para estabilidad
}

Mostrar resultado

Ejemplo de Sueño Profundo y Sueño

Demo1 Modo de Sueño y despertar

 


/*
   Ejemplo de sueño temporizado con ArduinoLowPower

   El ejemplo muestra el uso básico de la biblioteca Arduino Low Power poniendo el dispositivo a dormir por un período de tiempo.
   El dispositivo entrará en modo de sueño durante 2000 ms. Durante el sueño, la CPU se detiene pero la RAM conserva su contenido.

   Este ejemplo es compatible con todas las placas Arduino de Silicon Labs.

   Autor: Tamas Jozsi (Silicon Labs)
 */

#include "ArduinoLowPower.h"

void setup()
{
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, LED_BUILTIN_INACTIVE);
  Serial.println("Sueño con despertar por tiempo");
}

void loop()
{
  digitalWrite(LED_BUILTIN, LED_BUILTIN_ACTIVE);
  delay(500);
  digitalWrite(LED_BUILTIN, LED_BUILTIN_INACTIVE);
  delay(500);

  Serial.printf("Entrando en sueño a las %lu\n", millis());
  LowPower.sleep(2000);
  Serial.printf("Despertó a las %lu\n", millis());
}

Demo2 Modo de Sueño Profundo y despertar

 

/*
   Ejemplo de sueño profundo con ArduinoLowPower con activación externa o temporizada

   El ejemplo muestra el uso básico de la biblioteca Arduino Low Power poniendo el dispositivo en sueño profundo.
   El dispositivo permanecerá en sueño profundo hasta que expire el temporizador de sueño.
   Durante el sueño profundo, todo el dispositivo se apaga excepto un conjunto mínimo de periféricos (como la RAM de respaldo y el RTC).
   Esto significa que la CPU se detiene y se pierde el contenido de la RAM: el dispositivo comenzará desde el inicio del sketch después de despertarse.

   Este ejemplo es compatible con todas las placas Arduino de Silicon Labs.

   Autor: Tamas Jozsi (Silicon Labs)
 */

#include "ArduinoLowPower.h"

void setup()
{
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, LED_BUILTIN_INACTIVE);
  Serial.println("Despertar por tiempo en modo de sueño profundo");
}

void loop()
{
  digitalWrite(LED_BUILTIN, LED_BUILTIN_ACTIVE);
  delay(500);
  digitalWrite(LED_BUILTIN, LED_BUILTIN_INACTIVE);
  delay(500);

  Serial.printf("Entrando en sueño profundo por 10s a las %lu\n", millis());
  LowPower.deepSleep(10000);
}

 

Demo3 Modo de sueño profundo con flash y activación

Para habilitar el sueño profundo para la memoria flash, debe activar el registro 0xb9.
 

/*
   Ejemplo de sueño profundo con ArduinoLowPower con activación externa o temporizada

   El ejemplo muestra el uso básico de la biblioteca Arduino Low Power poniendo el dispositivo en sueño profundo.
   El dispositivo permanecerá en sueño profundo hasta que expire el temporizador de sueño.
   Durante el sueño profundo, todo el dispositivo se apaga excepto un conjunto mínimo de periféricos (como la RAM de respaldo y el RTC).
   Esto significa que la CPU se detiene y se pierde el contenido de la RAM: el dispositivo comenzará desde el inicio del sketch después de despertarse.

   Este ejemplo es compatible con todas las placas Arduino de Silicon Labs.

   Autor: Tamas Jozsi (Silicon Labs)
 */
#include <Arduino.h>
#include "ArduinoLowPower.h"

#define CS_PIN PA6
#define CLK_PIN PA3
#define MOSI_PIN PA5
#define MISO_PIN PA4

#define READ_DATA 0x03
#define WRITE_ENABLE 0x06
#define PAGE_PROGRAM 0x02
#define SECTOR_ERASE 0x20

void sendSPI(byte data) {
  for (int i = 0; i < 8; i++) {
    digitalWrite(MOSI_PIN, data & 0x80);
    data <<= 1;
    digitalWrite(CLK_PIN, HIGH);
    delayMicroseconds(1);
    digitalWrite(CLK_PIN, LOW);
    delayMicroseconds(1);
  }
}

void writeEnable() {
  digitalWrite(CS_PIN, LOW);
  sendSPI(WRITE_ENABLE);
  digitalWrite(CS_PIN, HIGH);
}

void setup()
{
  //Serial.begin(115200);
  pinMode(PA7, OUTPUT);
  digitalWrite(PA7, LOW);

  pinMode(CS_PIN, OUTPUT);
  pinMode(CLK_PIN, OUTPUT);
  pinMode(MOSI_PIN, OUTPUT);
  pinMode(MISO_PIN, INPUT);


  //SW
  pinMode(PD3, OUTPUT);
  pinMode(PB5, OUTPUT);
  pinMode(PB1, OUTPUT);
  pinMode(PB0, OUTPUT);
  pinMode(PA6, OUTPUT);
  digitalWrite(PD3, LOW); //VBAT
  digitalWrite(PB5, LOW); //RF_SW
  digitalWrite(PB1, LOW); //IMU
  digitalWrite(PB0, LOW); //MIC
  digitalWrite(PA6, HIGH);  //FLASH

  //Serial.println("Despertar programado de sueño profundo");
  writeEnable();
  digitalWrite(CS_PIN, LOW);
  sendSPI(0xB9);
  digitalWrite(CS_PIN, HIGH);
}

void loop()
{
  delay(12000);  
  digitalWrite(PA7, HIGH);
  delay(500);

  //Serial.printf("Entrando en sueño profundo por 10s a %lu\n", millis());
  LowPower.deepSleep(600000);
}

Protegiendo el XIAO MG24 de brickearse cuando está en Sueño Profundo

El XIAO MG24 de Seeed Studio es una placa de microcontrolador potente, pero los usuarios han encontrado problemas donde el dispositivo se vuelve no responsive ("brickeado") después de entrar en modo de Sueño Profundo. Esta guía aborda la causa raíz, detalla un proceso de recuperación y ofrece consejos para evitar que tu XIAO MG24 se brickee.
Cuando el XIAO MG24 entra en modo de Sueño Profundo (EM4) para ahorrar energía, puede fallar al despertar correctamente, bloqueando la carga de nuevos sketches. A diferencia de otras placas XIAO, el MG24 carece de un botón BOOT o un método claramente documentado para entrar en modo boot, lo que hace que la recuperación sea más compleja.
Para pasos detallados de recuperación, continúa leyendo a continuación.

1.Usa el Pin de Escape (PC0)

El XIAO MG24 tiene un mecanismo de escape incorporado para evitar que se bloquee. Si PC0 se pone en LOW durante un reinicio, el dispositivo entrará en un bucle infinito, permitiéndote cargar un nuevo sketch.
  • Conexión: Conecta PC0 a GND antes de reiniciar el dispositivo.
  • Carga: Después de reiniciar, carga tu sketch mientras el dispositivo está en el bucle.

2.Modifica tu Sketch

Agrega el siguiente código a tu sketch para detectar un interruptor de usuario. Si el interruptor está presionado, el dispositivo entrará en un bucle infinito, permitiéndote cargar un nuevo sketch mientras el dispositivo está en el bucle:
 

#define USER_SW  PC3   // Pin de ejemplo para el interruptor de usuario

void setup() {
  // Otro código de configuración...

  pinMode(USER_SW, INPUT_PULLUP);
  if (digitalRead(USER_SW) == LOW) {
    Serial.println("Habilitar para cargar un nuevo sketch");
    while (true) {
      digitalWrite(LED_BUILTIN, LOW);
      delay(50);
      digitalWrite(LED_BUILTIN, HIGH);
      delay(50);
    }
  }
}

3. Evita la suspensión innecesaria de la memoria flash

Asegúrate de que tu sketch no ponga la memoria flash en modo de suspensión (Deep Power Down) a menos que sea absolutamente necesario. Hacerlo puede evitar problemas al cargar nuevos sketches. Mantener la memoria flash activa asegura un proceso de carga más fluido y evita posibles bloqueos del dispositivo.

Soluciones para acceso y recuperación del puerto serie

Soluciones para Windows

1. Descarga el archivo ZIP proporcionado.

2. Conecta el XIAO MG24

Usa un cable USB para conectar el XIAO MG24 que no responde a tu computadora.

3. Ejecuta el script

Abre la carpeta extraída y encuentra el flash_erase.bat script.
Haz doble clic en el script para ejecutarlo. Esto borrará la memoria flash y reiniciará el dispositivo.

4. Verificar la recuperación

Después de que el script termine, el XIAO MG24 debería estar restaurado y listo para usar.

Soluciones para macOS

1. Descarga el archivo ZIP proporcionado.

2. Conecta el XIAO MG24

Usa un cable USB para conectar el XIAO MG24 que no responde a tu computadora.

3.Permitir Terminal Acceso

  • Abre Preferencias del Sistema: Ve a Preferencias del Sistema en tu Mac.
  • Navega a Seguridad y Privacidad: Haz clic en Seguridad y Privacidad, luego ve a la Privacidad pestaña.
  • Verifica Accesibilidad: En la Accesibilidad sección, asegúrate de que Terminal tenga permiso para controlar tu computadora.
  • Agrega Terminal si es necesario: Si Terminal no está en la lista, haz clic en el botón + para agregarlo manualmente. Selecciona Terminal en tu carpeta de Aplicaciones.

4.Ejecuta el Script

  • Abre Terminal.
  • Navega a la carpeta extraída usando el cd comando. Por ejemplo:
  • Ejecute el script usando ./xiao_mg24_erase.sh.Esto borrará la memoria flash y reiniciará el dispositivo.

5.Verificar recuperación

Después de que el script termine, el XIAO MG24 debería estar restaurado y listo para usar.

Nota

Si macOS no reconoce OpenOCD, por favor verifique que OpenOCD esté instalado y que el script esté usando la ruta correcta. Además, los scripts proporcionados están diseñados específicamente para el XIAO MG24 y no deben usarse con otros modelos XIAO.

Otra información

Preguntas frecuentes

¿Hay información detallada o parámetros del Seeed Studio XIAO MG24 Sense o Standard?

 

Barra lateral

Última publicación

Esta sección actualmente no incluye ningún contenido. Agrega contenido a esta sección utilizando la barra lateral.

Regístrate para nuestro boletín

Obtén la información más reciente sobre nuestros productos y ofertas especiales.