微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > CC2530如何手动发送确认帧

CC2530如何手动发送确认帧

时间:10-02 整理:3721RD 点击:

1、我这大约有100个终端,一个接收器。现在在测试的程序都没有开启ACK。发现有掉线的问题。

2、我的程序没跑协议栈,不组网,不找网,终端采集完数据直接发送,然后休眠。因为终端地址太多,我把主机的地址过滤关闭了。也就没法自动开启应答。所以想手动发送ACK帧,来保证数据发送不成功时,再次发送。

3、数据发送函数basicRfSendPacket(HOST_ADDR , pTxData, APP_PAYLOAD_LENGTH);数据接收函数:(basicRfReceive(pRxData, APP_PAYLOAD_LENGTH, NULL);

4、#define SACK()             st(RFST = 0xD6;),我想在接收的数据判断正确之后,通过执行SACK()发送一个确认帧,通过监听发现主机并没有发送确认帧。

不知何原因,还是有什么设置没做。

初始化函数:

// Enable  auto crc
FRMCTRL0 |= AUTO_CRC;
FRMFILT0 =0x0C; //关闭地址过滤
FRMFILT1 |=0x04; //定义未决数据位
SRCMATCH =0x0;
// Recommended RX settings
TXFILTCFG = 0x09;
AGCCTRL1 = 0x15;
FSCAL1 = 0x00;

不组网,推荐用TI-MAC, 这种节点比较多的情况,你需要考虑的不仅是回ack,还有退避,冲突检测等。TIMAC可以帮你处理好这些。

http://www.ti.com/tool/timac?keyMatch=ti%20mac&tisearch=Search-EN-Everything

非常感谢!我试一下 。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top