问题

 

EmberZnet调试UART-NCP(基于EFR32MG)的一些实用方法

答案

 

通常客户在设计Gateway的时候使用Host+NCP模式。在客户的设计中常用32Pin的EFR32MG的芯片进行Gateway设计开发,其中NCP与UART使用两线串口(Tx/Rx)相连。本文提供在该情境下调试NCP的一些实用方法。

 

首先,由于Silicon Labs在stack中只提供关于标准无线板(如BRD4151/BRD4161 radio board)的预制固件,包括Bootloader以及NCP firmware。任何其它型号的芯片,尤其是32Pin的EFR32MG芯片的固件都需要客户自己进行自定义编译。

 

在此有两篇关于如何编译自定义固件的KBA,供客户参考。

Make customized ZigBee bootloader for the EFR32MG1 QFN32 parts

Make customized ZigBee xNCP images for EFR32MG parts 

 

注意:在编译NCP的时候,最关键的几点内容如下:

 

  • UART的GPIO管脚是否配置正确
  • 客户版上是否使用外部的768K低频晶振。(stack中默认是不使用此外部晶振,可以在程序头文件中使用宏来控制)
  • NCP的Plugin中流控类型选定为software control

当编译好板子对应的固件(Bootloader以及NCP firmware)的时候,现在需要对板子进行烧录和调试。

 

  • 使用Silicon Labs的WSTK主版作为烧录器,将WSTK的10Pin调试口与客户版的10Pin Mini-Simplicity Connector相连。打开Simplicity Studio,将WSTK主板的“Debug Mode”设置为OUT。
  • 可以通过烧录RAILTest或Nodetest或自己编译的SOC程序验证串口是否正常工作。
  • 将Bootloader先烧录到客户板中,注意:烧录的时候先擦除芯片,保证此时只烧录Bootloader。这样做的好处是芯片在上电启动之后直接进去Bootloader模式,正常情况下在串口中可以看到打印信息,以表明串口的硬件连接没有问题。
  • 将客户板的串口连上UART转USB口模块,并连接上PC电脑(在此以Win7系统为例)。在电脑上打开串口工具,正常情况下,可以看到如下类似信息即表明串口以及Bootloader已经正常工作。

1.png

  • 继续在客户版中烧录已经编译好的NCP固件。在Win7 PC机上面的Cygwin环境中编译Host程序验证NCP是否正常工作,可以直接使用Z3GatewayHost例程。
  • 输入以下命令,启动Host程序:

./build/exe/Z3GatewayHost.exe -n 1 -p com44

 

如果能看到如下信息,表明NCP程序工作正常。

2.png

 

  • Proprietary
  • Knowledge Base Articles
  • Wireless