CC1101 关于SWOR的的几个理解

2019-07-18 14:10发布

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配置
}
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。