使用 nRF52840 构建 OpenThread 应用程序的起点

Starting point for building OpenThread applications using the nRF52840

我是 nRF52840 和 OpenThread 平台的新手,我正在寻找使用 nRF52840 Micro Dev Kit USB Dongle.

构建传感器应用程序的示例代码

我成功地设置了一个 Raspberry Pi 作为边界路由器,构建并刷新了 ot-cli-ftd,并设置了一个带有 NCP 和其他两个节点的 OpenThread 网络。

我在 OpenThread 或 nRF 网站上找不到的是 "maker-friendly" 示例应用程序,例如结合 OpenThread-CLI 和一些自定义代码,通过 I2C 或 SPI 读取传感器数据并通过 MQTT(或 MQTT-SN)发送数据。

是否有如何为 nRF52840 Dongle 构建此类应用程序的示例?

我知道我必须小心地在我的固件映像中添加 USB 和引导加载程序支持以避免 "bricking" 加密狗(它们没有 JLink 接口,所以 AFAIK 闪存它们的唯一方法是通过DFU 引导加载程序),所以我更愿意从一些工作示例开始。

感谢您对 Nordic nRF52840 和 OpenThread 的关注。

一般来说,nRF5 SDK for Thread and Zigbee中提供了很多例子。 nRF52840 Dongle 又名PCA10059,SDK提供实例运行就可以了。我认为全线程设备、命令行界面是一个很好的起点 (examples/thread/cli/ftd/usb/)。 还有很多其他的例子,甚至 MQTT-SN。 他们不支持带引导加载程序的 Dongle,但我将尝试在下面传递信息,您将能够实现这样的配置。

你是对的,内存布局有所不同。

带有 MBR 和引导加载程序的加密狗 - PCA10059 变体:thread_cli_ftd_usb_gcc_nrf52.ld

MEMORY
{
  FLASH (rx) : ORIGIN = 0x1000, LENGTH = 0xdb000
  RAM (rwx) :  ORIGIN = 0x20000008, LENGTH = 0x3fff8
  ot_flash_data (r) : ORIGIN = 0xdc000, LENGTH = 0x4000
}

没有 MBR 和引导加载程序的开发套件 - PCA10056 变体:thread_cli_ftd_usb_gcc_nrf52.ld:

MEMORY
{
  FLASH (rx) : ORIGIN = 0x0, LENGTH = 0xfc000
  RAM (rwx) :  ORIGIN = 0x20000000, LENGTH = 0x40000
  ot_flash_data (r) : ORIGIN = 0xfc000, LENGTH = 0x4000
}

您可以在 Memory layout section 中找到详细信息。 请注意,多协议示例使用 Softdevice,而 Thread-only 不需要它并为应用程序使用 space。

有一种方法可以解开加密狗,实际上甚至有两个。 一种是带有针式连接器的电缆——TC2050-IDC-NL。 第二种选择是在加密狗背面焊接一个 10 针连接器并使用带状电缆。 拥有它们中的任何一个都可以让您连接编程器并刷新 MBR 和 Bootloader,它们与上述 SDK 一起提供。

对于未来与 nRF 相关的问题,我强烈建议 Nordic Devzone 您可以从那里获得与 Nordic Semiconductor 合作的工程师的帮助。