6232|9

74

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

怎么知道cc1100的数据已经发送成功? [复制链接]

我用MSP430的spi口控制cc1100。数据已经写到spi口的缓冲区内。请问怎么知道数据应经通过cc1100发送出去?
void main(void)
{
  INT8U  txBuffer[4];                           // declear a send buffer and init
  *txBuffer=0x11;
  *(txBuffer+1)=0xaa;
  *(txBuffer+2)=0xdd;
  *(txBuffer+3)=0x33;
  
  INT8U value;                                // get the status of the buffer
  INT8U rxBuffer[4]={0,0,0,0};                // declear a receive buffer
  INT8U length;
  WDTCTL = WDTPW + WDTHOLD;                   // Stop WDT
  Init_Spi();                                 // config spi
  Power_Up_Reset_Cc1100();
  Write_Rf_Settings();
  
  Send_Packet(txBuffer,sizeof(txBuffer));     // send the packet
  另Send_Packet代码:
void Send_Packet(BYTE *txBuffer, INT8U size)
{
    Write_Spi_Reg(CCxxx0_TXFIFO, size);
    Burst_Write_SPI_Reg(CCxxx0_TXFIFO, txBuffer, size);        // write the data to be send
    Spi_Strobe(CCxxx0_STX);                                // enter send mode and send data
   
    while (!GDO0);                                       // Wait for GDO0 to be set -> sync transmitted
   
    while (GDO0);                                      // Wait for GDO0 to be cleared -> end of packet
    Spi_Strobe(CCxxx0_SFTX);                            // Clear the send buffer
}
ps:GDO0的状态好像不变,始终为低

最新回复

SPI协议简单,在板上短距离通信的优势还是很明显的  详情 回复 发表于 2010-6-2 09:57
点赞 关注

回复
举报

68

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
在一般速度的系统中,就是速度不高的情况下,你可以认为你启动发送之后就已发出,不过有很多主控是有发送完成标志位的,你去读一下,看标志立了没有。立了就成功,否则不成功。
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
有查看标志位,但是启动发送之后,标志位的状态保持为零,不变化。屏蔽
while (!GDO0); // Wait for GDO0 to be set -> sync transmitted
   
while (GDO0); // Wait for GDO0 to be cleared -> end of packet
这两句后,读取cc1100发送缓冲区中的字节数,仍然不变化,是否可以认为没有发送?
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

4
 
www.newmsg.com
有射频信号检测仪卖
http://www.newmsg.com/Product/NewMsg_RFSpy100.asp
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用 2 楼 yuanzaikang11 的回复:
有查看标志位,但是启动发送之后,标志位的状态保持为零,不变化。屏蔽
while (!GDO0); // Wait for GDO0 to be set -> sync transmitted
   
while (GDO0); // Wait for GDO0 to be cleared -> end of packet
这两句后,读取cc1100发送缓冲区中的字节数,仍然不变化,是否可以……


读取cc1100发送缓冲区中的字节数 无变化,这是正常的,cc1100把发送缓冲区中的数据,通过D/A,调制,发送出去,所以发送缓冲区中的字节数 无变化是正常的。

GDO0 这个引脚,建议你看看CC1100的手册,看看上面对这个引脚的时序是如何描述的。
GDO0的状态好像不变,始终为低,是用示波器看的吗?因为你的程序只执行了一遍发送程序,所以这个引脚的状态用示波器很难看到,建议你的定时发送,这样这个引脚的状态到底是什么样的,用示波器观察会容易一些。

 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(初级)

6
 
这个,大概就是厂家提供的库吧?

之前我用过,没有问题

要不你看一下IO连接有没有问题,

另外,还可以从CC1100中把状态读出来,看芯片现在是处于什么状态了,这样比IO更准确实用
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

7
 
还有就是我把GDO2设置为芯片CHIP_RDY,但是这个引脚好像始终为低。PS:怎么读取芯片现在的状态啊?
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

8
 
也通过SPI口

它有读寄存器的指令吧?

就把状态寄存器的给读出来就OK
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

9
 
SPI比较恶心。没有ACK,所以一般只能从返回的数据判断是否发送正确了。再次发送之前确认ready位,其实只是确定了这边有没有发送,但是并没有确定接收端到底有没有收到。
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

10
 
引用 8 楼 kacyquan 的回复:

SPI比较恶心。没有ACK,所以一般只能从返回的数据判断是否发送正确了。再次发送之前确认ready位,其实只是确定了这边有没有发送,但是并没有确定接收端到底有没有收到。


SPI协议简单,在板上短距离通信的优势还是很明显的
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表