This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

RSSI瞬时值的测量问题?

Other Parts Discussed in Thread: CC1100E, SIMPLICITI, CC2530, CC1101

CC1100E按以下过程测量RSSI瞬时值:

TI_CC_SPIStrobe(TI_CCxxx0_SRX);  //进入接收状态
  TimerA_1ms();                                      //
  //第一次RSSI采样
  RSSI = 0x80;         //赋初值为-128
  RSSI = TI_CC_SPIReadStatus(TI_CCxxx0_RSSI);   //读取RSSI瞬时值
  RSSI += 128;        //加上128以全部按正数处理

请问RSSI的噪声电平(加上128后)一般为多少?能够接收数据的最小RSSI阈值(加上128后)一般是多少?

如果读取RSSI瞬时值失败,应该如何判断呢?RSSI(加上128后)是否为0?

 

 

  • 参考SImpliciTI协议栈Familiy 1中Mrfi_radio.c中的做法,你是否想实现TX-IF-CCA就是冲突避免?另外,TI网站有对RSSI的详细介绍的文档,www.ti.com/.../swra114d

    #define MRFI_RSSI_VALID_WAIT()                                                \

    {                                                                             \

     int16_t delay = MRFI_RSSI_VALID_DELAY_US;                                   \

     do                                                                          \

     {                                                                           \

       if(mrfiSpiReadReg(PKTSTATUS) & (MRFI_PKTSTATUS_CCA | MRFI_PKTSTATUS_CS))  \

       {                                                                         \

         break;                                                                  \

       }                                                                         \

       Mrfi_DelayUsec(64); /* sleep */                                           \

       delay -= 64;                                                              \

     }while(delay > 0);                                                          \

    }                                                                             \

    #endif // !MRFI_TIMER_ALWAYS_ACTIVE

    #define MRFI_STROBE_IDLE_AND_WAIT()                   \

    {                                                     \

     mrfiSpiCmdStrobe( SIDLE );                          \

     while (mrfiSpiCmdStrobe( SNOP ) & 0xF0) ;           \

    }

  • 您好,可否请教下如果是CC2530,应该怎么进行读取呢?

  • 您好!我CC1101的RSSI寄存器读出来的值一直是80,不变化,不知是什么原因,能否请教您到底是什么问题呢?

  • 你好!我读一次寄存器,并把改值在串口显示,但是每次串口都显示4096个字节,这到底是为什么呢?