Enkele gebruiksmethoden van Seeed Studio XIAO MG24 Sense en Standard

Wat zijn ze?

Seeed Studio XIAO MG24 en XIAO MG24 Sense zijn ultra-zuinige draadloze ontwikkelborden gebaseerd op Silicon Labs' EFR32MG24 SoC, met een krachtige 78MHz ARM Cortex®-M33 core. Beide borden zijn Matter® native via Thread® en Bluetooth® Low Energy 5.3, ondersteund door de Arduino® Core, en bevatten 4MB Flash, 19 GPIO's, LED en een laadcircuit. Ze hebben een uiterst laag stroomverbruik en ultra-zuinige modi, waardoor ze ideaal zijn voor IoT toepassingen, vooral batterijgevoede projecten die gebruikmaken van Matter® protocollen. Bovendien bevat de XIAO MG24 Sense een aan boord aanwezige analoge microfoon en zes-assige IMU sensoren, wat het een uitstekende keuze maakt voor TinyML toepassingen zoals houdingsdetectie. Voor meer details, klik alstublieft hier.

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

Seeed Studio XIAO MG24 Standard

Bekijk product
Seeed Studio XIAO MG24 Sense Silicon Labs EFR32MG24 BLE 5.3

Seeed Studio XIAO MG24 Sense

Bekijk product

Aan de slag

eenvoudig fabrieksprogramma

XIAO MG24

De Standard-versie wordt geleverd met een fabrieksvooraf ingesteld programma genaamd Blink Light. Wanneer je de XIAO aanzet, zal de oranje gebruikersindicator oplichten.

XIAO MG24 Sense

Het fabrieksvooraf ingestelde programma in de Sense-versie is zo ontworpen dat hoe harder je schreeuwt, hoe feller het licht zal schijnen.

Hardwarevoorbereiding

  • 1 x Seeed Studio XIAO MG24
  • 1 x Computer
  • 1 x USB Type-C kabel
opmerking: Sommige USB-kabels kunnen alleen stroom leveren en kunnen geen data overdragen.

Softwarevoorbereiding

Voor de XIAO MG24 is het aanbevolen programmeergereedschap de Arduino IDE, dus de eerste stap in softwarevoorbereiding is het voltooien van de Arduino-installatie.
  • Stap 1. Download en installeer de stabiele versie van de Arduino IDE volgens je besturingssysteem.
  • Stap 2. Start de Arduino-applicatie.
  • Stap 3. Voeg het XIAO MG24 on-board pakket toe aan de Arduino IDE en klik op OK.
  • Stap 4. Sluit de Arduino IDE en open deze opnieuw.

Voeg het XIAO MG24 Board toe

Voeg de onderstaande URL toe aan de voorkeuren van je Arduino IDE.

Download het XIAO MG24 boardpakket.


Kies voor de XIAO_MG24 variant.


Begin met je eerste Blink-programma

  • Stap 1. Start de Arduino-applicatie.
  • Stap 2. Navigeer naar Bestand > Voorbeelden > 01.Basics > Blink, open het programma.
  • Stap 3. Kies het XIAO MG24 boardmodel en selecteer het juiste poortnummer om het programma te uploaden.

Nadat het programma succesvol is geüpload, zie je het onderstaande uitvoerbericht en merk je dat de oranje LED aan de rechterkant van de XIAO MG24 knippert.

Batterijgebruik

Batterijverbinding en -beheer

De XIAO MG24 beschikt over een ingebouwde stroombeheerchip die het mogelijk maakt om onafhankelijk te worden gevoed met een batterij of om de batterij via de USB-poort op te laden.
Als je van plan bent een batterij op de XIAO aan te sluiten, raden we aan een gecertificeerde 3,7V oplaadbare lithiumbatterij te gebruiken. Zorg er bij het solderen van de batterij voor dat je de positieve en negatieve polen correct identificeert. De negatieve pool moet worden aangesloten aan de zijde het dichtst bij de USB-poort, terwijl de positieve pool wordt aangesloten aan de zijde het verst van de USB-poort.

Weergave van de laadstatus

We hebben een rood indicatielampje geïmplementeerd om de batterijlaadstatus weer te geven, zodat gebruikers op de hoogte blijven van de huidige status tijdens het opladen.
  • Zonder aangesloten batterij: Het rode lampje gaat aan wanneer de Type-C-kabel wordt aangesloten en gaat automatisch uit na 30 seconden.
  • Opladen met een aangesloten batterij: Het rode lampje knippert terwijl de Type-C-kabel de batterij oplaadt.
  • Wanneer de batterij volledig is opgeladen: Het rode lampje gaat uit, wat aangeeft dat het opladen is voltooid.

Andere opmerkingen

  • Gebruik gekwalificeerde batterijen: Gebruik alleen batterijen die aan de gespecificeerde eisen voldoen.
  • Datakabelverbinding: De XIAO kan via een datakabel op je computer worden aangesloten terwijl hij op batterijvoeding werkt. Wees gerust, hij heeft een ingebouwde circuitbeschermingschip voor veiligheid.
  • LED-indicator: Wanneer gevoed door een batterij, zal de XIAO MG24 geen LED-lampjes tonen (tenzij je dit hebt geprogrammeerd). Beoordeel de werking van de XIAO MG24 niet op basis van de LED-status; vertrouw op je programma voor een juiste evaluatie.
  • Batterijniveau bewaken: Helaas kunnen we momenteel geen manier bieden om het resterende batterijniveau via software te controleren (vanwege het ontbreken van beschikbare chip-pinnen). Je moet de batterij regelmatig opladen of een multimeter gebruiken om het batterijniveau te controleren.

Batterijspanningsmeting

Softwarecode:

 

/*
  AnalogReadSerial

  Leest een analoge ingang op pin 0 en toont het resultaat in de Seriële Monitor.
  Grafische weergave is beschikbaar via Serial Plotter (menu Hulpmiddelen > Serial Plotter).
  Sluit de middelste pin van een potentiometer aan op pin A0, en de buitenste pinnen op +5V en aarde.

  Deze voorbeeldcode is publiek domein.

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

// de setup-routine wordt eenmaal uitgevoerd wanneer je op reset drukt:
void setup() {
  Serial.begin(115200);
  pinMode(PD3, OUTPUT);
  digitalWrite(PD3, HIGH);
}

void loop() {
  int voltageValue = analogRead(PD4);
  float spanning = voltageValue * (5.0 / 4095.0);
  
  Serial.print("Spanning: ");
  Serial.print(spanning, 2);
  Serial.println(" V");
  delay(1000);  // vertraging tussen metingen voor stabiliteit
}

Resultaat weergeven

Diepe slaap en slaapvoorbeeld

Demo1 Slaapstand en ontwaken

 


/*
   ArduinoLowPower getimed slaapvoorbeeld

   Het voorbeeld toont het basisgebruik van de Arduino Low Power-bibliotheek door het apparaat voor een bepaalde tijd in slaap te zetten.
   Het apparaat gaat 2000 ms in slaapstand. Tijdens de slaap wordt de CPU gestopt, maar het RAM behoudt zijn inhoud.

   Dit voorbeeld is compatibel met alle Silicon Labs Arduino-borden.

   Auteur: Tamas Jozsi (Silicon Labs)
 */

#include "ArduinoLowPower.h"

void setup()
{
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, LED_BUILTIN_INACTIVE);
  Serial.println("Slapen met getimede wekker");
}

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

  Serial.printf("Gaat slapen om %lu\n", millis());
  LowPower.sleep(2000);
  Serial.printf("Ontwaakt om %lu\n", millis());
}

Demo2 Diepe Slaapstand en ontwaken

 

/*
   ArduinoLowPower diepe slaap voorbeeld met externe of getimede wekken

   Het voorbeeld toont het basisgebruik van de Arduino Low Power-bibliotheek door het apparaat in diepe slaap te zetten.
   Het apparaat blijft in diepe slaap totdat de slaapklok verloopt.
   Tijdens diepe slaap wordt het hele apparaat uitgeschakeld behalve een minimale set van randapparatuur (zoals het Back-up RAM en RTC).
   Dit betekent dat de CPU wordt gestopt en de inhoud van het RAM verloren gaat - het apparaat zal na het ontwaken vanaf het begin van de sketch starten.

   Dit voorbeeld is compatibel met alle Silicon Labs Arduino-borden.

   Auteur: Tamas Jozsi (Silicon Labs)
 */

#include "ArduinoLowPower.h"

void setup()
{
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, LED_BUILTIN_INACTIVE);
  Serial.println("Diepe slaap getimede wekken");
}

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

  Serial.printf("Gaat 10s in diepe slaap om %lu\n", millis());
  LowPower.deepSleep(10000);
}

 

Demo3 Diepe slaapmodus met flash en wekken

Om diepe slaap voor de flash in te schakelen, moet je het 0xb9-register activeren.
 

/*
   ArduinoLowPower diepe slaap voorbeeld met externe of getimede wekken

   Het voorbeeld toont het basisgebruik van de Arduino Low Power-bibliotheek door het apparaat in diepe slaap te zetten.
   Het apparaat blijft in diepe slaap totdat de slaapklok verloopt.
   Tijdens diepe slaap wordt het hele apparaat uitgeschakeld behalve een minimale set van randapparatuur (zoals het Back-up RAM en RTC).
   Dit betekent dat de CPU wordt gestopt en de inhoud van het RAM verloren gaat - het apparaat zal na het ontwaken vanaf het begin van de sketch starten.

   Dit voorbeeld is compatibel met alle Silicon Labs Arduino-borden.

   Auteur: 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 timed wakeup");
  writeEnable();
  digitalWrite(CS_PIN, LOW);
  sendSPI(0xB9);
  digitalWrite(CS_PIN, HIGH);
}

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

  //Serial.printf("Gaat 10s in deep sleep om %lu\n", millis());
  LowPower.deepSleep(600000);
}

Bescherming van XIAO MG24 tegen bricking in Deep Sleep

De XIAO MG24 van Seeed Studio is een krachtig microcontrollerbord, maar gebruikers hebben problemen ondervonden waarbij het apparaat niet meer reageert ("gebricked") na het ingaan van Deep Sleep-modus. Deze gids behandelt de oorzaak, beschrijft een herstelproces en geeft tips om te voorkomen dat je XIAO MG24 gebricked raakt.
Wanneer de XIAO MG24 in Deep Sleep-modus (EM4) gaat om stroom te besparen, kan het zijn dat hij niet goed wakker wordt, waardoor het uploaden van nieuwe sketches wordt geblokkeerd. In tegenstelling tot andere XIAO-borden heeft de MG24 geen BOOT-knop of een duidelijk gedocumenteerde methode om in de bootmodus te komen, wat het herstel complexer maakt.
Voor gedetailleerde herstelstappen, lees hieronder verder.

1.Gebruik de Escape Pin (PC0)

De XIAO MG24 heeft een ingebouwd ontsnappingsmechanisme om bricking te voorkomen. Als PC0 tijdens een reset op LOW wordt getrokken, gaat het apparaat in een oneindige lus, waardoor je een nieuwe sketch kunt uploaden.
  • Verbinding: Verbind PC0 met GND voordat je het apparaat reset.
  • Uploaden: Upload je sketch na het resetten terwijl het apparaat in de lus zit.

2.Pas je sketch aan

Voeg de volgende code toe aan je sketch om een gebruikersschakelaar te detecteren. Als de schakelaar wordt ingedrukt, gaat het apparaat in een oneindige lus, zodat je een nieuwe sketch kunt uploaden terwijl het apparaat blijft draaien:
 

#define USER_SW  PC3   // Voorbeeldpin voor gebruikersschakelaar

void setup() {
  // Andere setupcode...

  pinMode(USER_SW, INPUT_PULLUP);
  if (digitalRead(USER_SW) == LOW) {
    Serial.println("Inschakelen om nieuwe sketch te uploaden");
    while (true) {
      digitalWrite(LED_BUILTIN, LOW);
      delay(50);
      digitalWrite(LED_BUILTIN, HIGH);
      delay(50);
    }
  }
}

3.Vermijd onnodige flash-slaapstand

Zorg ervoor dat je sketch het flashgeheugen niet in de slaapstand (Deep Power Down) zet, tenzij dit absoluut noodzakelijk is. Dit kan problemen voorkomen bij het uploaden van nieuwe sketches. Het actief houden van het flashgeheugen zorgt voor een soepelere upload en voorkomt mogelijke beschadiging van het apparaat.

Oplossingen voor seriële poorttoegang en herstel

Windows-oplossingen

1.Download het meegeleverde ZIP-bestand.

2.Verbind de XIAO MG24

Gebruik een USB-kabel om de niet-reagerende XIAO MG24 met je computer te verbinden.

3.Voer het script uit

Open de uitgepakte map en zoek het flash_erase.bat script.
Dubbelklik op het script om het uit te voeren. Dit wist het flashgeheugen en reset het apparaat.

4.Verifieer Herstel

Nadat het script is voltooid, zou de XIAO MG24 hersteld en klaar voor gebruik moeten zijn.

macOS-oplossingen

1.Download het meegeleverde ZIP-bestand.

2.Verbind de XIAO MG24

Gebruik een USB-kabel om de niet-reagerende XIAO MG24 met je computer te verbinden.

3.Toestaan Aansluiting Toegang

  • Open Systeemvoorkeuren: Ga naar Systeemvoorkeuren op je Mac.
  • Navigeer naar Beveiliging en privacy: Klik op Beveiliging en privacy, ga dan naar de Privacy tabblad.
  • Controleer Toegankelijkheid: Onder de Toegankelijkheid sectie, zorg ervoor dat Terminal toestemming heeft om je computer te bedienen.
  • Voeg Terminal toe indien nodig: Als Terminal niet wordt weergegeven, klik dan op de + knop om deze handmatig toe te voegen. Selecteer Terminal uit je map Programma's.

4.Voer het script uit

  • Open Terminal.
  • Navigeer naar de uitgepakte map met behulp van de cd commando. Bijvoorbeeld:
  • Voer het script uit met ./xiao_mg24_erase.shDit zal het flashgeheugen wissen en het apparaat resetten.

5. Controleer herstel

Nadat het script is voltooid, zou de XIAO MG24 hersteld en klaar voor gebruik moeten zijn.

Opmerking

Als macOS OpenOCD niet herkent, controleer dan of OpenOCD is geïnstalleerd en of het script het juiste pad gebruikt. Bovendien zijn de meegeleverde scripts specifiek afgestemd op de XIAO MG24 en mogen ze niet worden gebruikt met andere XIAO-modellen.

Andere informatie

Veelgestelde vragen

Is er gedetailleerde informatie of parameters beschikbaar van Seeed Studio XIAO MG24 Sense of Standard?

 

Zijbalk

Laatste bericht

Dit gedeelte bevat momenteel geen inhoud. Voeg inhoud toe aan dit gedeelte met behulp van de zijbalk.

Meld je aan voor onze nieuwsbrief

Ontvang de laatste informatie over onze producten en speciale aanbiedingen.