cc2500的跳频方法

[复制链接]
 楼主| 搞搞ARM 发表于 2007-2-6 10:25 | 显示全部楼层 |阅读模式
<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;请教cc2500的跳频方法,哪里有这样的资料或者能提供这方面的资料,<br />&nbsp;不胜感激.&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x9494@126.com
 楼主| 搞搞ARM 发表于 2007-2-6 14:43 | 显示全部楼层

不需要跳频还是采用定时跳频?

不需要跳频还是采用定时跳频?
木头东瓜 发表于 2007-2-6 14:48 | 显示全部楼层

需求都没说清楚

  
 楼主| 搞搞ARM 发表于 2007-2-6 14:53 | 显示全部楼层

就是用cc2500设计的无线通讯

就是用cc2500设计的无线通讯,主从都是用cc2500模块,第一次设计,&nbsp;听说通讯的时候需要进行跳频,否则可能效果不好.
chunyang 发表于 2007-2-6 16:04 | 显示全部楼层

是否跳频要根据需要定

频点是通过写寄存器实现的。
 楼主| 搞搞ARM 发表于 2007-2-7 13:12 | 显示全部楼层

CHANNR

&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;可不可以其他都用默认值,只改变寄存器0A(CHANNR)实现跳频?
zhuzi0624 发表于 2007-4-29 16:15 | 显示全部楼层

我也在做CC2500的跳频,大家一起讨论啊

我现在做CC2500的跳频设计,不过我这个跳频不需要在工作时跳频,只需要在开始的时候搜索到一个合适频段,接下来都在这个频段通信。<br />&nbsp;&nbsp;&nbsp;&nbsp;我现在面临的情况是:CC2500的主从端时间上同步的不是很好,主端发送的数据从端有时能收到,有时不能;而且从端在回发数据给主端的时候,主端根本收不到!<br />&nbsp;&nbsp;&nbsp;&nbsp;我用的MCU是C8051F330,下面是我的收发端主程序:<br />void&nbsp;main()//发送端程序<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;len;<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;k=20;<br />&nbsp;&nbsp;&nbsp;&nbsp;PCA0MD&nbsp;&=&nbsp;~0x40;<br />&nbsp;&nbsp;&nbsp;&nbsp;Init_Device();<br />&nbsp;&nbsp;&nbsp;&nbsp;SPI0CN&nbsp;|=&nbsp;0x01;&nbsp;&nbsp;&nbsp;&nbsp;//enable&nbsp;SPI<br />&nbsp;&nbsp;&nbsp;&nbsp;System_Delay(5000);<br />&nbsp;&nbsp;&nbsp;&nbsp;SetupCC2500();<br />&nbsp;&nbsp;&nbsp;&nbsp;System_Delay(512);<br />&nbsp;&nbsp;&nbsp;&nbsp;len=sizeof(txBuffer_CC2500);<br />&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;halSpiWriteReg(CC2500_FREQ2,&nbsp;f[0]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;halSpiWriteReg(CC2500_FREQ1,&nbsp;f[1]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;halSpiWriteReg(CC2500_FREQ0,&nbsp;f[2]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;halSpiStrobe(CC2500_SIDLE);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;txBuffer_CC2500[1]=i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;halRfSendPacket(txBuffer_CC2500,&nbsp;sizeof(txBuffer_CC2500));//试发送消息给接收端<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(halRfReceivePacket(rxBuffer_CC2500,len))break;//等到对方的回应,得到回应消息跳出<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((k--)==0)//k从20减到0换一个频段<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k=20;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(i&gt8)i=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P13=1;P14=0;//LED显示状态<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br />void&nbsp;main()//接收端主程序<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;len;<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i=0,n=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;k=180;<br />&nbsp;&nbsp;&nbsp;&nbsp;PCA0MD&nbsp;&=&nbsp;~0x40;<br />&nbsp;&nbsp;&nbsp;&nbsp;Init_Device();<br />&nbsp;&nbsp;&nbsp;&nbsp;SPI0CN&nbsp;|=&nbsp;0x01;&nbsp;&nbsp;&nbsp;&nbsp;//enable&nbsp;SPI<br />&nbsp;&nbsp;&nbsp;&nbsp;System_Delay(5000);<br />&nbsp;&nbsp;&nbsp;&nbsp;SetupCC2500();<br />&nbsp;&nbsp;&nbsp;&nbsp;System_Delay(512);<br />&nbsp;&nbsp;&nbsp;&nbsp;len=sizeof(rxBuffer_CC2500);<br />&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(halRfReceivePacket(rxBuffer_CC2500,len))//试接收来自对方的信号<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;halSpiWriteReg(CC2500_FREQ2,&nbsp;f[0]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;halSpiWriteReg(CC2500_FREQ1,&nbsp;f[1]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;halSpiWriteReg(CC2500_FREQ0,&nbsp;f[2]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;halSpiStrobe(CC2500_SIDLE);&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;txBuffer_CC2500[1]=rxBuffer_CC2500[1];//记住频段号<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;halRfSendPacket(txBuffer_CC2500,&nbsp;sizeof(txBuffer_CC2500));//发送回应消息,告诉对方就在该频段通信<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;//此时已搜索到频段,跳出,以后都工作在此频段<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((k--)&gt0)//k从180减到0换一个频段搜索<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k=180;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(i&gt8)i=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;for(n=0;n&ltlen;n++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;trdata[n]=rxBuffer_CC2500[n];&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Send_String(trdata,len);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//串口输出数据<br />&nbsp;&nbsp;&nbsp;&nbsp;System_Delay(512);<br />&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P13=1;P14=0;//LED显示状态<br />&nbsp;&nbsp;&nbsp;&nbsp;}//数据稍后再做处理<br />}<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

17

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

12

主题

17

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部