📄 cc2500发射程序.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0071)http://www.rfidworld.com.cn/bbs/htmltopic/rfidworld_bbs_topic_5091.html -->
<HTML><HEAD><TITLE>cc2500发射程序</TITLE><LINK href="../favicon.ico"
rel="Shortcut Icon"><LINK href="../favicon.ico" rel=Bookmark><LINK
href="cc2500发射程序.files/bbs_style.css" type=text/css rel=stylesheet>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE>H1 {
FONT-WEIGHT: bold; FONT-SIZE: 16px; MARGIN: 0px 0.2em 0em 0em; COLOR: #0000ff; TEXT-DECORATION: none
}
</STYLE>
<META content="MSHTML 6.00.2900.3314" name=GENERATOR></HEAD>
<BODY style="WIDTH: 98%"><BR>
<TABLE class=table_bg_blue cellSpacing=1 cellPadding=3 border=0>
<TBODY>
<TR>
<TD bgColor=#e4e8ef height=30>
<H1>cc2500发射程序</H1> 作者:konghui127 发表时间:2007-3-27
20:59:36</TD></TR>
<TR>
<TD vAlign=top bgColor=#ffffff
height=80>我在进行CC2500发送调试时,发现CC2500发射模块进入发射模式,数据也写入缓冲区TXFIFO,但是并没有发送出去!这是怎么回事?<BR>void halRfSendPacket(BYTE *tx_buf, UINT8 size) <BR>{ <BR> BYTE temp;<BR> halSpiWriteBurstReg(CCxxx0_TXFIFO, tx_buf, size);<BR> temp = halSpiReadStatus(CCxxx0_TXBYTES);//读取缓冲区里的数据 <BR> TI = 0; //注:在测试中读取的值为0x0B,说明写入<BR> SBUF = temp; //的数据为11个,与tx_buf[]的长度一致,<BR> while(!TI); //说明数据有写入 <BR> halSpiStrobe(CCxxx0_STX); <BR> //temp = halSpiReadtxStatus(); //显示状态,检测程序运行 <BR> //TI = 0; //注:在串口调试助手上显示0x2F,说明处于发送模<BR> //SBUF = temp; //式,TX_FIFO缓冲区内容没有超过限制的大小<BR> //while(!TI);<BR> while (!GDO0); //等待GDO0被置位,同步发送 (注:测试时程序一直<BR> //在这里等待)<BR> //GDO0没置位,说明没有发送出去!! <BR> while (GDO0); //等待GDO0被清0,发送完毕 <BR>}<BR>请问CC2500数据发送要进行什么样的设置?把数据写入TXFIFO,然后设置为发送模式不是会自动发送?<BR><BR></TD></TR>
<TR>
<TD align=left bgColor=#f0f0f0 height=22> <B>作者 smartruan 于 2007-3-28
9:21:31 回复说:</B></TD></TR>
<TR>
<TD vAlign=top bgColor=#ffffff height=60>好啊。</TD></TR>
<TR>
<TD align=left bgColor=#f0f0f0 height=22> <B>作者 鹊桥老仙 于 2007-3-30
16:35:16 回复说:</B></TD></TR>
<TR>
<TD vAlign=top bgColor=#ffffff
height=60>初始化时,寄存器IOCFG0 送 06, 设置GDO0在发送时有电平变化.</TD></TR>
<TR>
<TD align=left bgColor=#f0f0f0 height=22> <B>作者 konghui127 于 2007-4-4
10:38:31 回复说:</B></TD></TR>
<TR>
<TD vAlign=top bgColor=#ffffff
height=60>谢谢,鹊桥老仙的回答,我已经在初始化时将IOCFG0设置成0x06了,可就是不行!其他设置会不会有影响,从而将发送给"锁死"没办法发送出去?</TD></TR>
<TR>
<TD align=left bgColor=#f0f0f0 height=22> <B>作者 goldrt 于 2007-4-4
17:09:31 回复说:</B></TD></TR>
<TR>
<TD vAlign=top bgColor=#ffffff
height=60>我也出现了这样的问题,但我已经验证了软件没有问题。我是用另外一块厂家提供的射频板来调试是可以正常收发,但是换成我的射频就不行了。<BR>硬件跟厂家的电路设计是一样的。不知道这个芯片对焊接温度有什么要求,或者这个芯片的质量如何,因为我手头的样片已经用完了,也没办法往下试。<BR>楼主可以降低焊接温度,并保证焊接可靠。试试看!</TD></TR>
<TR>
<TD align=left bgColor=#f0f0f0 height=22> <B>作者 konghui127 于 2007-4-4
23:05:06 回复说:</B></TD></TR>
<TR>
<TD vAlign=top bgColor=#ffffff
height=60> 谢谢您的指导,我的应该不是焊接的问题!我用的CC2500模块在开发板上可以,在自己的电路上不行,所以问题肯定出在程序上,只是我不知道错在哪里,明天到公司把完整的程序贴上来,麻烦各位有兴趣的,有空的帮忙看下!!</TD></TR>
<TR>
<TD align=left bgColor=#f0f0f0 height=22> <B>作者 konghui127 于 2007-4-6
14:46:26 回复说:</B></TD></TR>
<TR>
<TD vAlign=top bgColor=#ffffff
height=60>测试程序如下:<BR>void main(void)<BR>{<BR> uchar i;<BR> uchar temp;<BR><BR> spi_io_init();<BR> UART_Init();<BR><BR> for(i=0; i<5; i++) //程序开始,LED闪烁5次<BR> {<BR> LED = 1;<BR> Delayms(10);<BR> LED = 0;<BR> Delayms(10);<BR> }<BR><BR> halSpiStrobe(CCxxx0_SRES); //复位CC2500<BR> halRfWriteRfSettings(&rfSettings); //写配置字,设置CC2500<BR> halSpiWriteReg(CCxxx0_PATABLE, paTable); //设置功率<BR> <BR> temp = 0xaa; //发送数据0xaa和0x55显示,表示配置完成 <BR> TI = 0;<BR> SBUF = temp;<BR> while(!TI);<BR> temp = 0x55;<BR> TI = 0;<BR> SBUF = temp;<BR> while(!TI);<BR><BR> while(1)<BR> { <BR> if(KEY == 0) //CC2500间通信测试开始,判断按键是否按下<BR> {//发送数据包测试<BR> Delayms(10); //去抖延时<BR> spi_io_init(); //初始化SPI接口和IO口设置<BR> while(KEY == 0); //等待按键松开<BR> LED = 1; //LED暗,表明进入测试程序<BR> Delayms(10); //延时<BR><BR> halRfSendPacket(tx_buf, sizeof(tx_buf));//发送数据包<BR> LED = 0; //发送完毕,灯亮<BR> } <BR> }<BR> }</TD></TR>
<TR>
<TD align=left bgColor=#f0f0f0 height=22> <B>作者 konghui127 于 2007-4-6
14:49:42 回复说:</B></TD></TR>
<TR>
<TD vAlign=top bgColor=#ffffff
height=60>GDOx的配置如下:<BR><BR> 0x0B, // IOCFG2 <BR> 0x06, // IOCFG0 <BR> 0x04, // PKTCTRL1 <BR> 0x05, // PKTCTRL0 <BR> 0x00, // ADDR <BR> 0xFF // PKTLEN </TD></TR>
<TR>
<TD align=left bgColor=#f0f0f0 height=22> <B>作者 黑马 于 2007-4-16
0:11:16 回复说:</B></TD></TR>
<TR>
<TD vAlign=top bgColor=#ffffff
height=60>楼上请教一个问题,smartrf studio 这个仿真软件,你用的熟悉吗.我想探讨一下这个仿真软件</TD></TR>
<TR>
<TD align=left bgColor=#f0f0f0 height=22> <B>作者 konghui127 于
2007-4-16 21:32:23 回复说:</B></TD></TR>
<TR>
<TD vAlign=top bgColor=#ffffff height=60>这个软件我也不是很熟,刚接触,只是参照着说明来操作的!</TD></TR>
<TR>
<TD align=left bgColor=#f0f0f0 height=22> <B>作者 bluesky0318 于
2007-4-24 17:51:16 回复说:</B></TD></TR>
<TR>
<TD vAlign=top bgColor=#ffffff
height=60>我也在写CC2500+MSP430的应用程序,如果有朋友有兴趣可以加群32781785,我们共同讨论</TD></TR>
<TR>
<TD align=left bgColor=#f0f0f0 height=22> <B>作者 beschen 于 2007-6-12
11:36:22 回复说:</B></TD></TR>
<TR>
<TD vAlign=top bgColor=#ffffff
height=60>我们可以提供CC2500的测试板 和 CC2500的模块, 大量是,其单价和芯片价格一样。<BR><BR>我们也可以提供CC2500的测试程序。<BR><BR><A
href="http://www.mcurf.com/" target=_blank><FONT
color=blue><U>www.mcurf.com</U></FONT></A> 了解更多<BR><BR>下面是 SPI 的程序<BR><BR>#define SPI_WR_PRO_<BR>#include <BR>#include "spi_wr.h"<BR>#include "regssrf04.h"<BR>#include "IO.H"<BR><BR>void SPI_WAIT() <BR>{ <BR>unsigned char i;<BR> for (i=0; i<10; i++);<BR>}<BR><BR>void OpenSpi()<BR>{<BR> Spi_Clk =0;<BR> Spi_Si =0;<BR> Spi_Csn =0;<BR> while (Spi_So);<BR>}<BR><BR>void CloseSpi()<BR>{<BR> Spi_Csn =1;<BR>}<BR><BR>void WriteByte(unsigned char Data)<BR>{<BR><BR>unsigned char i;<BR><BR><BR> for (i=0; i<8; i++)<BR> {<BR> if (Data&0x80)<BR> Spi_Si=1;<BR> else<BR> Spi_Si=0;<BR> _nop_();<BR> _nop_();<BR> _nop_();<BR> <BR> Spi_Clk=1;<BR> _nop_();<BR> _nop_();<BR> _nop_();<BR> _nop_();<BR> Spi_Clk=0;<BR><BR> Data<<=1;<BR> }<BR>}<BR><BR><BR><BR><BR>unsigned char ReadByte()<BR>{<BR><BR>unsigned char i;<BR>unsigned char Data;<BR><BR><BR> for (i=0; i<8; i++)<BR> {<BR><BR> Data<<=1;<BR> _nop_();<BR> _nop_();<BR><BR> Spi_Clk=1;<BR><BR> if (Spi_So)<BR> Data |= 0x01;<BR> else<BR> Data &= 0xfe;<BR> <BR> _nop_();<BR> _nop_();<BR> _nop_();<BR> _nop_();<BR><BR> Spi_Clk=0;<BR><BR> _nop_();<BR> _nop_();<BR> }<BR><BR> return Data;<BR>}<BR><BR><BR><BR><BR><BR><BR></TD></TR>
<TR>
<TD align=left bgColor=#f0f0f0 height=22> <B>作者 beschen 于 2007-6-12
11:38:56 回复说:</B></TD></TR>
<TR>
<TD vAlign=top bgColor=#ffffff
height=60>关于SMART Radio , 你可以用它来产生 CC2500 的寄存器配置值。 这样可以简化设计工作。</TD></TR>
<TR>
<TD align=left bgColor=#f0f0f0 height=22> <B>作者 zpc128 于 2007-6-21
17:50:34 回复说:</B></TD></TR>
<TR>
<TD vAlign=top bgColor=#ffffff
height=60>我在开发CC2500和CC1100时就用了SmartRF Studio调试软硬件,很好用的,我可以做出兼容chipcon的SmartRF 硬件,不知道有没人有兴趣?</TD></TR>
<TR>
<TD align=right><A
href="http://www.rfidworld.com.cn/bbs/disptopic.asp?boardid=29&topicid=5091"
target=_blank>查看原帖</A> </TD></TR></TBODY></TABLE><BR></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -