微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > cc1101使用进入Sleep模式后唤醒后接收不到数据?

cc1101使用进入Sleep模式后唤醒后接收不到数据?

时间:12-23 整理:3721RD 点击:

在CC1101进入sleep模式后 可以唤醒,但是唤醒后无法接收数据,唤醒后我让CC1101进入接收模式,但是没有收到发的数据,是否还有什么其它的命令需要操作?

数据包正常发出了吗?抓包数据有没有?

我之前没有进入sleep的时候发数据是可以收到了,增加了 WOR ,唤醒后就收不到数据了

下面是WOR代码

/*************************************************
函数名称 : CC1101_InitWOR
函数入参 : void
函数说明: 电磁波WOR唤醒功能初始化 设置为0.5秒轮训
函数备注: WOR 初始化 并进入掉电模式
**************************************************/
void CC1101_InitWOR(void)
{
#ifdef RF_TARGET_MODE
// halSpiStrobe(CCxxx0_SIDLE); //进入空闲状态

/* RX_TIME[2:0]=110 Duty cycle 0.195% T_rxtime3.69ms */
halSpiWriteReg(CCxxx0_MCSM2,0x06); //设置轮训时间
halSpiWriteReg(CCxxx0_MCSM0,0x38); //RC自动校准
// halSpiWriteReg(CCxxx0_WOREVT1,0x43); //设置轮训周期
// halSpiWriteReg(CCxxx0_WOREVT0,0xb5);

/*T_event0 = 750 / f(xosc) * EVENT0* 2^(5*WOR_RES)*/
halSpiWriteReg(CCxxx0_WOREVT1,0xff); //设置轮训周期
halSpiWriteReg(CCxxx0_WOREVT0,0xff);

/* Event1[2:0]=111 Tevent1=1.333ms~1.385ms */
/* RC_CAL = 1 Enable RC calibration */
/* WOR_RES = 0 Max time of event0 (1.8~1.9)seconds */
halSpiWriteReg(CCxxx0_WORCTRL,0x78); //启动自动校准 设置时间E

halSpiStrobe(CCxxx0_SFRX); //复位RX——BUFF
halSpiStrobe(CCxxx0_SWORRST);
halSpiStrobe(CCxxx0_SWOR); //启动WOR
RF_SLEEP = TRUE;
#endif
}

有结果吗?

检查一下唤醒后校准的操作。

请读取一下RX的状态寄存器的值 看看是持续在RX状态还是RX FIFO有问题

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

网站地图

Top