项目 | Seeed Studio XIAO nRF52840 | Seeed Studio XIAO nRF52840 Sense | Seeed Studio XIAO nRF52840 Plus | Seeed Studio XIAO nRF52840 Sense Plus |
---|---|---|---|---|
处理器 | Nordic nRF52840,ARM® Cortex®-M4 32位处理器,带有 FPU,主频 64 MHz | |||
无线连接 | Bluetooth 5.0/BLE/NFC | |||
内存 | 256 KB RAM,1MB 闪存,2MB 板载闪存 | |||
内置传感器 | 无 | 6 DOF IMU (LSM6DS3TR-C),PDM 麦克风 | 无 | 6 DOF IMU (LSM6DS3TR-C),PDM 麦克风 |
接口 | 1xI2C,1xUART,1xSPI | 1xI2C,2xUART,2xSPI,1xI2S | ||
PWM/模拟引脚 | 11/6 | 20/6 | ||
板载按钮 | 复位按钮 | |||
板载 LED | 三合一 LED/充电 LED | |||
电池充电芯片 | BQ25101 | |||
编程语言 | Arduino/MicroPython/CircuitPython |
XIAO nRF52840/XIAO nRF52840 Sense 前视图标注图 |
---|
![]() |
XIAO nRF52840/XIAO nRF52840 Sense 背视图标注图 |
![]() |
XIAO nRF52840/XIAO nRF52840 Sense 引脚列表 |
![]() |
Seeed Studio XIAO nRF52840 集成了许多功能于一个小型板卡中,有时可能无法发挥其最佳性能。因此,Seeed 发布了两个 Arduino 库,以便最大化每个功能的性能。因此:
Seeed nRF52 Boards
库。Seeed nRF52 mbed-enabled Boards
库。这两个库支持的引脚定义可能略有不同,Seeed 将持续更新 Wiki 以确保清晰。
如果您使用 Seeed nRF52 Boards 的板载包,串口功能可能无法编译。解决方法是在代码中添加行 #include <Adafruit_TinyUSB.h>
。您可以从以下链接下载此包:https://github.com/adafruit/Adafruit_TinyUSB_Arduino
如果您更喜欢更简单的方法,可以从一开始选择 Seeed nRF52 mbed-enabled Boards。它支持串口功能的编译,无需额外修改。
首先,我们将把 Seeed Studio XIAO nRF52840 (Sense) 连接到计算机,并从 Arduino IDE 上传一个简单的代码,以检查板卡是否正常工作。
您需要准备以下物品:
有些 USB 数据线只能供电,无法传输数据。如果您没有 USB 数据线,或者不确定您的 USB 数据线是否可以传输数据,可以查看 Seeed USB Type-C 支持 USB 3.1。
通过 USB Type-C 数据线将 Seeed Studio XIAO nRF52840 (Sense) 连接到您的电脑。
步骤 2. 启动 Arduino 应用程序
步骤 3. 将 Seeed Studio XIAO nRF52840 (Sense) 板卡包添加到 Arduino IDE
进入 File > Preferences,并在 "Additional Boards Manager URLs" 中填写以下 URL: https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json
进入 Tools > Board > Boards Manager...,在搜索框中输入关键字 "seeed nrf52",选择您需要的最新版本板卡并安装。您可以安装多个。
板卡
安装板卡包后,进入 Tools > Board 并选择您需要的板卡,继续选择 "Seeed XIAO nRF52840 Sense"。现在我们已经完成了在 Arduino IDE 中设置 Seeed Studio XIAO nRF52840 (Sense)。
端口
进入 Tools > Port 并选择已连接的 Seeed Studio XIAO nRF52840 (Sense) 的串口名称。通常是 COM3 或更高(COM1 和 COM2 通常保留给硬件串口)。已连接的 Seeed Studio XIAO nRF52840 (Sense) 的串口名称通常包含括号,显示为 Seeed Studio XIAO nRF52840 或 Seeed Studio XIAO nRF52840 Sense。
上传完成后,您将看到内置的红色 LED 以 1 秒的间隔闪烁。这表示连接成功,现在您可以使用 Seeed Studio XIAO nRF52840 (Sense) 探索更多项目!
Seeed Studio XIAO nRF52840 (Sense) 配备了一个板载三合一 LED,用户可以对其进行编程。现在您将学习如何使用 Arduino 分别控制 RGB 颜色!
首先,您需要了解,当通过代码控制此 LED 时,其行为与通常的 LED 不同。当我们给出低电平信号时,LED 会亮起;当我们给出高电平信号时,LED 会熄灭。这是因为此 LED 由共阳极控制,仅在低电平信号下点亮。
以下是一个示例代码:
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
}
在这里,即使使用了 HIGH,LED 也会熄灭。您需要将 HIGH 替换为 LOW 才能点亮 LED。
参考以下 LED 的引脚映射,并在代码中使用它们:
Seeed Studio XIAO nRF52840 的功耗较低,以下是验证方法。强烈建议使用 Seeed nRF52 Boards
库。
如果您使用的是 Seeed Studio XIAO nRF52840 的出厂固件,或者从未更改过 Seeed Studio XIAO nRF52840 的固件,可以跳过此步骤。
Seeed nRF52 Boards
库。// MIT 许可证 (MIT)
// 版权所有 (c) 2019 Ha Thach for Adafruit Industries
#include "SdFat.h"
#include "Adafruit_SPIFlash.h"
// 取消注释以使用自定义 SPI 和 SS,例如 FRAM 扩展板
// #define CUSTOM_CS A5
// #define CUSTOM_SPI SPI
#if defined(CUSTOM_CS) && defined(CUSTOM_SPI)
Adafruit_FlashTransport_SPI flashTransport(CUSTOM_CS, CUSTOM_SPI);
#elif defined(ARDUINO_ARCH_ESP32)
// ESP32 使用相同的闪存设备存储代码。
// 因此无需指定 SPI 和 SS
Adafruit_FlashTransport_ESP32 flashTransport;
#else
// 板载外部闪存 (QSPI 或 SPI) 宏应已在您的板卡变体中定义(如果支持)
// - EXTERNAL_FLASH_USE_QSPI
// - EXTERNAL_FLASH_USE_CS/EXTERNAL_FLASH_USE_SPI
#if defined(EXTERNAL_FLASH_USE_QSPI)
Adafruit_FlashTransport_QSPI flashTransport;
#elif defined(EXTERNAL_FLASH_USE_SPI)
Adafruit_FlashTransport_SPI flashTransport(EXTERNAL_FLASH_USE_CS, EXTERNAL_FLASH_USE_SPI);
#else
#error 您的板卡变体中未定义 QSPI/SPI 闪存!
#endif
#endif
Adafruit_SPIFlash flash(&flashTransport);
/* 如果您想使用特定的闪存设备,例如用于自定义板卡,请首先在 Adafruit_SPIFlash\src\flash_devices.h 中查找它。
* 如果它不在其中,您需要创建自己的定义,例如以下 W25Q80DLX_EXAMPLE 示例。
* 这些定义需要根据您想使用的闪存设备的数据表进行编辑。
* 如果您不确定制造商 ID、内存类型和容量值应该是什么,请尝试运行草图并查看串行输出。
* 闪存设备会将这些值报告为单个十六进制值(JDEC ID)。
* 例如,列表中的第一个设备 - W25Q80DLX - 将其 JDEC ID 报告为 0xef4014,由以下三个值组成:
* manufacturer_id = 0xef
* memory_type = 0x40
* capacity = 0x14
* 使用正确定义的宏,您可以创建设备定义数组,如下所示。
*/
// 用户定义闪存设备示例:
//#define W25Q80DLX_EXAMPLE \
// { \
// .total_size = (1 << 20), /* 1 MiB */ \
// .start_up_time_us = 5000, .manufacturer_id = 0xef, \
// .memory_type = 0x40, .capacity = 0x14, .max_clock_speed_mhz = 80, \
// .quad_enable_bit_mask = 0x02, .has_sector_protection = false, \
// .supports_fast_read = true, .supports_qspi = true, \
// .supports_qspi_writes = false, .write_status_register_split = false, \
// .single_status_byte = false, .is_fram = false, \
// }
/*
* 创建数据结构数组并填充我们上面定义的设置。
* 我们使用两个设备,但如果需要可以添加更多。
*/
//static const SPIFlash_Device_t my_flash_devices[] = {
// W25Q80DLX_EXAMPLE,
//};
/*
* 指定我们刚刚创建的数组中列出的不同设备数量。如果向数组中添加更多设备,请更新此值以匹配。
*/
//const int flashDevices = 1;
#include <bluefruit.h>
void setup()
{
flash.begin();
Bluefruit.begin();
if(flash.deepPowerDown() == false){
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
while(1)
{
yield();
}
}
flash.end();
sd_power_system_off();
}
void loop()
{
// 无需操作
}
在此,我们特别感谢作者提供的代码 -> daCoder
如果您想了解此示例的更多详细信息,请点击 这里
电池充电电流可选择为 50mA 或 100mA,您可以通过将 Pin13 设置为高或低来切换到 50mA 或 100mA。低电流充电电流在输入模式下设置为高电平,高电流充电电流在输出模式下设置为低电平。
低充电电流
void setup(){
pinMode (P0_13, OUTPUT);
}
void loop() {
digitalWrite(P0_13, HIGH);
}
高充电电流
void setup(){
pinMode (P0_13, OUTPUT);
}
void loop() {
digitalWrite(P0_13, LOW);
}
所需硬件
所需软件
需要从网站下载 Segger 软件。
您可以首先尝试通过单击“复位按钮”一次来 复位 板。如果这不起作用,请快速单击两次以进入 bootloader 模式。如果仍然不起作用,请断开板与 PC 的连接,然后重新连接板。
您可以首先尝试通过单击“复位按钮”一次来 复位 板。如果这不起作用,请快速单击两次以进入 bootloader 模式。
当 P0.14 (D14) 在高电平 3.3V 时关闭 ADC 功能时,P0.31 的输入电压限制为 3.6V,存在烧毁 P0.31 引脚的风险。
针对该问题,目前建议用户在电池充电时不要关闭 P0.14 (D14) 的 ADC 功能或将 P0.14 (D14) 设置为高电平。
P0.17
引脚用于控制绿色指示灯的行为,指示充电状态:
当处于低电平时,RED_CHG
LED 会亮起。
更多详情请查看 PMIC 数据手册:BQ25100 和 XIAO nRF52840 数据手册。
Seeed Studio XIAO nRF52840 Sense
[PDF] nRF52840 数据手册