• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术讨论 > CC1101 关于SWOR的的几个理解

CC1101 关于SWOR的的几个理解

录入:edatop.com     点击:

CC1101 关于SWOR的的几个理解


现在我有几个问题需解决
1、CC1101使用手册中提到进入SWOR选通脉冲前启用RC振荡器,但我没有找到RC振荡器启用的地方?
2、WOR的流程是不是这样理解的:a、打开SWOR,之后会休眠;b、休眠时间结束,醒来之后判断是否有数据,没有继续休眠。我想问一下b的这种状况是怎么继续休眠的?因为我的设备休眠醒来之后无法进入休眠,要继续休眠是否需要发送SWOR滤波命令?
3、在发送或者接收之后再回到休眠模式是自动还是需要手动发送SWOR呢?
以下是我的代码设置WOR
void CC1101_WOR_Init( uint8 EN_wor, uint16 t_100ms )//一个单位100ms
{
   uint16 time_Event0;
//time_Event0=t_100ms*3467;//WOR_RES=0的情况下
time_Event0=t_100ms*109;//WOR_RES=1的情况下
//-----------------------------------------------------------------
   halSpiStrobe(CCxxx0_SIDLE);
if(EN_wor)//使能WOR配置
{
  //-----------------------------------------------------------------
  // 设置RX溢出时间:Setting Rx_timeout > 225.0 ms.
  // MCSM2[2:0].RX_TIME = 000b
  // Rx_timeout = T_event0*12.505%=225ms  -- 12.505%(WOR_RES=0)  RX 占空比
  halSpiWriteReg(CCxxx0_MCSM2,0x08);
  //-----------------------------------------------------------------
  // RXOFF_MODE=00b (RX->IDLE: no FS calib: 0.1 us), TXOFF_MODE=00b (TX->IDLE, no FS calib: 0.1 us).
  halSpiWriteReg(CCxxx0_MCSM1,0x00);//RX和TX后都回到空闲状态
  //-----------------------------------------------------------------
  //MCSM0[5:4]FS_AUTOCAL=11b
  halSpiWriteReg(CCxxx0_MCSM0,0x38); //IDLE转到RX、TX自动校准;PO_TIMEOUT=150us
  //-----------------------------------------------------------------
  // 使能自动校准晶振
  // 设置事件1:WORCTRL[6:4]EVENT1 = 111b ;T_event1=1.4 ms
  // Enable RC oscillator before starting with WOR (or else it will not wake up).
  halSpiWriteReg(CCxxx0_WORCTRL,0x79);//WOR_RES[1:0]=01b
  //-----------------------------------------------------------------
  // 设置事件0溢出时间:Set Event0 timeout =  (RX polling interval)
  // 条件1:WOR_RES = 1
  // 条件2:EVENT0 =  
  // 条件3:Assuming f_xosc = 26 MHz
  // 公式:T_event0 = (750 / f_xosc) * EVENT0 * 2**(5*WOR_RES) =  ms  
  halSpiWriteReg(CCxxx0_WOREVT1,0xFF&(time_Event0>>8)); //高字节事件0 超时
  halSpiWriteReg(CCxxx0_WOREVT0,0xFF&(time_Event0));  //低字节事件0 超时
  //halSpiStrobe( CCxxx0_SWORRST );//复位实时时钟为事件1 值
  halSpiStrobe( CCxxx0_SWOR );//
}
else
{
  ;//不执行WOR配置
}
}

建议看下http://www.ti.com/lit/an/slaa459a/slaa459a.pdf
打开SWOR之后,周期性定时唤醒通过CS或者PQT方式嗅探空中是否有包,不需要MCU的干预,相当于芯片内部有个定时器
再次回到WOR需要再次手动发送SWOR

CC1101RGPR   SX1276  芯片  SX1278 芯片  SI4463  SI4432   STM8L151K4T6     TI :CC2530F256RHAR   CC2591RGVR  CC1101RGPR   CC2541F256RHAR   CC2540F256RHAR    CC2500  CC2592  CC2640  芯片现货优势供应   一手货源   QQ2668362805

cc1101国产直接替代,可联系我 13823261387黄工

国产替代CC1101、SI4432无线芯片HW3000
满足低功耗要求:极低的接受电流8mA,业内领先的20dBm输出功率
成本低:比CC1101、SI4432无线芯片有价格优势
传输距离可达到2Km@10kbps
www.silicontra.com

小编,您好,我现在做毕设用到WOR,我跟您的wor初始化设置差不多,自认为已经知道各个寄存器的配置了,双向通信已经实现了,可就是发送swor之后无法进入休眠,您看能不能指导我一点点,已经卡了很久了!

上一篇:NRF51822蓝牙
下一篇:CC2530的一些基本常识

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图