Nogle anvendelsesmetoder for Seeed Studio XIAO MG24 Sense og Standard

Hvad er de?

Seeed Studio XIAO MG24 og XIAO MG24 Sense er ultra-lavstrøms trådløse udviklingskort baseret på Silicon Labs' EFR32MG24 SoC, med en højtydende 78MHz ARM Cortex®-M33 kerne. Begge kort er Matter® native over Thread® og Bluetooth® Low Energy 5.3, understøttet af Arduino® Core, og inkluderer 4MB Flash, 19 GPIOs, LED og en opladningskreds. De har ekstremt lavt strømforbrug og ultra-lavstrøms tilstande, hvilket gør dem ideelle til IoT applikationer, især batteridrevne projekter der bruger Matter® protokoller. Derudover inkluderer XIAO MG24 Sense en indbygget analog mikrofon og seks-aksede IMU sensorer, hvilket gør det til et fremragende valg til TinyML applikationer som holdningsdetektion. For flere detaljer, klik venligst her.

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

Seeed Studio XIAO MG24 Standard

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

Seeed Studio XIAO MG24 Sense

Se produkt

Kom godt i gang

simpelt fabriksprogram

XIAO MG24

Standard-versionen leveres med et fabriksindstillet program kaldet Blink Light. Når du tænder for XIAO, vil den orange brugerindikator lyse.

XIAO MG24 Sense

Det fabriksindstillede program i Sense-versionen er designet, så jo højere du råber, desto stærkere vil lyset skinne.

Hardwareforberedelse

  • 1 x Seeed Studio XIAO MG24
  • 1 x Computer
  • 1 x USB Type-C kabel
bemærk: Nogle USB-kabler kan kun levere strøm og kan ikke overføre data.

Softwareforberedelse

For XIAO MG24 er det anbefalede programmeringsværktøj Arduino IDE, så det første skridt i softwareforberedelsen er at fuldføre Arduino-installationen.
  • Trin 1. Download og installer den stabile version af Arduino IDE i henhold til dit operativsystem.
  • Trin 2. Start Arduino-applikationen.
  • Trin 3. Tilføj XIAO MG24 on-board-pakken til Arduino IDE og klik OK.
  • Trin 4. Luk Arduino IDE og åbn det igen.

Tilføj XIAO MG24 Board

Tilføj URL'en nedenfor til indstillingerne i din Arduino IDE.

Download XIAO MG24 board-pakken.


Vælg XIAO_MG24-varianten.


Begynd dit første Blink-program

  • Trin 1. Start Arduino-applikationen.
  • Trin 2. Naviger til Fil > Eksempler > 01.Basics > Blink, og åbn programmet.
  • Trin 3. Vælg XIAO MG24 board-modellen og vælg det passende portnummer for at uploade programmet.

Efter programmet er uploadet med succes, vil du se outputbeskeden nedenfor og bemærke, at den orange LED på højre side af XIAO MG24 blinker.

Batteribrug

Batteriforbindelse og -styring

XIAO MG24 har en indbygget strømstyringschip, der gør det muligt at drive den uafhængigt med et batteri eller oplade batteriet via USB-porten.
Hvis du planlægger at tilslutte et batteri til XIAO, anbefaler vi at bruge et certificeret 3,7V genopladeligt lithiumbatteri. Når du lodder batteriet, skal du sikre dig, at du korrekt identificerer de positive og negative terminaler. Den negative terminal skal forbindes til siden tættest på USB-porten, mens den positive terminal forbindes til siden længst fra USB-porten.

Visning af opladningsstatus

Vi har implementeret et rødt indikatorlys til at vise batteriets opladningsstatus, så brugerne holdes informerede om den aktuelle tilstand under opladning.
  • Uden batteri tilsluttet: Det røde lys tændes, når Type-C kablet tilsluttes, og slukker automatisk efter 30 sekunder.
  • Opladning med batteri tilsluttet: Det røde lys blinker, mens Type-C kablet oplader batteriet.
  • Når batteriet er fuldt opladet: Det røde lys slukker og signalerer, at opladningen er fuldført.

Andre bemærkninger

  • Brug kvalificerede batterier: Brug kun batterier, der opfylder de specificerede krav.
  • Datakabelforbindelse: XIAO kan forbindes til din computer via et datakabel, mens den kører på batteristrøm. Vær tryg ved, at den har en indbygget kredsbeskyttelseschip for sikkerhed.
  • LED-indikator: Når den drives af et batteri, vil XIAO MG24 ikke vise nogen LED-lys (medmindre du har programmeret det til det). Vurder venligst ikke, om XIAO MG24 fungerer baseret på LED-status; stol på dit program for korrekt evaluering.
  • Batteriniveauovervågning: Desværre kan vi i øjeblikket ikke tilbyde en måde at kontrollere det resterende batteriniveau via software (på grund af mangel på tilgængelige chip-pins). Du bør oplade batteriet regelmæssigt eller bruge et multimeter til at overvåge batteriniveauet.

Batterispændingsmåling

Softwarekode:

 

/*
  AnalogReadSerial

  Læser en analog indgang på pin 0, udskriver resultatet til Serial Monitor.
  Grafisk fremstilling er tilgængelig via Serial Plotter (Værktøjer > Serial Plotter-menu).
  Tilslut midterpinden på en potentiometer til pin A0, og de yderste pinde til +5V og jord.

  Dette eksempelprogram er offentligt tilgængeligt.

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

// opsætningsrutinen kører én gang, når du trykker på reset:
void setup() {
  Serial.begin(115200);
  pinMode(PD3, OUTPUT);
  digitalWrite(PD3, HIGH);
}

void loop() {
  int voltageValue = analogRead(PD4);
  float spænding = voltageValue * (5.0 / 4095.0);
  
  Serial.print("Spænding: ");
  Serial.print(spænding, 2);
  Serial.println(" V");
  delay(1000);  // forsinkelse mellem aflæsninger for stabilitet
}

Vis resultat

Deep Sleep og dvale-eksempel

Demo1 Dvaletilstand og opvågning

 


/*
   ArduinoLowPower tidsbestemt dvale-eksempel

   Eksemplet viser grundlæggende brug af Arduino Low Power-biblioteket ved at sætte enheden i dvale i en periode.
   Enheden går i dvaletilstand i 2000 ms. Under dvalen stoppes CPU'en, men RAM bevarer sit indhold.

   Dette eksempel er kompatibelt med alle Silicon Labs Arduino boards.

   Forfatter: Tamas Jozsi (Silicon Labs)
 */

#include "ArduinoLowPower.h"

void setup()
{
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, LED_BUILTIN_INACTIVE);
  Serial.println("Dvale med tidsbestemt opvågning");
}

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

  Serial.printf("Går i dvale kl. %lu\n", millis());
  LowPower.sleep(2000);
  Serial.printf("Vågnede op kl. %lu\n", millis());
}

Demo2 Deep Sleep-tilstand og opvågning

 

/*
   ArduinoLowPower dyb søvn-eksempel med ekstern eller tidsbestemt opvågning

   Eksemplet viser grundlæggende brug af Arduino Low Power-biblioteket ved at sætte enheden i dyb søvn.
   Enheden forbliver i dyb søvn, indtil søvntimeren udløber.
   Under dyb søvn er hele enheden slukket undtagen et minimalt sæt perifere enheder (som Back-up RAM og RTC).
   Det betyder, at CPU'en stoppes, og RAM-indholdet går tabt - enheden starter fra begyndelsen af skitsen efter opvågning.

   Dette eksempel er kompatibelt med alle Silicon Labs Arduino boards.

   Forfatter: 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 i dyb søvn i 10s ved %lu\n", millis());
  LowPower.deepSleep(10000);
}

 

Demo3 Dyb søvntilstand med flash og opvågning

For at aktivere dyb søvn for flash skal du aktivere 0xb9-registeret.
 

/*
   ArduinoLowPower dyb søvn-eksempel med ekstern eller tidsbestemt opvågning

   Eksemplet viser grundlæggende brug af Arduino Low Power-biblioteket ved at sætte enheden i dyb søvn.
   Enheden forbliver i dyb søvn, indtil søvntimeren udløber.
   Under dyb søvn er hele enheden slukket undtagen et minimalt sæt perifere enheder (som Back-up RAM og RTC).
   Det betyder, at CPU'en stoppes, og RAM-indholdet går tabt - enheden starter fra begyndelsen af skitsen efter opvågning.

   Dette eksempel er kompatibelt med alle Silicon Labs Arduino boards.

   Forfatter: 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("Going to deep sleep for 10s at %lu\n", millis());
  LowPower.deepSleep(600000);
}

Beskyt XIAO MG24 mod at blive bricked, når den er i Deep Sleep

XIAO MG24 fra Seeed Studio er et kraftfuldt mikrokontrollerboard, men brugere har oplevet problemer, hvor enheden bliver uresponsiv ("bricked") efter at være gået i Deep Sleep-tilstand. Denne vejledning adresserer den grundlæggende årsag, beskriver en genopretningsproces og giver tips til at forhindre, at din XIAO MG24 bliver bricked.
Når XIAO MG24 går i Deep Sleep-tilstand (EM4) for at spare strøm, kan den fejle i at vågne korrekt, hvilket blokerer for upload af nye sketches. I modsætning til andre XIAO boards mangler MG24 en BOOT-knap eller en klart dokumenteret metode til at gå i boot-tilstand, hvilket gør genopretning mere kompliceret.
For detaljerede genoprettelsestrin, fortsæt med at læse nedenfor.

1.Brug Escape Pin (PC0)

XIAO MG24 har en indbygget escape-mekanisme for at forhindre 'bricking'. Hvis PC0 trækkes LOW under en nulstilling, går enheden i en uendelig løkke, så du kan uploade et nyt sketch.
  • Forbindelse: Forbind PC0 til GND før nulstilling af enheden.
  • Upload: Efter nulstilling, upload dit sketch mens enheden er i løkken.

2.Ændr dit sketch

Tilføj følgende kode til dit sketch for at registrere en brugerkontakt. Hvis kontakten trykkes, går enheden i en uendelig løkke, så du kan uploade et nyt sketch, mens enheden kører i løkken:
 

#define USER_SW  PC3   // Eksempel på pin til brugerkontakt

void setup() {
  // Anden opsætningskode...

  pinMode(USER_SW, INPUT_PULLUP);
  if (digitalRead(USER_SW) == LOW) {
    Serial.println("Aktivér for at uploade nyt sketch");
    while (true) {
      digitalWrite(LED_BUILTIN, LOW);
      delay(50);
      digitalWrite(LED_BUILTIN, HIGH);
      delay(50);
    }
  }
}

3.Undgå unødvendig flash-dvale

Sørg for, at dit sketch ikke sætter flashhukommelsen i dvaletilstand (Deep Power Down), medmindre det er absolut nødvendigt. Det kan forhindre problemer ved upload af nye sketches. At holde flashhukommelsen aktiv sikrer en glattere uploadproces og undgår potentielt at gøre enheden ubrugelig.

Løsninger til seriel portadgang og gendannelse

Windows-løsninger

1.Download den medfølgende ZIP-fil.

2.Forbind XIAO MG24

Brug et USB-kabel til at forbinde den uresponsiv XIAO MG24 til din computer.

3.Kør scriptet

Åbn den udpakkede mappe og find flash_erase.bat script.
Dobbeltklik på scriptet for at køre det. Dette vil slette flashhukommelsen og nulstille enheden.

4.Verificer gendannelse

Efter scriptet er færdigt, bør XIAO MG24 være gendannet og klar til brug.

macOS-løsninger

1.Download den medfølgende ZIP-fil.

2.Forbind XIAO MG24

Brug et USB-kabel til at forbinde den uresponsiv XIAO MG24 til din computer.

3.Tillad Terminal Adgang

  • Åbn Systemindstillinger: Gå til Systemindstillinger på din Mac.
  • Naviger til Sikkerhed & Privatliv: Klik på Sikkerhed & Privatliv, gå derefter til Privatliv fanen.
  • Tjek tilgængelighed: Under Tilgængelighed sektion, sørg for at Terminal har tilladelse til at styre din computer.
  • Tilføj Terminal om nødvendigt: Hvis Terminal ikke er på listen, klik på + knappen for manuelt at tilføje den. Vælg Terminal fra din Programmer-mappe.

4.Kør scriptet

  • Åbn Terminal.
  • Naviger til den udpakkede mappe ved hjælp af cd kommando. For eksempel:
  • Kør scriptet ved hjælp af ./xiao_mg24_erase.sh.Dette vil slette flashhukommelsen og nulstille enheden.

5.Verificer gendannelse

Efter scriptet er færdigt, bør XIAO MG24 være gendannet og klar til brug.

Bemærk

Hvis macOS ikke genkender OpenOCD, skal du kontrollere, at OpenOCD er installeret, og at scriptet bruger den korrekte sti. Derudover er de medfølgende scripts specielt tilpasset XIAO MG24 og bør ikke bruges med andre XIAO-modeller.

Andre oplysninger

Ofte stillede spørgsmål

Er der nogen detaljerede oplysninger eller parametre for Seeed Studio XIAO MG24 Sense eller Standard?

 

Sidebjælke

Seneste indlæg

Denne sektion indeholder i øjeblikket ikke noget indhold. Tilføj indhold til denne sektion ved hjælp af sidepanelet.

Tilmeld dig vores nyhedsbrev

Få de seneste oplysninger om vores produkter og særlige tilbud.