Introdução ao XIAO nRF54LM20A Sense

Introdução
Seeed Studio XIAO nRF54LM20A Sense é uma placa de desenvolvimento sem fio compacta e de ultrabaixo consumo, construída em torno do SoC nRF54LM20A da Nordic Semiconductor. Ela combina um processador Arm Cortex-M33 de 128 MHz, 512 KB de RAM, 2 MB de NVM integrada, conectividade sem fio multiprotocolo de 2,4 GHz, IMU onboard, microfone digital, flash externo de 8 MB, conector de antena IPEX e PMIC nPM1300 para aplicações avançadas de IoT alimentadas por bateria, vestíveis, detecção inteligente e IA de borda.
Especificações
| Nome do Produto | Seeed Studio XIAO nRF54LM20A | Seeed Studio XIAO nRF54LM20A Sense |
|---|---|---|
| Processador | Arm® Cortex®-M33 128 MHz & Coprocessador RISC-V 128 MHz | |
| RAM | 512KB | |
| Flash | 2 MB de memória não volátil (NVM) | |
| Flash Externa | 8MB de flash externa onboard | |
| PMIC / Bateria | PMIC nPM1300 para regulação de energia e carregamento de bateria | |
| Interface | 28x Pino GPIO | |
| Onboard | 1x LED de Usuário (R/G/B 3 Cores) | 1x LED de Usuário (R/G/B 3 Cores) |
| Conectividade Sem Fio | Bluetooth LE 6.0 (inclui Channel Sounding) | |
| Entrada de Energia | Type-C: 5V | |
| Modo de Baixo Consumo (3,7V@2A) | / | Light-Sleep: ~9,96µA |
| Compatibilidade de Software | Nordic nRF Connect SDK (baseado em Zephyr RTOS) | |
| Temperatura de Trabalho | -20°C a 70°C | |
| Dimensões | 21 x 17,8mm | |
Recursos
-
SoC poderoso com conectividade e segurança avançadas
Seeed Studio XIAO nRF54LM20A Sense é uma placa de desenvolvimento sem fio compacta e de ultrabaixo consumo, alimentada pelo SoC nRF54LM20A da Nordic Semiconductor. Ela possui um processador Arm Cortex-M33 de 128 MHz, 512 KB de RAM, 2 MB de NVM integrada, um coprocessador RISC-V de 128 MHz, conectividade sem fio multiprotocolo de 2,4 GHz, IMU onboard, microfone digital, flash externa de 8MB, conector de antena IPEX e PMIC Nordic nPM1300 para gerenciamento eficiente de energia. Com suporte a Bluetooth LE, Bluetooth Channel Sounding, Bluetooth Mesh, Thread, Zigbee, Matter e protocolos proprietários de 2,4 GHz de até 4 Mbps, esta placa foi criada para produtos conectados de próxima geração. Os sensores de movimento e áudio onboard a tornam ideal para vestíveis, detecção inteligente, TinyML, reconhecimento de gestos, dispositivos acionados por voz e aplicações de IoT alimentadas por bateria.
-
Eficiência de ultrabaixo consumo
Baseado no Nordic nRF54LM20A e no PMIC nPM1300, o XIAO nRF54LM20A Sense atinge uma corrente de deep sleep medida de apenas 4,76 µA sob alimentação BAT. Combinado com o PMIC nPM1300 e sua corrente BAT de 0,33 µA em Ship Mode, em operação sem fio ativa ele registra uma corrente média de 3,87 mA com uma entrada de bateria simulada de 3,7 V e potência de TX ajustada para +8 dBm, tornando a placa ideal para aplicações de detecção alimentadas por bateria de longa duração, vestíveis e dispositivos de IoT sempre ligados.
-
Experiência de desenvolvimento simplificada
Suporte completo para Nordic nRF Connect SDK e PlatformIO (Zephyr) permite fluxos de trabalho eficientes de desenvolvimento embarcado.
Visão geral de hardware
- XIAO nRF54LM20A
- XIAO nRF54LM20A Sense
Mapa de pinos
| Pino XIAO | Função | Pino do Chip | Descrição |
|---|---|---|---|
| Pinos de Energia | |||
| VBUS | VBUS | - | Entrada/Saída de Energia 5V |
| GND | GND | - | Terra |
| 3V3 | 3V3-OUT | - | Saída de Energia 3,3V |
| BAT+ | BAT+ | - | Entrada de Bateria (monitorada pelo nPM1300 via I²C) |
| BAT- | BAT- | - | Terminal Negativo da Bateria |
| SHPHLD | SHPHLD | - | Controle de Modo Ship/Hibernate do PMIC (estado de envio de ultrabaixo consumo) |
| Pinos de Sistema & Controle | |||
| RESET | RESET | - | Reset da Placa |
| SWCLK | SWCLK | nRF54LM20A SWCLK / SAMD11 SWCLK | Clock de Fio Serial (para nRF54 e SAMD11) |
| SWDIO | SWDIO | nRF54LM20A SWDIO / SAMD11 SWDIO | Dados de Fio Serial (para nRF54 e SAMD11) |
| SAMD11_RESET | RESET | RESET do SAMD11 | Reset do Coprocessador SAMD11 |
| Pinos de Usuário & LED | |||
| - | USER_BUTTON | P0.09 | Entrada do Botão de Usuário |
| - | RGB-B | P1.23 | Canal Azul do LED RGB Onboard |
| - | RGB-G | P1.24 | Canal Verde do LED RGB Onboard |
| - | RGB-R | P1.22 | Canal Vermelho do LED RGB Onboard |
| Pinos de Entrada Analógica (ADC) | |||
| A0 | AIN0 | P1.00 | Entrada Analógica 0 / GPIO |
| A1 | AIN1 | P1.31 | Entrada Analógica 1 / GPIO |
| A2 | AIN2 | P1.30 | Entrada Analógica 2 / GPIO |
| A3 | AIN3 | P1.29 | Entrada Analógica 3 / GPIO |
| A7 | AIN7 | P1.03 | Entrada Analógica 7 / GPIO |
| Pinos I2C | |||
| SDA | I2C_SDA | P1.03 | Linha de Dados I2C (IMU & Periférico) |
| SCL | I2C_SCL | P1.07 | Linha de Clock I2C (IMU & Periférico) |
| - | BAT_SDA | P1.18 | SDA I2C do Monitor de Bateria (nPM1300) |
| - | BAT_SCL | P1.17 | SCL I2C do Monitor de Bateria (nPM1300) |
| Pinos UART | |||
| TX | UART_TX | P1.08 | Transmissão UART |
| RX | UART_RX | P1.09 | Recepção UART |
| Pinos SPI | |||
| MOSI | SPI_MOSI | P1.06 | SPI Master Out Slave In |
| MISO | SPI_MISO | P1.05 | SPI Master In Slave Out |
| SCK | SPI_SCK | P1.04 | Clock Serial SPI |
| Pinos de Periféricos Onboard | |||
| - | MIC_DAT | P1.14 | Linha de Dados do Microfone |
| - | MIC_CLK | P1.13 | Linha de Clock do Microfone |
| - | IMU_SDA | P0.08 | I2C SDA da IMU (IMU Onboard) |
| - | IMU_SCL | P0.07 | I2C SCL da IMU (IMU Onboard) |
| - | IMU_CS | P3.12 | Chip Select da IMU |
| - | IMU_INT1 | P0.06 | Interrupção 1 da IMU |
| - | NFC | P1.02 / P1.01 | Pinos de Antena NFC |
| - | GRTC | P0.04 / P0.05 | Pinos RTC de Uso Geral |
Introdução ao uso com PlatformIO
Nesta seção, vamos guiá-lo para começar rapidamente com o XIAO nRF54LM20A por meio do efeito de piscar em várias cores de um LED RGB. Conclua as preparações de hardware e software abaixo para configurar seu XIAO para o desenvolvimento subsequente.
Preparação de hardware
Você precisa preparar o seguinte:
- 1 x Seeed Studio XIAO nRF54LM20A Sense
- 1 x Computador
- 1 x Cabo USB Tipo-C
| Seeed Studio XIAO nRF54LM20A Sense |
|---|
![]() |
Baixar o VS Code
Baixe de acordo com o sistema que você está usando o VS Code

Instalar a extensão PlatformIO
Abra o VSCode, clique em Extensions, depois pesquise por PlatformIO e selecione para instalar. Após a conclusão da instalação, reinicie o VSCode.

Instalar o pacote de plataforma platform-seeedboards
As placas da série Seeed Studio XIAO usam uma plataforma personalizada do PlatformIO, portanto você precisa instalar manualmente o pacote de plataforma correspondente.
- Execute o seguinte comando para uma instalação nova:
pio pkg install -g -p "https://github.com/Seeed-Studio/platform-seeedboards.git"

- Se você já usou anteriormente placas da série Seeed Studio XIAO no PlatformIO, execute o comando abaixo para atualizar:
# for Windows
pio pkg update -g -p "GitHub - Seeed-Studio/platform-seeedboards: Seeed Boards: development platform for PlatformIO"
# for macOS/Linux
pio pkg uninstall -g -p "SeeedStudio" && pio pkg install -g -p "SeeedStudio=GitHub - Seeed-Studio/platform-seeedboards: Seeed Boards: development platform for PlatformIO" --force

Se você quiser usar um projeto PlatformIO existente, substitua o conteúdo de platformio.ini como segue:
[env:seeed-xiao-nrf54lm20a]
platform = https://github.com/Seeed-Studio/platform-seeedboards.git
framework = zephyr
board = seeed-xiao-nrf54lm20a
Criar novo projeto
- Abra a extensão PlatformIO e selecione Create New Project.

- Defina o nome do projeto, selecione a placa de desenvolvimento, o framework e o caminho de armazenamento dos arquivos.

- Após a conclusão da criação, aparecerá um aviso para abrir o workspace. Clique em OK.

- Navegue até a pasta do projeto. Os arquivos são armazenados no diretório padrão se você não tiver especificado um caminho personalizado.
- Padrão no Windows:
<path>: C:\Users\your_name\Documents\PlatformIO\Projects
- Padrão no Mac / Linux:
<path>: ~/Documents/PlatformIO/Projects

Adicionar o programa Blink
Este tutorial é desenvolvido com base no Zephyr RTOS. O projeto é composto por três arquivos centrais:
main.c: Programa principal que contém a lógica da aplicação.app.overlay: Arquivo de overlay do Devicetree para configuração de periféricos de hardware.prj.conf: Arquivo de configuração do projeto para habilitar os módulos necessários do Zephyr.

- Adicione o programa main.c
main.c
/*
* Copyright (c) 2016 Intel Corporation
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr/kernel.h>
#include <zephyr/device.h>
#include <zephyr/drivers/pwm.h>
#include <nrfx_power.h>
#define PWM_PERIOD_NS 1000000U
#define STEP_TIME_MS 500
#define LED_R_NODE DT_ALIAS(pwm_led0)
#define LED_G_NODE DT_ALIAS(pwm_led2)
#define LED_B_NODE DT_ALIAS(pwm_led1)
#if !DT_NODE_EXISTS(LED_R_NODE) || !DT_NODE_EXISTS(LED_G_NODE) || !DT_NODE_EXISTS(LED_B_NODE)
#error "This RGB blink demo expects pwm-led0/pwm-led1/pwm-led2 devicetree aliases"
#endif
static const struct pwm_dt_spec led_r = PWM_DT_SPEC_GET(LED_R_NODE);
static const struct pwm_dt_spec led_g = PWM_DT_SPEC_GET(LED_G_NODE);
static const struct pwm_dt_spec led_b = PWM_DT_SPEC_GET(LED_B_NODE);
struct rgb_step {
uint8_t r;
uint8_t g;
uint8_t b;
uint32_t delay_ms;
};
static int pwm_set_u8(const struct pwm_dt_spec *led, uint8_t level)
{
uint32_t duty_ns = (PWM_PERIOD_NS * (uint32_t)level) / 255U;
return pwm_set_dt(led, PWM_PERIOD_NS, duty_ns);
}
static int rgb_set(uint8_t r, uint8_t g, uint8_t b)
{
int ret;
ret = pwm_set_u8(&led_r, r);
if (ret < 0) {
return ret;
}
ret = pwm_set_u8(&led_g, g);
if (ret < 0) {
return ret;
}
ret = pwm_set_u8(&led_b, b);
if (ret < 0) {
return ret;
}
return 0;
}
int main(void)
{
int ret;
#if defined(CONFIG_NRFX_POWER)
nrfx_power_constlat_mode_request();
#endif
if (!device_is_ready(led_r.dev) || !device_is_ready(led_g.dev) || !device_is_ready(led_b.dev)) {
return -1;
}
static const struct rgb_step demo[] = {
{ 255, 0, 0, STEP_TIME_MS },
{ 0, 255, 0, STEP_TIME_MS },
{ 0, 0, 255, STEP_TIME_MS },
{ 255, 255, 0, STEP_TIME_MS },
{ 0, 255, 255, STEP_TIME_MS },
{ 255, 0, 255, STEP_TIME_MS },
{ 255, 255, 255, STEP_TIME_MS },
{ 0, 0, 0, STEP_TIME_MS },
};
while (1) {
for (size_t i = 0; i < ARRAY_SIZE(demo); i++) {
ret = rgb_set(demo[i].r, demo[i].g, demo[i].b);
if (ret < 0) {
return ret;
}
k_msleep(demo[i].delay_ms);
}
}
return 0;
}
- Adicione o arquivo app.overlay
O arquivo de overlay do Devicetree não existe no exemplo em branco recém-criado. Você precisa adicioná-lo no diretório zephyr.

app.overlay
/*
* Device tree overlay for XIAO nRF54LM20A RGB LED PWM demo.
*
* PWM20 peripheral is used for RGB LED control:
* - Channel 0: P1.22 (Red LED) -> pwm_led0
* - Channel 1: P1.23 (Blue LED) -> pwm_led1
* - Channel 2: P1.24 (Green LED) -> pwm_led2
*/
&pwm20 {
status = "okay";
};
/ {
pwmleds {
compatible = "pwm-leds";
pwm_led0: pwm_led_0 {
pwms = <&pwm20 0 PWM_MSEC(20) PWM_POLARITY_INVERTED>;
label = "Red LED";
};
pwm_led1: pwm_led_1 {
pwms = <&pwm20 1 PWM_MSEC(20) PWM_POLARITY_INVERTED>;
label = "Blue LED";
};
pwm_led2: pwm_led_2 {
pwms = <&pwm20 2 PWM_MSEC(20) PWM_POLARITY_INVERTED>;
label = "Green LED";
};
};
};
/ {
aliases {
pwm-led0 = &pwm_led0;
pwm-led1 = &pwm_led1;
pwm-led2 = &pwm_led2;
};
};
- Modifique
prj.confe habilite as configurações correspondentes.
CONFIG_GPIO=y
CONFIG_PWM=y
CONFIG_SERIAL=n
Compilar e enviar o programa
Duas formas de compilação e envio são apresentadas abaixo.
- Compilar e enviar via botão

- Compilar e enviar via linha de comando
pio run -e seeed-xiao-nrf54lm20a -t upload -v

Observar o resultado

Antena Bluetooth
Esta placa usa uma antena Bluetooth externa. Para garantir uma melhor qualidade de sinal Bluetooth e aprimorar sua experiência de uso do Bluetooth, é recomendável instalar uma antena Bluetooth. O método de conexão é mostrado abaixo:

Uso da bateria
O XIAO nRF54LM20A é capaz de usar uma bateria de lítio de 3,7 V como entrada de alimentação. Você pode consultar o diagrama a seguir para o método de fiação.

Tenha cuidado para não causar curto-circuito entre os terminais positivo e negativo e queimar a bateria e o equipamento durante a soldagem. Se a bateria estiver com carga, nunca a solde diretamente na placa, pois isso pode queimar a placa de circuito. Causar curto-circuito enquanto o circuito estiver energizado representa um risco significativo; é recomendável usar um adaptador.
Instruções sobre o uso de baterias:
- Utilize baterias qualificadas que atendam às especificações.
- O XIAO pode ser conectado ao seu computador por meio de cabo de dados enquanto utiliza a bateria; fique tranquilo, pois o XIAO possui um chip de proteção de circuito integrado, sendo seguro.
Efeito de Funcionamento do Indicador de Carga
Este exemplo controla o LEDDRV1 onboard lendo o status de VBUS, VBAT e IBAT do nPM1300: o LED acende durante o carregamento e apaga quando a bateria está totalmente carregada, nenhuma bateria está conectada ou o cabo USB é desconectado. Ao mesmo tempo, o programa envia a tensão da bateria, a corrente de carga e o status de carregamento pela porta serial para facilitar o monitoramento do processo de carga.
Detecção de Tensão da Bateria
O XIAO nRF54LM20A integra um recurso de detecção de tensão da bateria que se concentra em gerenciar de forma eficiente as medições de energia da bateria usando o load switch nPM1300-CAA. Este guia se concentrará em analisar a implementação de software da detecção de bateria (especialmente o código main.c) e orientá-lo sobre como implantar e usar facilmente esse recurso em um ambiente PlatformIO, evitando a complexidade do Zephyr NCS SDK.

Esquemático de detecção da bateria
O que o chip nPM1300-CAA faz:
O nPM1300-CAA é um CI de gerenciamento de energia (PMIC) altamente integrado que substitui a função simples de load switch do TPS22916. Ele não apenas controla a comutação da tensão da bateria para monitoramento de baixo consumo, mas também integra carregamento, regulação e medição precisa do nível de carga (por meio de tensão, corrente e temperatura) para maximizar a vida útil da bateria do nRF54LM20A.
O exemplo a seguir funciona tanto para PlatformIO quanto para nRF Connect SDK. Ele pode ser usado diretamente no PlatformIO, enquanto o SDK exige a adição manual de arquivos. Consulte este link
Visão Geral dos Periféricos
A circuitaria periférica desta placa inclui um IMU e um microfone. Você pode ver suas localizações no diagrama abaixo:

IMU
O XIAO nRF54LM20A Sense possui um IMU LSM6DS3TR-C com um acelerômetro de 3 eixos e um giroscópio de 3 eixos.
MIC
O XIAO nRF54LM20A Sense está equipado com um microfone digital MSM261DGT006 para captura de áudio.
FAQ
P1: O que devo fazer se encontrar erros de build após modificar os arquivos de configuração?
Se você já tiver feito o build do projeto e depois modificou arquivos de configuração (como prj.conf, app.overlay ou CMakeLists.txt), é recomendável limpar o cache de build antes de compilar novamente. Isso ajuda a evitar erros de compilação causados por arquivos de cache antigos ou corrompidos.
Execute o seguinte comando:
pio run -t clean
P2: Por que recebo zsh: command not found: openocd após a instalação? (macOS)
Esse problema geralmente ocorre porque o diretório do executável do OpenOCD não foi adicionado ao PATH do sistema. Você pode adicioná-lo permanentemente ao arquivo ~/.zshrc usando os seguintes comandos.
Observação: Esta solução é apenas para macOS.
echo 'export PATH="$HOME/Library/Application Support/Seeed/OpenOCD/tool-openocd/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
openocd --version
Se o número da versão for exibido com sucesso, a configuração foi concluída.
P3: O que devo fazer se o menu suspenso de projetos do PlatformIO falhar após instalar a plataforma Seeed Studio XIAO várias vezes?
Se você instalou diferentes versões da plataforma Seeed Studio XIAO para PlatformIO várias vezes, pacotes de plataforma duplicados ou desatualizados podem causar conflitos de versão e impedir que os projetos do PlatformIO sejam carregados corretamente.
Recomenda-se remover todos os pacotes antigos da plataforma Seeed e deixar o PlatformIO baixar automaticamente a versão oficial mais recente.
Execute o seguinte comando:
rm -rf ~/.platformio/packages/platform-seeed-* ~/.platformio/packages/framework-seeed-*
Após a limpeza, reabra o PlatformIO e faça o build do seu projeto novamente.
Recursos
Seeed Studio XIAO nRF54LM20A
Projeto de Hardware
- 📄[Datasheet] Datasheet Nordic nRF54LM20A
- 📄[Schematic] Esquemático do XIAO nRF54LM20A
- 🗃️[PCB Design Files] Projeto KiCad do XIAO nRF54LM20A
- 🗃️[PCB Design Libraries]
- 📄[Pinout Diagram]Folha de Pinout do XIAO nRF54LM20A
Seeed Studio XIAO nRF54LM20A Sense
Projeto de Hardware
- 📄[Datasheet] Datasheet Nordic nRF54LM20A
- 📄[Schematic] Esquemático do XIAO nRF54LM20A Sense
- 🗃️[PCB Design Files] Projeto KiCad do XIAO nRF54LM20A
- 🗃️[PCB Design Libraries]
- 📄[Pinout Diagram]Folha de Pinout do XIAO nRF54LM20A Sense
Suporte Técnico e Discussão de Produtos
Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.




