NRF52 平台
此组件包含 NRF52 平台的平台特定选项。
NOTE
ESPHome 在 NRF52 上所有方面的支持仍在开发中。
# 示例配置条目nrf52: board: adafruit_feather_nrf52840- board (必需, 字符串): 开发板类型。有效选项为
adafruit_feather_nrf52840、adafruit_itsybitsy_nrf52840、xiao_ble。其他开发板也应该可以使用这些配置。 - bootloader (可选, 字符串): 引导加载程序类型。有效选项为
mcuboot、adafruit、adafruit_nrf52_sd132、adafruit_nrf52_sd140_v6、adafruit_nrf52_sd140_v7。默认值取决于开发板类型。 - dcdc (可选, 布尔值): 为 REG1 阶段启用 DC/DC 转换器。默认为
true。 如果正在使用 DC/DC 稳压器,必须将外部 LC 滤波器连接到 DC/DC 稳压器引脚。 使用 DC/DC 稳压器的优点是,由于这种稳压器的效率高于 LDO,总功耗通常会降低。 ⚠️ 警告:如果外部 LC 滤波器配置错误或质量不佳,启用 DC/DC 可能导致开发板无法启动。
nRF52840 需要引导加载程序,有两个支持的选项:MCUboot 和 Adafruit nRF52 Bootloader。建议使用 MCUboot,因为它支持 OTA(空中)更新。您的开发板很可能带有制造商提供的引导加载程序。ESPHome 根据开发板名称确定引导加载程序类型。
低功耗 nRF52840 开发板 示例。
使用 MCUboot 刷写
Section titled “使用 MCUboot 刷写”刷写此引导加载程序需要 SWD 连接,因此需要编程器。可以使用便宜的 ST-Link V2。
- 通过 SWD 将开发板连接到电脑。
- 运行
esphome upload yourfile.yaml --device PYOCD。
# 示例配置条目nrf52: board: adafruit_feather_nrf52840使用 Adafruit nRF52 引导加载程序刷写
Section titled “使用 Adafruit nRF52 引导加载程序刷写”通过闪存驱动器刷写。
- 通过 USB 将开发板连接到电脑。
- 快速将复位引脚短路接地两次。
- 将 UF2 包复制到闪存驱动器。
此引导加载程序支持通过 USB CDC 进行更新。
- 通过 USB 将开发板连接到电脑。
- 快速将复位引脚短路接地两次。
- 运行
esphome upload yourfile.yaml。
# 示例配置条目nrf52: board: adafruit_itsybitsy_nrf52840GPIO 引脚编号
Section titled “GPIO 引脚编号”有两种方式引用 GPIO 引脚:
- 按引脚名称,例如
P0.15或P1.11。 - 按引脚编号,例如
15或43。
DFU(设备固件更新)
Section titled “DFU(设备固件更新)”dfu 组件通过监控 USB CDC 串行连接,实现自动进入 DFU(设备固件更新) 模式。当主机以 1200 波特率 打开端口时,该组件通过 GPIO 引脚触发复位,使设备进入 DFU 模式。
ESPHome 在通过以下方式上传固件时内部使用此组件:
esphome upload d.yamlnrf52: dfu: reset_pin: number: 14 inverted: true- reset_pin (必需, 引脚): 用于触发硬件复位的引脚。此引脚应连接到 MCU 的复位线或导致引导加载程序在复位后进入 DFU 模式的电路。
REGOUT0
Section titled “REGOUT0”REG0 稳压器阶段的输出电压,当开发板在高电压模式下运行时为 GPIO 引脚供电。
此设置只能更改有限次数,除非设置了 uicr_erase。
需要 mcuboot 或 adafruit 引导加载程序版本 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 闪烁配置:
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_lednrf52: 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开发板无法启动
Section titled “开发板无法启动”禁用 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 支持)