物联网技术
直播中

fdjslkjd

8年用户 1088经验值
擅长:光电显示
私信 关注
[问答]

CC1101 关于SWOR的的几个理解

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

回帖(4)

h1654155273.0656

2016-4-7 15:25:00
受到警告
提示: 作者被禁止或删除 内容自动屏蔽
举报

无线先森

2016-12-8 11:44:25
CC1101RGPR   SX1276  芯片  SX1278 芯片  SI4463  SI4432   STM8L151K4T6     TI :CC2530F256RHAR   CC2591RGVR  CC1101RGPR   CC2541F256RHAR   CC2540F256RHAR    CC2500  CC2592  CC2640  芯片现货优势供应   一手货源   QQ2668362805
举报

silicontra521

2017-7-24 15:11:07
受到警告
提示: 作者被禁止或删除 内容自动屏蔽
举报

DK_Knight

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

更多回帖

发帖
×
20
完善资料,
赚取积分