Zigbee深入浅出实战
Zigbee开发过程中的问题集锦
詆調
故不积蹞步,无以至千里不积小流,无以成江海。
展开
-
Zigbee白名单/黑名单
方式一在Zmac_cb.c文件中,找到函数MAC_CbackEvent,这个函数是MAC层把消息上传给NWK层的,可以过滤AssoReq命令。这个地方是判断MAC层生成的消息,并进一步传递给NWK,在传递给NWK前要用osal_msg_allocate分配消息空间,同时会进行一些预处理。其中有个对MAC_MCPS_DATA_IND事件的预处理,就是收到错误的数据包直接return,不上传给NWK...转载 2019-04-08 16:25:33 · 710 阅读 · 1 评论 -
Z-Stack 3.0.2 终端节点无法入网
问题如下图所示:终端向协调器发起入网请求,并且接收到了秘钥信息,然后接着协调器就像死机了一样,抓包工具没有抓取到网络的link status信息。解决方式1、根据TI工作人员的建议,将ZDAPP_UPDATE_NWK_NV_TIME参数改为3500ms2、根据文档优化协调器的内存使用情况,Optimizing_Flash_and_RAM_Usage_of_Z-Stack_for_CC25...原创 2019-03-22 11:01:03 · 1100 阅读 · 1 评论 -
如何解决因CC2530重复触发串口回调函数导致程序卡死的问题
转载:https://blog.csdn.net/zzz_xxj/article/details/80389531原因:当使用CC2530的串口时,协议栈会生成一个串口发送事件,在执行该事件的时候也会触发相应的串口回调函数,导致回调函数被重复调用。解决方法:在_hal_uart_dma.c文件中找到static void HalUARTPollDMA(void)函数,然后找到if (dmaCf...转载 2018-11-16 15:08:30 · 476 阅读 · 0 评论 -
Zigbee网关的设计方案
这里提供TI的几种网关的设计方案:方案一:ZigBee Lighting Gateway SWhttp://processors.wiki.ti.com/index.php/ZigBee_Lighting_Gateway_SW#Linux_Lighting_Gateway_ZigBee_Driver http://processors.wiki.ti.com/index.php/Zi...原创 2018-06-24 21:13:07 · 6002 阅读 · 0 评论 -
Z-Stack 3.0.1 ZNP开发(一)--通讯串口调整
概述芯片:CC2530协议栈: Z-Stack 3.0.1功能:使用串口1的P1.6,P1.7连接MT7628,让CC2530通过ZNP和MT7628进行通讯。TI所提供的ZNP工程默认情况下是采用串口0与MCU进行通信,所以接下来就需要通过修改代码来实现串口1与MCU进行通信。硬件原理ZNP工程配置及修改步骤本次修改是基于Z-Stack 3.0.1协议栈,其ZN...原创 2018-06-23 16:29:11 · 3646 阅读 · 1 评论 -
Z-Stack 修改协议栈的堆栈大小
在协议栈编译过程中,由于设置的堆栈空间过大,而且协议栈设置的功能又多的情况下,导致程序无法编译通过,所以需要通过调节协议栈的中堆栈的大小,缩小RAM空间让其存放其他功能。 但是这样操作,会影响到网络的容量,比如一些路由表等等的数据是在内存中管理的。如果堆栈变小,可分配的空间就变小了,设备节点的容量也就变小了。 所以可以根据需求来进行设计,要么裁剪和精简功能,要么缩小协议栈堆栈,要么使用别的内存...原创 2018-06-23 12:09:42 · 1210 阅读 · 0 评论 -
u8g2 SSD1306(I2C) for Z-Stack
手中有块SSD1306 128x64的OLED显示屏幕,使用的是I2C模式驱动。现在想让其的能够在Z-Stack CC2530 驱动OLED显示。要让CC2530驱动OLED显示,需要实现:实现CC2530 I2C驱动移植U8G2显示库。1. 实现CC2530 I2C驱动CC2530芯片上面并没有I2C控制器,所以只能使用IO口模拟的方式模拟I2C的控制时序。并且Ti提供RemoTI协议栈中已原创 2017-07-11 13:10:24 · 6844 阅读 · 3 评论 -
IAR编译u8g2库文件
使用该库文件是为了移植到cc2530 z-stack中。使用IAR创建一个空白的工程,将u8g2下面的csrc目录下的c文件添加到工程中。选择工程名字,单击右键选择options.在General options中Output标签栏中Output file选择Library在C/C++ Compiler中Preprocessor标签栏,在Additional include directiori原创 2017-07-11 13:22:46 · 1708 阅读 · 0 评论 -
Ti CC2530 i2c 驱动
CC2530没有I2C控制器,所以只能使用IO口模拟I2C控制时序。 下载地址:http://download.csdn.net/detail/oxp7085915/9895098使用方法: 1、将hal_i2c.h、hal_i2c.c文件加入到工程中 2、调整SDA/SCL IO口 在hal_i2c.c文件中找到如下宏定义,对IO口进行修改/*SCL 端口定义*/#ifndef OCM_原创 2017-07-11 13:42:01 · 3117 阅读 · 4 评论 -
CC2530 Z-Stack修改发射功率
方式一、 1、在hal_board_cfg.h中启动PA功能 2、根据PA与CC2530的连线,修改mac_radio_defs.c中macRadioTurnOnPower()函数,在此函数中修改PAEN/EN管脚的控制逻辑 3、在mac_pib.c中找到数组static CODE const macPib_t macPibDefaults,该函数定义了CC2530上电后其默认的配置参数,找到原创 2017-07-26 17:02:10 · 1895 阅读 · 0 评论 -
创建Zigbee Z-Stack 3.0.1 BSP(一)--概述
手上有一套UltraIot CC2530开发板,想让其运行Z-Stack 3.0项目,但是原始的Z-Stack 3.0 协议栈中与手中开发板很多外设功能不一样,所以需要进行移植,改成让其支持UltraIot CC2530开发板。准备工作1、安装IAR Z-Stack 3.0.1开发IDE需求。EW851 10.10.1 2、安装3.0.1协议栈 也可以到TI官网上下载原创 2017-08-11 00:09:07 · 2570 阅读 · 0 评论 -
创建Zigbee Z-Stack 3.0.1 BSP(二)--Z-Stack协议栈目录结构
创建Zigbee Z-Stack BSP前,首先需要了解Z-Stack协议栈的目录结构。在安装完成协议栈后其目录如下: 开发的过程中主要使用的文件目录:Documents,Components,Projects,ToolsDocuments目录Documents文件夹中包含了TI官方提供的认为有助于进行Zstack开发的文档,主要分为2类,一类为API接口,描述了Z-Stack提供给开发者能够使原创 2017-08-14 22:10:49 · 6035 阅读 · 0 评论 -
创建Zigbee Z-Stack 3.0.1 BSP(三)--创建基于UltraIot工程模板
基于UltraIot开发板创建工程模块,在以后的开发过程中多可以基于工程模板Step.1 创建UtraIot硬件相关的HAL目录进入Z-Stack 3.0.1_UtraIot\Components\hal\target目录复制CC2530EB目录,粘贴到当前目录,并且重命名为UltraIot。 以后UltraIot开发板上相关的硬件驱动都放到该目录下。Step.2 创建UtraIot应用模板1、原创 2017-08-14 23:19:19 · 1607 阅读 · 0 评论 -
创建Zigbee Z-Stack 3.0.1 BSP(四)--移植UltraIot开发板LED
概述UltraIot开发板LED开发板上有三个用户LED指示灯,这三个指示灯所使用的IO口与IT的评估板有所不同,所以需要根据UltraIot开发板底板的原理图来修改IO口。 UltraIot开发板LED原理图如下所示: 有图可以得到: 1、P1.0 ,P1.1,P1.4分别控制LED2,LED3,LED1 2、P1.0 ,P1.1,P1.4输出高电平时LED高亮,P1.0 ,P1.1,原创 2017-08-15 22:22:01 · 1452 阅读 · 3 评论 -
Zigbee Stack CC2530 ZNP使用
概述TI 的Z-Stack 提供两种解决方案,一种基于TI 2530芯片为核心的Zigbee解决方案,另一种为ZNP(Zigbee and Processor),即CC2530+MCU的解决方案,这是TI提供的两种不同的解决方案。硬件配置当前使用的ZNP方案为MT7620N+CC2530的方式,MT7620N与CC2530采用UART接口通讯。管脚 CC2530 UAR原创 2017-08-18 00:04:37 · 7850 阅读 · 2 评论 -
TI zigbee Z-stack linux gateway 移植编译注意事项
概述TI zigbee Z-stack linux gateway是适用于AM335x,但是当前手中并没有AM335x,只有一个MT7620N路由器开发板,上面运行Openwrt系统。使用MT7620N+CC2530做一个网关。MT7620N与CC2530通过串口通讯。 实现网关步骤: 1、CC2530刷入ZNP固件。具体操作可以查看【Zigbee Stack CC2530 ZNP使用】 2、原创 2017-08-18 14:37:10 · 4058 阅读 · 1 评论