Seeed Studio XIAO MG24 是一款基于 Silicon Labs MG24 的迷你开发板。XIAO MG24 基于 ARM Cortex-M33 内核,32 位 RISC 架构,最高时钟速度为 78MHz,支持 DSP 指令和 FPU 浮点运算,具备强大的计算能力,并内置 AI/ML 硬件加速器 MVP,能够高效处理 AI/机器学习算法。此外,它具有出色的射频性能,传输功率高达 +19.5 dBm,接收灵敏度低至 -105.4 dBm。支持多种物联网和无线传输协议,如 Matter、Thread、Zigbee、Bluetooth LE 5.3、Bluetooth mesh 等。
项目 | Seeed Studio XIAO MG24 | Seeed Studio XIAO MG24 Sense |
---|---|---|
处理器 | Silicon Labs EFR32MG24 ARM Cortex-M33 @ 78MHz | |
无线 | 完整的 2.4GHz Wi-Fi 子系统 BLE: Bluetooth 5.3, Bluetooth mesh | |
内置传感器 | - | 6 轴 IMU(LSM6DS3TR-C) 模拟麦克风(MSM381ACT001) |
内存 | 256kB RAM & 1538KB + 4MB Flash | 256kB RAM & 1538KB + 4MB Flash |
接口 | 2x UART, 1x IIC, 2x SPI, 18x 模拟, 18x 数字, 全 PWM, 1x 用户 LED, 1x 充电 LED 1x 重置按钮 | 2x UART, 1x IIC, 2x SPI, 18x 模拟, 18x 数字, 全 PWM, 1x 用户 LED, 1x 充电 LED 1x 重置按钮 |
尺寸 | 21 x 17.8mm | 21 x 17.8mm |
电源 | 输入电压 (Type-C): 5V@14mA 输入电压 (BAT): 3.7V@7mA | |
电池充电电流: 200mA | 电池充电电流: 200mA | |
低功耗模式 | 正常模式: 3.7V/6.71 mA 睡眠模式: 3.7V/1.91mA 深度睡眠模式: 3.7V/1.95μA | 正常模式: 3.7V/6.71 mA 睡眠模式: 3.7V/1.91mA 深度睡眠模式: 3.7V/1.95μA |
工作温度 | -20°C ~ 70°C |
XIAO MG24 Sense 指示图 |
---|
XIAO MG24 指示图 |
XIAO MG24/ XIAO MG24(Sense) 引脚列表、 |
两款开发板的区别在于 MG24 Sense 配备了一个麦克风传感器和一个六轴加速度传感器,而 MG24 没有这些传感器。
为了让您更快地开始使用 XIAO MG24,请阅读以下硬件和软件准备内容,以准备好 XIAO。
我们为每个新的 XIAO MG24 和 XIAO MG24 Sense 预编程了一个简单的出厂程序。
常规版本中预设的出厂程序是闪烁灯。当您为 XIAO 通电时,橙色的用户指示灯将亮起。
常规版本中预设的出厂程序是“您喊得越大声,灯就会越亮”。
您需要准备以下物品:
有些 USB 数据线只能供电,无法传输数据。如果您没有 USB 数据线,或者不知道您的 USB 数据线是否可以传输数据,可以查看 Seeed USB Type-C 支持 USB 3.1。
推荐的 XIAO MG24 编程工具是 Arduino IDE,因此您需要完成 Arduino 的安装作为软件准备的一部分。
如果您是第一次使用 Arduino,我们强烈建议您参考 Arduino 入门指南。
OK
。按照以下步骤安装 XIAO MG24 开发板:
https://siliconlabs.github.io/arduino/package_arduinosilabs_index.json
如果输入后找不到,请重新打开 Arduino IDE。
XIAO_MG24
变体。现在开始编程吧 ✨。
步骤 1. 启动 Arduino 应用程序。
步骤 2. 导航到 File > Examples > 01.Basics > Blink,打开程序。
一旦程序成功上传,您将看到以下输出消息,并可以观察到 XIAO MG24 右侧的橙色 LED 灯在闪烁。
XIAO MG24 内置了一个电源管理芯片,可以通过电池独立供电,或者通过 XIAO MG24 的 USB 接口为电池充电。
如果您想为 XIAO 连接电池,我们建议您购买符合规格的可充电 3.7V 锂电池。在焊接电池时,请注意区分正负极。电源的负极应靠近 USB 接口的一侧,电源的正极应远离 USB 接口的一侧。
焊接时请注意不要短路正负极,以免烧毁电池和设备。
电池使用说明:
同时,我们为电池充电设计了一个红色指示灯,通过指示灯显示来告知用户当前电池的充电状态。
软件代码
/*
AnalogReadSerial
读取引脚 0 上的模拟输入,并将结果打印到串行监视器。
可以使用串行绘图器(工具 > 串行绘图器菜单)查看图形表示。
将电位器的中心引脚连接到引脚 A0,外侧引脚连接到 +5V 和地。
此示例代码属于公共领域。
https://www.arduino.cc/en/Tutorial/BuiltInExamples/AnalogReadSerial
*/
// setup 函数在按下复位时运行一次:
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("电压: ");
Serial.print(voltage, 2);
Serial.println(" V");
delay(1000); // 读取之间的延迟以保持稳定
}
显示结果
/*
ArduinoLowPower 定时睡眠示例
此示例展示了 Arduino Low Power 库的基本用法,通过将设备置于睡眠状态一段时间。
设备将进入睡眠模式 2000 毫秒。在睡眠期间,CPU 停止运行,但 RAM 保留其内容。
此示例兼容所有 Silicon Labs Arduino 板。
作者: Tamas Jozsi (Silicon Labs)
*/
#include "ArduinoLowPower.h"
void setup()
{
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LED_BUILTIN_INACTIVE);
Serial.println("定时唤醒的睡眠模式");
}
void loop()
{
digitalWrite(LED_BUILTIN, LED_BUILTIN_ACTIVE);
delay(500);
digitalWrite(LED_BUILTIN, LED_BUILTIN_INACTIVE);
delay(500);
Serial.printf("进入睡眠模式,当前时间: %lu\n", millis());
LowPower.sleep(2000);
Serial.printf("唤醒,当前时间: %lu\n", millis());
}
/*
ArduinoLowPower 深度睡眠示例,带外部或定时唤醒
此示例展示了 Arduino Low Power 库的基本用法,通过将设备置于深度睡眠状态。
设备将保持深度睡眠,直到睡眠计时器到期。
在深度睡眠期间,除了少量外设(如备份 RAM 和 RTC),整个设备都将断电。
这意味着 CPU 停止运行,RAM 内容丢失——设备唤醒后将从草稿的开头重新开始。
此示例兼容所有 Silicon Labs Arduino 板。
作者: Tamas Jozsi (Silicon Labs)
*/
#include "ArduinoLowPower.h"
void setup()
{
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LED_BUILTIN_INACTIVE);
Serial.println("定时唤醒的深度睡眠模式");
}
void loop()
{
digitalWrite(LED_BUILTIN, LED_BUILTIN_ACTIVE);
delay(500);
digitalWrite(LED_BUILTIN, LED_BUILTIN_INACTIVE);
delay(500);
Serial.printf("进入深度睡眠 10 秒,当前时间: %lu\n", millis());
LowPower.deepSleep(10000);
}
如果您希望将闪存设置为深度睡眠,需要启用 0xb9 寄存器。
/*
ArduinoLowPower 深度睡眠示例,带外部或定时唤醒
此示例展示了 Arduino Low Power 库的基本用法,通过将设备置于深度睡眠状态。
设备将保持深度睡眠,直到睡眠计时器到期。
在深度睡眠期间,除了少量外设(如备份 RAM 和 RTC),整个设备都将断电。
这意味着 CPU 停止运行,RAM 内容丢失——设备唤醒后将从草稿的开头重新开始。
此示例兼容所有 Silicon Labs Arduino 板。
作者: 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("定时唤醒的深度睡眠模式");
writeEnable();
digitalWrite(CS_PIN, LOW);
sendSPI(0xB9);
digitalWrite(CS_PIN, HIGH);
}
void loop()
{
delay(12000);
digitalWrite(PA7, HIGH);
delay(500);
//Serial.printf("进入深度睡眠 10 分钟,当前时间: %lu\n", millis());
LowPower.deepSleep(600000);
}
XIAO MG24 是来自 Seeed Studio 的一款强大的微控制器板,但用户报告在进入深度睡眠模式后设备可能变得无响应(“变砖”)。本教程解释了问题的原因,提供了详细的恢复方法,并提出了防止 XIAO MG24 变砖的措施。
XIAO MG24 进入 深度睡眠模式 (EM4) 以节省电能,但在某些情况下,它可能无法正常唤醒,从而阻止新草图的上传。与其他 XIAO 开发板不同,MG24 没有专用的 BOOT 按钮或进入引导模式的文档化方法,这使得恢复变得具有挑战性。
为了避免在使用深度睡眠模式时使您的 XIAO MG24 变砖,请遵循以下步骤:
XIAO MG24 内置了一个 逃生机制 来防止变砖。如果在复位期间将 PC0 拉低 (LOW),设备将进入一个无限循环,从而允许您上传新的草图。
#define USER_SW PC3 // 用户开关的示例引脚
void setup() {
// 其他设置代码...
pinMode(USER_SW, INPUT_PULLUP);
if (digitalRead(USER_SW) == LOW) {
Serial.println("启用上传新草图");
while (true) {
digitalWrite(LED_BUILTIN, LOW);
delay(50);
digitalWrite(LED_BUILTIN, HIGH);
delay(50);
}
}
}
确保您的草图不会将闪存置于睡眠模式(深度掉电
),除非绝对必要。这可以防止上传新草图时出现问题。
特别感谢 Seeed Studio 社区对解决此问题的宝贵贡献。本教程中讨论的恢复方法和预防措施是基于社区成员如 msfujino 和 PJ_Glasso 的见解开发的。
有关更多详细信息和讨论,请访问原始论坛帖子:
DeepSleep bricks XIAO_MG24 - Seeed Studio Forum
XIAO MG24 是目前唯一配备串口芯片的 XIAO 型号。与其他 XIAO 型号不同,它没有 BOOT 按钮或 BOOT 恢复方法。这种设计上的疏忽可能会导致设备进入睡眠模式或遇到软件异常时无法通过串口上传程序。为了解决这个问题,我们提供了一种唤醒串口并恢复功能的方法。
连接 XIAO MG24
运行脚本
flash_erase.bat
。验证恢复
连接 XIAO MG24
允许终端访问
运行脚本
cd
命令导航到解压后的文件夹。例如:cd /path/to/extracted/folder
xiao_mg24_erase.sh
:./xiao_mg24_erase.sh
验证恢复
周一-周五(9:30-6:30)周六(9:30-5:30)
手机:13434470212
邮箱:services04@spotpear.cn
QQ:202004841