微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > CC2538软件CRC触发错误响应中断问题

CC2538软件CRC触发错误响应中断问题

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

您好!我正在使用CC2538和contiki 3.0做收发包实验,使用默认的硬件CRC收发包没有问题,现在为了在数据包后面加入一点其他数据mydata,不得不改用软件CRC,可以收到数据包的内容,但是每次收包后都还会触发错误响应中断处理函数,然后把整个RF模块再初始化一遍。

 

软件CRC具体实现如下:

1. 初始化时候先将:

RFCORE_XREG_FRMCTRL0的第6位AUTOCRC设为0

 

2. 数据包准备:

//(1)前面先写入要发送的payload和后加的数据mydata,total_len长度为payload和mydata的长度之和

cc2538_write_FIFO_buf(payload, payload_len);

cc2538_write_FIFO_buf(mydata, mydata_len);

//(2)下面软件计算CRC值

unsigned short test_software_crc = crc16_data(payload, total_len + CHECKSUM_LEN, 0);

//(3)将软件CRC写入最后2字节checksum中

cc2538_write_FIFO_buf(&test_software_crc, CHECKSUM_LEN);

 

每次收包RFCORE_SFR_RFERRF寄存器中读到的2组错误信息:

RF Error: 0x00000004

RF Error: 0x00000002

应该分别对应第2位RXOVERF和第1位RXABO。每次收包都会有这样的错误,然后初始化RF模块。

 

试着在RF初始化的时候将RFCORE_XREG_FRMFILT0寄存器最低位Frame Filtering使能位设为0。但还是会触发上述的错误。这是为什么呢?

望不吝赐教,感谢!

每次可以收到我想要的东西,但同时会触发错误响应中断处理函数,实在是很困惑。

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

网站地图

Top