Några användningsmetoder för Seeed Studio XIAO MG24 Sense och Standard

Vad är de?

Seeed Studio XIAO MG24 och XIAO MG24 Sense är ultralågströms trådlösa utvecklingskort baserade på Silicon Labs' EFR32MG24 SoC, med en högpresterande 78MHz ARM Cortex®-M33-kärna. Båda korten är Matter® native över Thread® och Bluetooth® Low Energy 5.3, stödda av Arduino® Core, och inkluderar 4MB Flash, 19 GPIOs, LED och en laddningskrets. De har extremt låg driftström och ultralågströmslägen, vilket gör dem idealiska för IoT-applikationer, särskilt batteridrivna projekt som använder Matter®-protokoll. Dessutom inkluderar XIAO MG24 Sense en ombord analog mikrofon och sexaxliga IMU-sensorer, vilket gör det till ett utmärkt val för TinyML-applikationer som hållningsdetektion. För mer information, klicka här.

Seeed Studio XIAO MG24 Silicon Labs EFR32MG24 BLE 5.3 1,95μA

Seeed Studio XIAO MG24 Standard

Visa produkt
Seeed Studio XIAO MG24 Sense Silicon Labs EFR32MG24 BLE 5.3

Seeed Studio XIAO MG24 Sense

Visa produkt

Komma igång

enkelt fabrikprogram

XIAO MG24

Standard-versionen levereras med ett fabriksinställt program som kallas Blink Light. När du slår på XIAO tänds den orange användarindikatorn.

XIAO MG24 Sense

Fabriksprestandaprogrammet i Sense-versionen är utformat så att ju högre du ropar, desto starkare lyser ljuset.

Hårdvaruförberedelse

  • 1 x Seeed Studio XIAO MG24
  • 1 x Dator
  • 1 x USB Type-C-kabel
notera: Vissa USB-kablar kan endast leverera ström och kan inte överföra data.

Mjukvaruförberedelse

För XIAO MG24 är det föreslagna programmeringsverktyget Arduino IDE, så det första steget i mjukvaruförberedelsen är att slutföra Arduino-installationen.
  • Steg 1. Ladda ner och installera den stabila versionen av Arduino IDE enligt ditt operativsystem.
  • Steg 2. Starta Arduino-applikationen.
  • Steg 3. Lägg till XIAO MG24 ombordspaketet i Arduino IDE och klicka på OK.
  • Steg 4. Stäng Arduino IDE och öppna det igen.

Lägg till XIAO MG24-kortet

Lägg till URL:en nedan i inställningarna för din Arduino IDE.

Ladda ner XIAO MG24-kortpaketet.


Välj XIAO_MG24-variant.


Börja med ditt första Blink-program

  • Steg 1. Starta Arduino-applikationen.
  • Steg 2. Navigera till Arkiv > Exempel > 01.Basics > Blink, öppna programmet.
  • Steg 3. Välj XIAO MG24-kortmodell och välj rätt portnummer för att ladda upp programmet.

Efter att programmet har laddats upp framgångsrikt kommer du att se utmatningsmeddelandet nedan och märka att den orange LED-lampan på högra sidan av XIAO MG24 blinkar.

Batterianvändning

Batterianslutning och hantering

XIAO MG24 har en inbyggd strömhanteringschip som gör att den kan drivas självständigt med ett batteri eller ladda batteriet via USB-porten.
Om du planerar att ansluta ett batteri till XIAO rekommenderar vi att du använder ett certifierat 3,7V uppladdningsbart litiumbatteri. När du löder batteriet, se till att du korrekt identifierar plus- och minuspolerna. Minuspolen ska anslutas till sidan närmast USB-porten, medan pluspolen ansluts till sidan längst från USB-porten.

Visning av laddningsstatus

Vi har implementerat en röd indikatorlampa för att visa batteriets laddningsstatus, så att användare hålls informerade om det aktuella läget under laddning.
  • Utan batteri anslutet: Den röda lampan tänds när Type-C-kabeln ansluts och släcks automatiskt efter 30 sekunder.
  • Laddning med batteri anslutet: Den röda lampan blinkar medan Type-C-kabeln laddar batteriet.
  • När batteriet är fulladdat: Den röda lampan släcks, vilket signalerar att laddningsprocessen är klar.

Övriga anteckningar

  • Använd kvalificerade batterier: Använd endast batterier som uppfyller de angivna kraven.
  • Datakabelanslutning: XIAO kan anslutas till din dator via en datakabel medan den körs på batteri. Var lugn, den har en inbyggd kretskyddschip för säkerhet.
  • LED-indikator: När den drivs av ett batteri kommer XIAO MG24 inte att visa några LED-lampor (om du inte har programmerat den att göra det). Vänligen bedöm inte om XIAO MG24 fungerar baserat på LED-status; förlita dig på ditt program för korrekt utvärdering.
  • Övervakning av batterinivå: Tyvärr kan vi för närvarande inte erbjuda ett sätt att kontrollera återstående batterinivå via mjukvara (på grund av brist på tillgängliga chipstift). Du bör ladda batteriet regelbundet eller använda en multimeter för att övervaka batterinivån.

Batterispänningsmätning

Programkod:

 

/*
  AnalogReadSerial

  Läser en analog ingång på pin 0, skriver ut resultatet till Serial Monitor.
  Grafisk representation finns tillgänglig med Serial Plotter (Verktyg > Serial Plotter-menyn).
  Anslut mittstiftet på en potentiometer till pin A0, och de yttre stiften till +5V och jord.

  Detta exempel på kod är public domain.

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

// setup-rutinen körs en gång när du trycker på 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("Spänning: ");
  Serial.print(voltage, 2);
  Serial.println(" V");
  delay(1000);  // fördröjning mellan mätningar för stabilitet
}

Visa resultat

Exempel på djup sömn och sömn

Demo1 Viloläge och uppvakning

 


/*
   ArduinoLowPower tidsinställt sömnexempel

   Exemplet visar grundläggande användning av Arduino Low Power-biblioteket genom att sätta enheten i sömn under en tidsperiod.
   Enheten går in i viloläge i 2000 ms. Under sömnen stoppas CPU:n men RAM behåller sitt innehåll.

   Detta exempel är kompatibelt med alla Silicon Labs Arduino-kort.

   Författare: Tamas Jozsi (Silicon Labs)
 */

#include "ArduinoLowPower.h"

void setup()
{
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, LED_BUILTIN_INACTIVE);
  Serial.println("Sömn med tidsinställt uppvaknande");
}

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

  Serial.printf("Går till sömn vid %lu\n", millis());
  LowPower.sleep(2000);
  Serial.printf("Vaknade vid %lu\n", millis());
}

Demo2 Djup viloläge och uppvakning

 

/*
   ArduinoLowPower djup sömn-exempel med extern eller tidsstyrd uppvakning

   Exemplet visar grundläggande användning av Arduino Low Power-biblioteket genom att sätta enheten i djup sömn.
   Enheten förblir i djup sömn tills sömntimern löper ut.
   Under djup sömn är hela enheten avstängd förutom en minimal uppsättning kringutrustning (som Back-up RAM och RTC).
   Detta innebär att CPU:n stoppas och RAM-innehållet förloras – enheten startar från början av skissen efter uppvakning.

   Detta exempel är kompatibelt med alla Silicon Labs Arduino-kort.

   Författare: Tamas Jozsi (Silicon Labs)
 */

#include "ArduinoLowPower.h"

void setup()
{
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, LED_BUILTIN_INACTIVE);
  Serial.println("Deep sleep timed wakeup");
}

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

  Serial.printf("Går till djup sömn i 10s vid %lu\n", millis());
  LowPower.deepSleep(10000);
}

 

Demo3 Djup sömn-läge med flash och uppvakning

För att aktivera djup sömn för flashminnet måste du aktivera 0xb9-registret.
 

/*
   ArduinoLowPower djup sömn-exempel med extern eller tidsstyrd uppvakning

   Exemplet visar grundläggande användning av Arduino Low Power-biblioteket genom att sätta enheten i djup sömn.
   Enheten förblir i djup sömn tills sömntimern löper ut.
   Under djup sömn är hela enheten avstängd förutom en minimal uppsättning kringutrustning (som Back-up RAM och RTC).
   Detta innebär att CPU:n stoppas och RAM-innehållet förloras – enheten startar från början av skissen efter uppvakning.

   Detta exempel är kompatibelt med alla Silicon Labs Arduino-kort.

   Författare: Tamas Jozsi (Silicon Labs)
 */
#include
#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("Deep sleep tidsstyrd uppvakning");
  writeEnable();
  digitalWrite(CS_PIN, LOW);
  sendSPI(0xB9);
  digitalWrite(CS_PIN, HIGH);
}

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

  //Serial.printf("Går in i deep sleep i 10s vid %lu\n", millis());
  LowPower.deepSleep(600000);
}

Skydda XIAO MG24 från att bli bricked när den är i Deep Sleep

XIAO MG24 från Seeed Studio är ett kraftfullt mikrokontrollerkort, men användare har stött på problem där enheten blir oresponsiv ("bricked") efter att ha gått in i Deep Sleep-läge. Denna guide tar upp grundorsaken, beskriver en återställningsprocess och ger tips för att förhindra att din XIAO MG24 blir bricked.
När XIAO MG24 går in i Deep Sleep-läge (EM4) för att spara ström kan den misslyckas med att vakna ordentligt, vilket blockerar uppladdningen av nya skisser. Till skillnad från andra XIAO-kort saknar MG24 en BOOT-knapp eller en tydligt dokumenterad metod för att gå in i boot-läge, vilket gör återställningen mer komplicerad.
För detaljerade återställningssteg, fortsätt läsa nedan.

1.Använd flyktpinnen (PC0)

XIAO MG24 har en inbyggd flyktmekanism för att förhindra blockering. Om PC0 dras LOW under en återställning kommer enheten att gå in i en oändlig loop, vilket gör att du kan ladda upp en ny skiss.
  • Anslutning: Anslut PC0 till GND innan du återställer enheten.
  • Uppladdning: Efter återställning, ladda upp din skiss medan enheten är i loopen.

2.Ändra din skiss

Lägg till följande kod i din skiss för att upptäcka en användarströmbrytare. Om strömbrytaren trycks in kommer enheten att gå in i en oändlig loop, vilket gör att du kan ladda upp en ny skiss medan enheten loopar:
 

#define USER_SW  PC3   // Exempel på pinne för användarströmbrytare

void setup() {
  // Annan setup-kod...

  pinMode(USER_SW, INPUT_PULLUP);
  if (digitalRead(USER_SW) == LOW) {
    Serial.println("Aktivera för att ladda upp ny skiss");
    while (true) {
      digitalWrite(LED_BUILTIN, LOW);
      delay(50);
      digitalWrite(LED_BUILTIN, HIGH);
      delay(50);
    }
  }
}

3.Undvik onödigt flash-viloläge

Se till att din skiss inte sätter flashminnet i viloläge (Deep Power Down) om det inte är absolut nödvändigt. Att göra det kan förhindra problem vid uppladdning av nya skisser. Att hålla flashminnet aktivt säkerställer en smidigare uppladdningsprocess och undviker potentiell blockering av enheten.

Lösningar för seriell portåtkomst och återställning

Windows-lösningar

1.Ladda ner den medföljande ZIP-filen.

2.Anslut XIAO MG24

Använd en USB-kabel för att ansluta den icke-responsiva XIAO MG24 till din dator.

3.Kör skriptet

Öppna den extraherade mappen och hitta flash_erase.bat skript.
Dubbelklicka på skriptet för att köra det. Detta kommer att radera flashminnet och återställa enheten.

4.Verifiera återställning

Efter att skriptet är klart bör XIAO MG24 vara återställd och redo att användas.

macOS-lösningar

1.Ladda ner den medföljande ZIP-filen.

2.Anslut XIAO MG24

Använd en USB-kabel för att ansluta den icke-responsiva XIAO MG24 till din dator.

3.Tillåt Terminal Tillgång

  • Öppna Systeminställningar: Gå till Systeminställningar på din Mac.
  • Navigera till Säkerhet & Integritet: Klicka på Säkerhet & Integritet, gå sedan till Integritet fliken.
  • Kontrollera tillgänglighet: Under Tillgänglighet avsnittet, se till att Terminal har tillåtelse att styra din dator.
  • Lägg till Terminal om det behövs: Om Terminal inte finns med, klicka på + knappen för att lägga till det manuellt. Välj Terminal från din Program-mapp.

4.Kör skriptet

  • Öppna Terminal.
  • Navigera till den extraherade mappen med cd kommandot. Till exempel:
  • Kör skriptet med ./xiao_mg24_erase.sh.Detta kommer att radera flashminnet och återställa enheten.

5.Verifiera återställning

Efter att skriptet är klart bör XIAO MG24 vara återställd och redo att användas.

Notera

Om macOS inte känner igen OpenOCD, kontrollera att OpenOCD är installerat och att skriptet använder rätt sökväg. Dessutom är de medföljande skripten särskilt anpassade för XIAO MG24 och bör inte användas med andra XIAO-modeller.

Annan information

Vanliga frågor

Finns det någon detaljerad information eller parametrar för Seeed Studio XIAO MG24 Sense eller Standard?

 

Sidopanel

Senaste inlägg

Denna sektion innehåller för närvarande inget innehåll. Lägg till innehåll i denna sektion med hjälp av sidofältet.

Registrera dig för vårt nyhetsbrev

Få den senaste informationen om våra produkter och specialerbjudanden.