CC2530调试过程中遇到的问题们
2013-07-21 20:49
99 查看
应用场景描述:
多个发送端在不同的信道上发送信息(11~26)信道,接收端轮询所有信道(11~26),若有信号,则接收,若无信号则继续轮询。形成多个点对点的收发系统。
Zigbee接收端轮询信道,当发送端正常时
实验一:1.若发送端由A信道发,可正确接收;2.若发送端由A+4信道发,则不可正确接收。
实验二:1.若发送端由A信道发,可正确接收;2若发送端由A+2信道发,可正确接收;.3.若发送端由A+4信道发,可正确接收;
以上现象经确认与发送端无关,且接收端硬件复位无用。
Ø 问题分析
1.经过在接收中断中加入LED灯闪,发现切换信道后没有收到信息的原因是压根没有进入接收中断。
2.没有进入中断,说明在从天线接下信号后的处理中,没有正确分辨出信号。且切换信道主要是切换接收频率。所以问题可能频率有关。
3.点对点的情况下不会出现该问题。
4.在CC2530_userguide中找到frequency calibration相关的寄存器RFST的ISRXON指令。(在代码中为由light_switch.c调用的basicRfReceiveOn()。)其作用Enable and calibrate frequency synthesizerfor RX。所以加入basicRfReceiveOn()与basicRfReceiveOff(),便解决问题。
Zigbee发送正常,当加入了basicRfReceiveOn()后,可以接收到所有信道信息,但是个别信道上信息会发生错误。
Ø 问题分析
1.改为点对点,即接收端不轮询。因为加入了basicRfReceiveOn(),同样也会出现问题,所以问题是由basicRfReceiveOn()引起的,而非轮询等。
2.考虑到basicRfReceiveOn()有校正频偏的作用,所以需要一定的时间,加入Delay问题解决。
Zigbee接收端运行一段时间会接收不到数据,经在中断中加入LED灯闪和在接收while中加入打印,确定程序在运行,但没有收到数据。
Ø 问题分析
1.发送端连续发送数据55 55 BB BB BB BB BB BB BB BB BB BB BB BB BB AA AA。
通过MATLAB仿真Zigbee调制,确定问题为发送序列过于有规律的问题。
View Code
多个发送端在不同的信道上发送信息(11~26)信道,接收端轮询所有信道(11~26),若有信号,则接收,若无信号则继续轮询。形成多个点对点的收发系统。
一、问题1
Ø 问题现象描述:Zigbee接收端轮询信道,当发送端正常时
实验一:1.若发送端由A信道发,可正确接收;2.若发送端由A+4信道发,则不可正确接收。
实验二:1.若发送端由A信道发,可正确接收;2若发送端由A+2信道发,可正确接收;.3.若发送端由A+4信道发,可正确接收;
以上现象经确认与发送端无关,且接收端硬件复位无用。
Ø 问题分析
1.经过在接收中断中加入LED灯闪,发现切换信道后没有收到信息的原因是压根没有进入接收中断。
2.没有进入中断,说明在从天线接下信号后的处理中,没有正确分辨出信号。且切换信道主要是切换接收频率。所以问题可能频率有关。
3.点对点的情况下不会出现该问题。
4.在CC2530_userguide中找到frequency calibration相关的寄存器RFST的ISRXON指令。(在代码中为由light_switch.c调用的basicRfReceiveOn()。)其作用Enable and calibrate frequency synthesizerfor RX。所以加入basicRfReceiveOn()与basicRfReceiveOff(),便解决问题。
二、问题2
Ø 问题现象描述:Zigbee发送正常,当加入了basicRfReceiveOn()后,可以接收到所有信道信息,但是个别信道上信息会发生错误。
Ø 问题分析
1.改为点对点,即接收端不轮询。因为加入了basicRfReceiveOn(),同样也会出现问题,所以问题是由basicRfReceiveOn()引起的,而非轮询等。
2.考虑到basicRfReceiveOn()有校正频偏的作用,所以需要一定的时间,加入Delay问题解决。
三、问题3
Ø 问题现象描述:Zigbee接收端运行一段时间会接收不到数据,经在中断中加入LED灯闪和在接收while中加入打印,确定程序在运行,但没有收到数据。
Ø 问题分析
1.发送端连续发送数据55 55 BB BB BB BB BB BB BB BB BB BB BB BB BB AA AA。
通过MATLAB仿真Zigbee调制,确定问题为发送序列过于有规律的问题。
clear all % close all D=[]; Data=[]; % data_hex='5555CCCCCCCCCCCCCCCCCCCCCCCCCCAAAA'; % data_hex='5555BBBBBBBBBBBBBBBBBBBBBBBBBBAAAA'; data_hex='51555086F61C3CA2F7C71A4B4C046ADAAAA'; data_map=[ '11011001110000110101001000101110'; '11101101100111000011010100100010'; '00101110110110011100001101010010'; '00100010111011011001110000110101'; '01010010001011101101100111000011'; '00110101001000101110110110011100'; '11000011010100100010111011011001'; '10011100001101010010001011101101'; '10001100100101100000011101111011'; '10111000110010010110000001110111'; '01111011100011001001011000000111'; '01110111101110001100100101100000'; '00000111011110111000110010010110'; '01100000011101111011100011001001'; '10010110000001110111101110001100'; '11001001011000000111011110111000']; for i=1:length(data_hex) tmp=hex2dec(data_hex(i)); Data=[Data data_map(tmp+1,:)]; end for i=1:2:length(Data) t=[Data(i) Data(i+1)]; T2=bin2dec(t); D=[D repmat(T2,1,fs/fb)]; end modObj = modem.oqpskmod; M1=modulate(modObj,D'); M=M1(3:length(M1)); N1=0:length(M)/2-1; N2=-length(M)/2:-1; N=[N1,N2]; figure,plot(N,abs(fft(M))); figure,plot(real(M),imag(M),'*');
View Code
相关文章推荐
- Ext调试过程中遇到错误代码:0x80070057
- STM32调试过程中遇到BIN文件生成问题记录
- Web开发基础--WebService调试过程中遇到的几个问题
- RHEL6安装调试过程中遇到的问题集
- keil调试过程中遇到Reprogramming flash
- silverlight调试过程中遇到的问题总结
- QT+opencv+摄像头调试过程中遇到的问题
- 调试代码过程中遇到的问题
- keil调试过程中遇到Reprogramming flash
- 使用Android Studio调试UiAutomator过程中遇到的问题
- 个人在iOS开发过程中真机调试遇到的问题及解决方法
- 记一次(IDA+实机)附加调试Android原生库过程中遇到的问题
- mysql调试源码过程中遇到的调试问题
- VS调试过程中遇到的Bug集锦
- 代码调试过程中easy遇到的问题
- MyEclipse调试过程中遇到一个奇怪的问题
- 我调试mini2440 qq2440 过程中遇到的问题和解决方法
- Kolakoski序列生成遇到的问题及调试过程
- 调试MOST SSO中遇到的问题的解决过程
- show and tell 代码调试过程遇到的问题及解决