0

我正在使用带有 ST (I-CUBE-LRWAN) 扩展包的 Discovery Kit B-L072Z-LRWAN,但我需要从 Murata(手册)模块获取设备注册 PIN,以便在我的LoRa-云帐户。

我知道手册描述了如何通过 UART 做到这一点,但我尝试了所有的方法和所有的波特率,但我无法从板上得到任何响应(我使用 minicom 并连接到 USB-TTL 转换器)

任何帮助都非常受欢迎!

提前致谢!!

4

1 回答 1

0

您为该芯片和软件使用了错误的手册。链接的手册适用于一些 Semtech 实施。您正在使用 ST 的Murata CMWX1ZZABZ-xxx软件(即 I-CUBE-LRWAN)。(部件号末尾的数字区分不影响功能的 STM32 微控制器 78/91。)

我不直接知道“设备注册 PIN”是什么意思,但我猜你正在寻找设备的 DevEui。

DevEui 有两个选项。一个是由 I-CUBE-LRWAN 计算的,是从 CMX1ZZABZ 的内部寄存器使用HW_GetUniqueId. 另一个选项是使用以下定义进行设置:

/*!
 * When set to 1 DevEui is LORAWAN_DEVICE_EUI
 * When set to 0 DevEui is automatically generated by calling
 *         BoardGetUniqueId function
 */
#define STATIC_DEVICE_EUI                                  0

/*!
 * Mote device IEEE EUI (big endian)
 *
 * \remark see STATIC_DEVICE_EUI comments
 */
#define LORAWAN_DEVICE_EUI                                 { IEEE_OUI, 0x01, 0x01, 0x01, 0x01, 0x01 }

这些可以在commisioning.h:106-118文件中找到。


里面找到硬件派生的DevEui的实现mlm32l0xx_hw.c:275-290

/**
  * @brief This function return a unique ID
  * @param unique ID
  * @retval none
  */
void HW_GetUniqueId(uint8_t *id)
{
  id[7] = ((*(uint32_t *)ID1) + (*(uint32_t *)ID3)) >> 24;
  id[6] = ((*(uint32_t *)ID1) + (*(uint32_t *)ID3)) >> 16;
  id[5] = ((*(uint32_t *)ID1) + (*(uint32_t *)ID3)) >> 8;
  id[4] = ((*(uint32_t *)ID1) + (*(uint32_t *)ID3));
  id[3] = ((*(uint32_t *)ID2)) >> 24;
  id[2] = ((*(uint32_t *)ID2)) >> 16;
  id[1] = ((*(uint32_t *)ID2)) >> 8;
  id[0] = ((*(uint32_t *)ID2));
}
于 2020-05-12T11:42:22.687 回答