跳转到内容

NRF52 平台

此组件包含 NRF52 平台的平台特定选项。

NOTE

ESPHome 在 NRF52 上所有方面的支持仍在开发中。

# 示例配置条目
nrf52:
board: adafruit_feather_nrf52840
  • board (必需, 字符串): 开发板类型。有效选项为 adafruit_feather_nrf52840adafruit_itsybitsy_nrf52840xiao_ble。其他开发板也应该可以使用这些配置。
  • bootloader (可选, 字符串): 引导加载程序类型。有效选项为 mcubootadafruitadafruit_nrf52_sd132adafruit_nrf52_sd140_v6adafruit_nrf52_sd140_v7。默认值取决于开发板类型。
  • dcdc (可选, 布尔值): 为 REG1 阶段启用 DC/DC 转换器。默认为 true。 如果正在使用 DC/DC 稳压器,必须将外部 LC 滤波器连接到 DC/DC 稳压器引脚。 使用 DC/DC 稳压器的优点是,由于这种稳压器的效率高于 LDO,总功耗通常会降低。 ⚠️ 警告:如果外部 LC 滤波器配置错误或质量不佳,启用 DC/DC 可能导致开发板无法启动。

nRF52840 需要引导加载程序,有两个支持的选项:MCUbootAdafruit nRF52 Bootloader。建议使用 MCUboot,因为它支持 OTA(空中)更新。您的开发板很可能带有制造商提供的引导加载程序。ESPHome 根据开发板名称确定引导加载程序类型。

低功耗 nRF52840 开发板 示例。

刷写此引导加载程序需要 SWD 连接,因此需要编程器。可以使用便宜的 ST-Link V2。

  1. 通过 SWD 将开发板连接到电脑。
  2. 运行 esphome upload yourfile.yaml --device PYOCD
# 示例配置条目
nrf52:
board: adafruit_feather_nrf52840

使用 Adafruit nRF52 引导加载程序刷写

Section titled “使用 Adafruit nRF52 引导加载程序刷写”

通过闪存驱动器刷写。

  1. 通过 USB 将开发板连接到电脑。
  2. 快速将复位引脚短路接地两次。
  3. 将 UF2 包复制到闪存驱动器。

此引导加载程序支持通过 USB CDC 进行更新。

  1. 通过 USB 将开发板连接到电脑。
  2. 快速将复位引脚短路接地两次。
  3. 运行 esphome upload yourfile.yaml
# 示例配置条目
nrf52:
board: adafruit_itsybitsy_nrf52840

有两种方式引用 GPIO 引脚:

  1. 按引脚名称,例如 P0.15P1.11
  2. 按引脚编号,例如 1543

dfu 组件通过监控 USB CDC 串行连接,实现自动进入 DFU(设备固件更新) 模式。当主机以 1200 波特率 打开端口时,该组件通过 GPIO 引脚触发复位,使设备进入 DFU 模式。

ESPHome 在通过以下方式上传固件时内部使用此组件:

Terminal window
esphome upload d.yaml
nrf52:
dfu:
reset_pin:
number: 14
inverted: true
  • reset_pin (必需, 引脚): 用于触发硬件复位的引脚。此引脚应连接到 MCU 的复位线或导致引导加载程序在复位后进入 DFU 模式的电路。

REG0 稳压器阶段的输出电压,当开发板在高电压模式下运行时为 GPIO 引脚供电。 此设置只能更改有限次数,除非设置了 uicr_erase。 需要 mcubootadafruit 引导加载程序版本 0.9.3 或更高。

nrf52:
reg0:
voltage: 3.3V
uicr_erase: true
  • voltage (必需, 电压): 所需的输出电压 - 必须是以下之一 1.8V、2.1V、2.4V、2.7V、3.0V、3.3V。
  • uicr_erase (可选, 布尔值): 如果设置为 true,用户信息配置寄存器(UICR) 将在写入新电压设置之前被擦除。 ⚠️ 警告:如果配置错误,启用此选项可能导致开发板无法启动。默认为 false。

如果您使用的是 Adafruit 引导加载程序,请升级到最新版本: Adafruit nRF52 Bootloader 发布版本

为开发板尝试最简单的 LED 闪烁配置:

supermini-nrf52840

nrf52:
board: adafruit_itsybitsy_nrf52840
esphome:
name: supermini-nrf52840
logger:
level: DEBUG
output:
- platform: gpio
pin: P0.15
id: red_led
interval:
- interval: 1s
then:
- output.turn_on: red_led
- delay: 0.5s
- output.turn_off: red_led

xiao-nrf52840

nrf52:
board: xiao_ble
esphome:
name: xiao-nrf52840
logger:
level: DEBUG
output:
- platform: gpio
pin: P0.26
id: red_led
interval:
- interval: 1s
then:
- output.turn_on: red_led
- delay: 0.5s
- output.turn_off: red_led

禁用 DC/DC:

nrf52:
dcdc: false
# 示例配置条目
nrf52:
framework:
version: 2.6.1-7
  • version (可选, 字符串): nrf-sdk 版本。可选值:
    • 2.6.1-7 : 稳定版(默认)
    • 2.9.2-0 : 实验版
    • 3.2.0-0 : 实验版(无 Zigbee 支持)