我最近调试了24l01+和CC1101都会有死机的问题

[复制链接]
7413|13
 楼主| 相信哥咯 发表于 2012-7-17 13:25 | 显示全部楼层 |阅读模式
多个从机向主机发,感觉好像是中断没处理好。为什么呢。收发一段时间后就收不到数据。
 楼主| 相信哥咯 发表于 2012-7-17 16:45 | 显示全部楼层
这些参数怎么配置才是最优啊,

波特率,频道频率什么的。
  1. CC1101_W_Config_Reg(CC1101_IOCFG2,0x01);         /*接收*/
  2.           CC1101_W_Config_Reg(CC1101_IOCFG1,0x2e);
  3.           CC1101_W_Config_Reg(CC1101_IOCFG0,0x06);        /*发送指示用*/
  4.           CC1101_W_Config_Reg(CC1101_FIFOTHR,0x47);          /*fifo界限*/
  5.           CC1101_W_Config_Reg(CC1101_SYNC1,0xd3);
  6.           CC1101_W_Config_Reg(CC1101_SYNC0,0x91);
  7.           CC1101_W_Config_Reg(CC1101_PKTLEN,0x11); /*包长度*/
  8.           CC1101_W_Config_Reg(CC1101_PKTCTRL1,0x05); /*地址检查 RSSI and LQI使能*/
  9.           CC1101_W_Config_Reg(CC1101_PKTCTRL0,0x04); /*CRC使能,固定长度*/
  10.           CC1101_W_Config_Reg(CC1101_ADDR,0xff);         /*本身地址*/
  11.           CC1101_W_Config_Reg(CC1101_CHANNR,0x00);         /*频道*/
  12.           CC1101_W_Config_Reg(CC1101_FSCTRL1,0x06);
  13.           CC1101_W_Config_Reg(CC1101_FSCTRL0,0x00);

  14.           CC1101_W_Config_Reg(CC1101_FREQ2,0x10);
  15.           CC1101_W_Config_Reg(CC1101_FREQ1,0xa7);           /*载波频率*/
  16.           CC1101_W_Config_Reg(CC1101_FREQ0,0x62);

  17.           CC1101_W_Config_Reg(CC1101_MDMCFG4,0xc9);
  18.           CC1101_W_Config_Reg(CC1101_MDMCFG3,0x93);         /*频道宽度速率调制模式曼彻斯特使能同步字频道间隔 */
  19.           CC1101_W_Config_Reg(CC1101_MDMCFG2,0x13);
  20.           CC1101_W_Config_Reg(CC1101_MDMCFG1,0x22);       
  21.           CC1101_W_Config_Reg(CC1101_MDMCFG0,0xf8);

  22.           CC1101_W_Config_Reg(CC1101_DEVIATN,0x34);
  23.           CC1101_W_Config_Reg(CC1101_MCSM2,0x07);       
  24.           CC1101_W_Config_Reg(CC1101_MCSM1,0x3c);        /*发送接收完后状态, 发送后进入空闲,*/
  25.           CC1101_W_Config_Reg(CC1101_MCSM0,0x18);
  26.           CC1101_W_Config_Reg(CC1101_FOCCFG,0x16);
  27.           CC1101_W_Config_Reg(CC1101_BSCFG,0x6c);
  28.           CC1101_W_Config_Reg(CC1101_AGCCTRL2,0x43);
  29.           CC1101_W_Config_Reg(CC1101_AGCCTRL1,0x40);
  30.           CC1101_W_Config_Reg(CC1101_AGCCTRL0,0x91);
  31.           CC1101_W_Config_Reg(CC1101_WOREVT1,0x0a);
  32.           CC1101_W_Config_Reg(CC1101_WOREVT0,0x94);
  33.           CC1101_W_Config_Reg(CC1101_WORCTRL,0x31);
  34.           CC1101_W_Config_Reg(CC1101_FREND1,0x56);
  35.           CC1101_W_Config_Reg(CC1101_FREND0,0x10);
  36.           CC1101_W_Config_Reg(CC1101_FSCAL3,0xe9);
  37.           CC1101_W_Config_Reg(CC1101_FSCAL2,0x2a);
  38.           CC1101_W_Config_Reg(CC1101_FSCAL1,0x00);
  39.           CC1101_W_Config_Reg(CC1101_FSCAL0,0x1f);


  40.           /**/
  41.           CC1101_W_Config_Reg(CC1101_RCCTRL1,0x41);
  42.           CC1101_W_Config_Reg(CC1101_RCCTRL0,0x00);
  43.           CC1101_W_Config_Reg(CC1101_FSTEST,0x59);
  44.           CC1101_W_Config_Reg(CC1101_PTEST,0x7f);
  45.           CC1101_W_Config_Reg(CC1101_AGCTEST,0x3f);
  46.           CC1101_W_Config_Reg(CC1101_TEST2,0x81);
  47.           CC1101_W_Config_Reg(CC1101_TEST1,0x35);
  48.           CC1101_W_Config_Reg(CC1101_TEST0,0x09);
 楼主| 相信哥咯 发表于 2012-7-28 00:33 | 显示全部楼层
不死机了
tramp1986 发表于 2012-7-29 18:19 | 显示全部楼层
你怎么解决的?贴出来让大家看看。
tramp1986 发表于 2012-7-29 18:20 | 显示全部楼层
你怎么解决的?贴出来让大家看看。
tramp1986 发表于 2012-7-29 18:20 | 显示全部楼层
你怎么解决的?贴出来让大家看看。
 楼主| 相信哥咯 发表于 2012-8-5 01:05 | 显示全部楼层
6# tramp1986

程序没处理好,好好处理下可能死机的地方就行了
wumingxuke 发表于 2013-7-27 15:09 | 显示全部楼层
楼主,你是怎么处理的?中断部分吗?我也遇到这种情况的~求指导!!!
dota_yy 发表于 2013-10-18 09:50 | 显示全部楼层
接收一段时间后,必须重启才能再接收,感觉应该是主机状态控制的问题
RX_time超时了
么么沫沫 发表于 2013-10-18 10:15 | 显示全部楼层
lcpcsky 发表于 2014-4-11 01:07 | 显示全部楼层
dota_yy 发表于 2013-10-18 09:50
接收一段时间后,必须重启才能再接收,感觉应该是主机状态控制的问题
RX_time超时了 ...

我也遇到了,接受一段时间后就卡死
cc1101_write_strobe(CCxxx0_SRX);                //进入接收状态
上面这句执行完毕后,正常要等待GDO0变低,再继续读取,但GDO0却一直为高,就此卡死。我目前的处理是检测到GDO0超过100ms不变低,就初始化模块,一切重来。另外做了个计数器,死一次就加1

这个问题困扰了很久,试过死掉的时候用cc1101_read_status(CCxxx0_MARCSTATE) & 0x1f读取状态、重新进入接收模式等等都无果。目前这样算是暂时稳定的解决了,测试过连续工作10天OK,死机计数器每天都记录到5~10次死掉重来的……
FAQ 发表于 2014-5-9 08:40 来自手机 | 显示全部楼层
lcpcsky 发表于 2014-4-11 01:07
我也遇到了,接受一段时间后就卡死
cc1101_write_strobe(CCxxx0_SRX);                //进入接收状态
上面这句执行完毕 ...

我也遇到死机现象,怀疑是人手触摸住芯片引起的
fly60000 发表于 2014-5-9 10:22 | 显示全部楼层
小文渊 发表于 2017-4-7 16:37 | 显示全部楼层
FAQ 发表于 2014-5-9 08:40
我也遇到死机现象,怀疑是人手触摸住芯片引起的

你解决了吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

926

帖子

1

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