Z-Stack调整功率

CC2530天线发射功率与接收灵敏度——玩转ZigBee的高端操作(Zstack框架) 一个通信工程狗做课设找了老半天CC2530的天线参数终于找到了,赶紧记录下来,激动坏了 一、天线发射功率及修改 我们时常会抱怨CC2530天线功率太小,传输距离太近,实际上这个是可以调整的!方法如下: 找到Zstack框架下MAC-System-mac_radio_defs.h 搜索/找到这一行 /* ------------------------------------------------------------------------------------------------ * 阅读详情

转自http://hi.baidu.com/xiaoqiang08wan/item/170106dda2b057fd93a974a5

在z-stack 2.4中,修改发射功率的方法和老版本已经不一样了。

修改发射功率的方法如下:

打开mac_radio_defs.h,找到文件最后面的这段代码:

/* ------------------------------------------------------------------------------------------------
* Transmit Power Setting Configuration
* ------------------------------------------------------------------------------------------------
*/

/*
* To use actual register values for setting power level, uncomment the following #define.
* In this case, the value passed to the set power function will be written directly to TXCTRLL.
* Characterized values for this register can be found in the datasheet in the "power settings" table.
*/
//#define HAL_MAC_USE_REGISTER_POWER_VALUES

将

//#define HAL_MAC_USE_REGISTER_POWER_VALUES的注释去掉。

变为:

#define HAL_MAC_USE_REGISTER_POWER_VALUES

然后打开ZMain.c

在ZMacInit();后面添加如下代码:

{
uint8 value = 0xF5;
MAC_MlmeSetReq(MAC_PHY_TRANSMIT_POWER, &value);
}

value与功率的对应关系可以在CC2530的datasheet中找到


问:我在测试Z-stack时发现,如果不加NV_RESTORE这个编译选项的话,那么节点必须靠得比较近才能组网成功。
如果离得较远,就无法组网。请问这是为什么呢?

答:有两项原因限制了zigbee节点的加入网络的距离,一个是默认发射功率为0dbm,另一个是节点加入是要求信号强度-84dbm以上,修改这两个条件可以使用zigbee节点可以在较远的地方加入网络。如果打开NV_Restore并且成功加入过网络,节点可以在小于-84dbm信号强度下通讯,这就是为什么打开nv_restore,可以有较远的距离的原因。

问:如何修改-84dbm这个值?

答:修改mac_spec.h中的MAC_SPEC_ED_MIN_DBM_ABOVE_RECEIVER_SENSITIVITY,将其改为1

/* Threshold above receiver sensitivity for minimum energy detect in dBm (see 6.9.7) */
#define MAC_SPEC_ED_MIN_DBM_ABOVE_RECEIVER_SENSITIVITY 10

另外还要把MAC_SPEC_MIN_RECEIVER_SENSITIVITY,改成-94

/* minimum receiver sensitivity in dBm (see 6.5.3.3) */
#define MAC_SPEC_MIN_RECEIVER_SENSITIVITY -85

CC2530+RFX2401启用功放过程小结 CC2530+RFX2401启用功放小结 CC2530+RFX2401如果不开启功放的话是用不了的,协调器和终端节点是无法建立通信的。我用的是Z-Stack协议栈2.5.1a版本,启用功放过程如下。 一、开启功放。 1.打开HAL–>Target–>CC2530EB–>Config–>hal_board_cfg.h文件 2.然后将**#define xHAL_PA_LNA... 阅读详情

相关推荐

Zigbee终端设备功耗测量与优化:基于TI SimpleLink平台的实战指南

在物联网设备开发中,功耗控制是决定产品成败的关键,尤其对于依赖电池供电的智能家居传感器和工业无线节点。低功耗设计不仅关乎硬件选型,更涉及软件协议栈的深度优化与精准测量。其核心原理在于通过精细的电源管理,最大化设备在深度睡眠模式下的时间占比,同时最小化射频活动带来的能量消耗。这项技术的价值在于能够显著延长设备续航,降低维护成本,并提升用户体验。在智能家居、工业传感网络等场景中,Zigbee协议因其自组网能力和低功耗特性而被广泛应用。本文以德州仪器(TI)的SimpleLink无线MCU平台(如CC2652R/

weixin_29189003的博客 289

Zigbee 设置信道,PANID,发射功率

现对z-stack里几个网络参数的设置以及如何获取总结一下。 信道配置: Zigbee在3个频段定义了27个物理信道:868MHz频段中定义了1个信道,915MHz频段中定义了2个信道,信道间隔为2MHz,2.4GHz频段上定义了16个信道,信道间隔为5MHz. 信道编号 中心频率/MHz 信道间隔/MHz 频率上限/MHz

道法自然 1万+

Zigbee技术全攻略:从芯片选型到协议栈开发的实战指南

本文全面解析Zigbee技术,从芯片选型到协议栈开发,提供智能家居和工业场景的实战指南。重点介绍Zigbee的低功耗、高稳定性特点,以及如何优化网络性能和抗干扰设计,帮助开发者高效构建物联网解决方案。

weixin_29191081的博客 214

ZigBee修改发射功率

Keep_Moving31038的博客 1363

Windows安装WSL子系统及docker,以及WSL和docker配置、使用及问题解决

在Windows操作系统中,Ubuntu子系统(也称为Windows Subsystem for Linux, WSL)为开发者提供了一个在Windows环境下运行Linux环境的平台。然而,有时用户在按照Ubuntu子系统或者使用WSL时,可能会遇到各种问题,下面总结一下解决方式。想要在Windows上安装Docker(实际上是基于Hyper-V或者WSL2这两项虚拟化技术),需要开启虚拟化功能,所以不管是对于系统还是硬件都有一定的要求。

sym的博客 9781

手把手教你用Matlab搞定GRACE RL06数据读取:冯伟老师工具箱无GUI版实战

本文详细介绍了如何使用Matlab处理GRACE RL06数据,重点解析了冯伟教授工具箱的无GUI版实战操作。通过环境配置、核心函数改造和批处理技巧,帮助科研工作者高效完成重力场数据的读取与分析,特别适合服务器集群环境下的批量处理需求。

weixin_29313817的博客 200

zigbee加PA信号增强方案:rfx2401+cc2530

一、前言       zigbee无线传输技术在物联网领域广泛应用,以其强大的组网能力,网络自愈能力,给物联网的控制带来比较好的鲁棒性。由于zigbee采用2.4G的频率,导致其传输距离受限,穿墙能力较弱,虽然zigbee的路由功能可以绕过障碍物,但治标不治本,假如路由节点被障碍物隔离了,通讯链路就会断开,加之公司的产品是金属框架,zigbee节点之间的通讯有时候不稳定,所以增强其穿墙能力很有必

MENGHUANBEIKE的专栏 1万+

SMR实战指南:从GWAS数据到eQTL分析的完整流程

本文提供了基于汇总数据的孟德尔随机化(SMR)实战指南,详细解析了如何从GWAS汇总数据出发,整合eQTL数据,完成从数据准备、BESD格式转换到最终SMR与HEIDI分析的完整流程。文章重点阐述了核心操作步骤、常见避坑技巧与结果解读,旨在帮助遗传学研究者高效掌握这一分析基因表达与复杂性状潜在因果关系的强大工具。

weixin_29246195的博客 1065

CC2530发射功率及其设置

前言:朱杰师兄实验中获取的是接收信号强度,发射强度由硬件及程序本身确定,并不在数据包中,实验要求获取发射功率作为事件的初始强度(非事件节点获取的的为该事件受影响强度),另外发射功率决定了传输距离,以后可能会用到,所以搜集了有关CC2530发射功率的资料。 CC2530发射功率可编程范围:4.5dBm~-27.5dBm,Z-Stack可设置范围:-22dBm~+3dBm,发射功率和设置值的对应关系

LS的博客 6963

Flowable任务节点动态预测:基于任务ID与参数获取下一节点及候选分配策略

本文深入探讨了Flowable工作流引擎中任务节点动态预测功能的实现。通过解析任务ID与运行时参数,模拟流程执行路径,精准预测下一节点及候选用户/组集合,从而提升用户体验与系统透明度。核心在于利用自定义命令实现表达式求值,并深度解析候选者分配策略,确保预测结果与实际流程执行一致。

nnn11的博客 737

Inception-Resnet-v1、Inception-Resnet-v2学习笔记(附Pytorch代码)_inception-resnet-v1 代码

Reduction-B模块:输入8*8*1792,输出8*8*1792.IR-B模块*10:输入17*17*896,输出17*17*896.IR-A模块*5:输入35*35*256,输出35*35*256.IR-A模块*5:输入35*35*384,输出35*35*256.IR-B模块*10:输入17*17*896,输出8*8*1792.IR-C模块*5:输入8*8*1792,输出8*8*1792.IR-C模块*5:输入8*8*1792,输出8*8*1792.

2401_89285791的博客 470

CC2530发射功率及其设置 zstack修改发射功率

http://qshanbao.blog.ustc.edu.cn/?p=479 CC2530发射功率可编程范围:4.5dBm~-27.5dBm,Z-Stack可设置范围:-22dBm~+3dBm,发射功率和设置值的对应关系在工程文件mac\low_level下的mac_radio_defs.c中的 const uint8 CODE macRadioDefsTxPwrBare[]中定义,该常量

qq_25022433的专栏 4659

CODESYS做Modbus TCP主站踩坑记:从IP配置到数据映射的完整避坑指南

本文详细记录了在CODESYS中配置Modbus TCP主站的全过程,从IP配置到数据映射的常见问题及解决方案。重点解析了网络适配器选择、Slave ID误解、地址偏移陷阱等关键问题,并提供了实用的调试技巧和性能优化建议,帮助工业通信开发者高效避坑。

weixin_30642561的博客 624

Channel、PANID、发射功率及其它参数

现对z-stack里几个网络参数的设置以及如何获取总结一下。 信道配置: Zigbee在3个频段定义了27个物理信道:868MHz频段中定义了1个信道,915MHz频段中定义了2个信道,信道间隔为2MHz,2.4GHz频段上定义了16个信道,信道间隔为5MHz. 信道编号 中心频率/MHz

angle0615303的专栏 1646

Unity零基础到进阶 | Unity 探针系统深度解析:光照探针、反射探针与相关技术

在 Unity 渲染管线中,探针(Probe) 是一类通过预计算或实时采样来捕捉空间光照信息的核心组件。它们弥补了传统静态光照贴图和实时光源各自的局限性,是实现高质量、高性能全局光照效果的关键工具。 本文将系统介绍光照探针(Light Probe)和反射探针(Reflection Probe)的作用与用法,分析二者之间的协同关系,并延伸介绍自适应探针体积(APV)、光照探针代理体(LPPV)、探针体积等进阶技术。

努力前行,总会成为自己心中的那道光 1万+

matlab之作图设置游标的精度

matlab画出的figure游标的精度往往是固定的,这就对我们的调试和查看数据造成了不便。 那么怎么修改游标的精度呢? 首先,获取游标dcm_obj = datacursormode(gcf);然后对游标的精度进行设置:set(dcm_obj,'UpdateFcn',@NewCallback)这个NewCallback是什么东西呢?这是一个可以返回游标精度的函数,具体内容如下:function

落日之城 8957

Zigbee 设置信道,PANID,发射功率现对z-stack里几个网络参数的设置以及如何获取总结一下。

Zigbee 设置信道,PANID,发射功率现对z-stack里几个网络参数的设置以及如何获取总结一下。 信道配置: Zigbee在3个频段定义了27个物理信道:868MHz频段中定义了1个信道,915MHz频段中定义了2个信道,信道间隔为2MHz,2.4GHz频段上定义了16个信道,信道间隔为5MHz. 信道编号 中心频率/MH

似水流年的专栏 6218

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Channel、PANID、发射功率及其它参数(转)

现对z-stack里几个网络参数的设置以及如何获取总结一下。 信道配置: Zigbee在3个频段定义了27个物理信道:868MHz频段中定义了1个信道,915MHz频段中定义了2个信道,信道间隔为2MHz,2.4GHz频段上定义了16个信道,信道间隔为5MHz. 信道编号 中心频

GDJGUAI的专栏 1341

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

zigbee发送功率设置及发送距离过短解决方案

转自http://hi.baidu.com/xiaoqiang08wan/item/170106dda2b057fd93a974a5 在z-stack 2.4中,修改发射功率的方法和老版本已经不一样了。修改发射功率的方法如下:打开mac_radio_defs.h,找到文件最后面的这段代码:/* ———————————————————————————————— * Transmit Power Set

zzz1014440164的博客 2778

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

zigbee学习笔记---Channel、PANID、发射功率及其它参数

现对z-stack里几个网络参数的设置以及如何获取总结一下。 信道配置: Zigbee在3个频段定义了27个物理信道:868MHz频段中定义了1个20Kb/s信道,915MHz频段中定义了10个40Kb/s信道,信道间隔为2MHz,2.4GHz频段上定义了16个250Kb/s信道,信道间隔为5MHz. 信道编号 中心频率/MHz  

xiaoaide01的专栏 1223

zstack协议栈之---组网距离-发射功率,接收灵敏度设置

组网距离的问题在z-stack 2.4中,修改发射功率的方法和老版本已经不一样了。修改发射功率的方法如下:打开mac_radio_defs.h,找到文件最后面的这段代码:/* ------------------------------------------------------------------------------------------------* Transmit Power

河北正定欢迎您-少占鱼 2218
上一篇: 如何使用ZStack——输出功率编程设置
下一篇: TI论坛上关于Z-Stack传输距离及功率的问题
獠
獠
博客等级 码龄16年 43粉丝 6原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值