EmberZnet

※This article is based on Simplicity Studio 4 、EmberZnet SDK 6.7.5.0 and EFR32MG Series

Simplicity Studio [edit]

Simplicity Studio 工具的主要目的不是编译调试,而是一个工程项目的模板编辑器, 他创建的工程项目,再在IAR 等 IDE 工具中打开使用,用 IAR 等工具进行开发编译调试。

为了后期的版本升级方便,建议最大程度的使用 Simplicity Studio 工具进行代码的开发,IAR 等工具只作为编译器去使用。

例程

https://github.com/SiliconLabs/zigbee_applications

创建一个Zigbee项目 [edit]

您可以按照以下步骤创建Zigbee项目:

  1. 转到File->New->Project。 这将显示 "New Project Wizard";
  2. 选择“ Silicon Labs AppBuilder项目”,单击“Next”;
  3. 选择“ Silicon Labs Zigbee”,单击“Next”;
  4. 选择我们用于SoC的最新EmberZNet协议栈,单击“Next”;
  5. 这里将列出示例项目。您可以选择其中之一,单击“Next”;
  6. 命名您的项目,例如“ ZigbeeMinimal”,单击“Next”;
  7. 在下一个窗口(项目设置)中,选择板(如果要开发自定义板,请将“board”字段留空,然后选择芯片型号。)和编译器,单击“Finish”。之后,创建项目。项目的isc文件将自动打开。

项目工程的设置 [edit]

项目通过使用 isc 文件进行配置,在 Simplicity Studio 里面打开 isc 文件,可以看到下面的选项卡

Zigbee Stack [edit]

可以设置设备类型和安全性类型。对于Zigbee设备类型,我们有四个选项:

ZCL CLuster [edit]

确定Zigbee设备类型后,您可以设置endpoint和每个endpoint所在的cluster。这些功能在“ ZCL Clusters”选项卡下。

  1. 首先,您需要设置制造商代码。这是Zigbee联盟在您公司的第一个产品通过联盟认证时提供的代码。如果您的公司已经获得了制造代码,则可以从列表中选择。
  2. 其次,您可以在此处添加/删除endpoint,还可以选择要在endpoint上使用的设备配置文件。您还可以根据配置文件选择其他Clusters。在这种情况下,设置“ ZCL设备类型”时,请勿直接选择Zigbee设备配置文件。而是选择“ Zigbee Custom”,然后选择一个设备配置文件。您可以选择Cluster,然后选择Cluster定义的属性和命令。
  3. Cluster的属性和命令在Zigbee Cluster Library(ZCL)中定义。选择属性和命令时,需要参考ZCL规范。

Plugins [edit]

插件的属性

属性注释
Plugin Name插件名称
Quality插件的质量可能是:
制作准备
测试工具
扩展需求
示例代码
内部测试
公开测试
调试工具
Option插件选项
Located插件目录
Source files插件的源文件
Defined callbacks此插件定义的回调
Implemented callbacks在协议栈或其他插件中定义的回调,用此插件实现

大多数插件都是开源的。您可以检查源代码以了解其实现方式。

常用插件

类别插件注释
核心协议栈Zigbee PRO Stack Library具有路由支持的核心协议栈,由路由和协调器使用
Zigbee PRO Leaf Library不支持路由的核心协议栈,由终端设备使用
End Device Support一个支持终端设备的插件
Network Creator创建网络,由协调器使用
Network Creator Security协调器的安全设置,例如为新设备配置Link key
Network Steering扫描可加入的网络并加入
睡眠Idle/Sleep由睡眠终端设备使用。空闲时设备将进入EM2。
EM4插件可帮助睡眠终端设备进入EM4
主条目Simple Main项目的主要入口
非易失性数据Simulate EEPROM Version 1 Library模拟EEPROM版本1的库,用于存储非易失性数据
Simulate EEPROM Version 2 Library模拟EEPROM版本2的库,用于存储非易失性数据
NVM3 LibraryNVM3库,用于存储非易失性数据

HAL [edit]

Bootloader Configuration

点击“ Open Hardware Configurator”按钮,可以打开“Hardware Configurator”对芯片引脚进行设置

Callbacks [edit]

Silicons Labs建议客户在回调中添加其自定义源代码。好处是,当您从旧的SDK迁移到新的SDK时,这将非常容易。

建议在生成的文件<projectname>_callbacks.c 中定义和实现选定的回调。您也可以将它们添加到新的源文件中。

环境问题 [edit]

Could not erase chip, error code -13 (Invalid MCU Info.). [edit]

The given part number (efr32mg1b232f256gm32) does not match the detected device (EFR32MG21A020F768) [edit]

Try Project->Properties->Run/Debug Settings "iRIS_270FX Debug" -> Edit button, Connection tab Also Simplicity Commander.. click Connect twice defiantly the right processor... on two counts

you shouldn't configure the part number as mgmxxx in Simplicity IDE, that is not a valid part number. you should use efr32ngxxxx as the commander showed.

C:\SiliconLabs\SimplicityStudio\v4\developer\adapter_packs\commander>commander device info -d cortex-m4 --serialno 440029541

工程文件 [edit]

完成项目设置后,保存并按下按钮“ Generate”,AppBuilder将生成项目。

文件描述
<projectname>.h主头文件。此处列出了所有插件设置,回调设置
<projectname>_callbacks.c生成的源文件。自定义回调和事件处理应在此文件中实现。
<projectname>_endpoint_config.h定义endpoint,属性和命令
znet-cli.c/znet-cli.hCLI命令列表
client-command-macro.h定义大量宏指令用于填充消息
call-command-handler.cCluster命令处理
attribute-id.h/attribute-size.h/attribute-type.h/att-storage.h相关属性
af-structs.h数据结构
af-gen-event.h事件/处理程序对

编译 [edit]

编译完成后,生成的应用程序image位于:

编译问题 [edit]

identifier "BSP_PTI_DOUT_LOC" "BSP_PTI_DOUT_PORT" "BSP_PTI_DOUT_PIN" "BSP_PTI_DFRAME_LOC" "BSP_PTI_DFRAME_PORT" "BSP_PTI_DFRAME_PIN" is undefined [edit]

显示以下的错误信息:

Error[Pe020]: identifier "BSP_PTI_DOUT_LOC" is undefined D:\Tools\SimplicityStudio-EmberZnet 6.7.5.0\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v2.7\platform\base\hal\micro\cortexm3\efm32\hal-config.c 379 
Error[Pe020]: identifier "BSP_PTI_DOUT_PORT" is undefined D:\Tools\SimplicityStudio-EmberZnet 6.7.5.0\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v2.7\platform\base\hal\micro\cortexm3\efm32\hal-config.c 380 
Error[Pe020]: identifier "BSP_PTI_DOUT_PIN" is undefined D:\Tools\SimplicityStudio-EmberZnet 6.7.5.0\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v2.7\platform\base\hal\micro\cortexm3\efm32\hal-config.c 381 
Error[Pe020]: identifier "BSP_PTI_DFRAME_LOC" is undefined D:\Tools\SimplicityStudio-EmberZnet 6.7.5.0\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v2.7\platform\base\hal\micro\cortexm3\efm32\hal-config.c 385 
Error[Pe020]: identifier "BSP_PTI_DFRAME_PORT" is undefined D:\Tools\SimplicityStudio-EmberZnet 6.7.5.0\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v2.7\platform\base\hal\micro\cortexm3\efm32\hal-config.c 386 
Error[Pe020]: identifier "BSP_PTI_DFRAME_PIN" is undefined D:\Tools\SimplicityStudio-EmberZnet 6.7.5.0\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v2.7\platform\base\hal\micro\cortexm3\efm32\hal-config.c 387

打开.hwconf文件(或者在isc文件的 HAL 选项卡里面找到“Open Hardware Configurator”),找到PTI,将其取消,或者配置对应的参数,试缺少的参数补齐(PTI一般开发板才需要配合使用)

Type RAIL_Handle_t RAIL_Status_t RAIL_STATUS_NO_ERROR could not be resolved hal-config.c [edit]

在isc文件的 includes 选项卡里面,add directory... 添加下面的路径

安装路径\SimplicityStudio-EmberZnet 6.7.5.0\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v2.7\platform\radio\rail_lib\common

烧录 [edit]

The connected device does not have a Secure Element (ID Code 43000467) [edit]

Simplicity Studio 自带的烧录器的问题,使用 Simplicity Commander 烧录即可解决

参考URL

https://community.silabs.com/s/question/0D51M00007xeRSnSAM/cannot-debug-mgm210p022jia2-using-external-ji-link-secure-element-not-present?language=en_US

Simplicity Commander [edit]

Simplicity Commander 是一个实用程序,可提供对 EFM32 设备调试功能的 GUI 和命令行访问。它允许您刷新固件、更新套件固件以及锁定或解锁调试访问。此工具旨在替换 eACommander。

下载地址

https://www.silabs.com/documents/public/software/SimplicityCommander-Windows.zip

simplicity studio v5 的话,点击 tools 选择 simplicity commander

默认的路径

安装路径\SimplicityStudio-EmberZnet 6.7.5.0\SimplicityStudio\v4\developer\adapter_packs\commander

Troubleshooting [edit]

Error: Could not get Memory Layout [edit]

检查是否有线松动

&ref(): File not found: "ZigBee.png" at page "++EmberZnet++开发环境";


Comment:



(画像の文字列を入力して下さい)

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS