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.

CC2500 rssi计算

Other Parts Discussed in Thread: CC2500

你好!

请问CC2500从packet末尾读出的RSSI值(PKTCTRL1.APPEND_STATUS启用),怎么计算出实际的RSSI的dbm值?

相关公式和RSSI_OFFSET的参数表

谢谢!

  • CC2500 Datasheet 第35页

    The RSSI value read from the RSSI status register is a 2’s complement number. The following procedure can be used to convert the RSSI reading to an absolute power level (RSSI_dBm).


    1) Read the RSSI status register
    2) Convert the reading from a hexadecimal number to a decimal number (RSSI_dec)
    3) If RSSI_dec ≥ 128 then RSSI_dBm = (RSSI_dec - 256)/2 – RSSI_offset
    4) Else if RSSI_dec < 128 then RSSI_dBm = (RSSI_dec)/2 – RSSI_offset

  • 这个是根据RSSI状态寄存器(0x34)计算的方法吧?那么当PKTCTRL1.APPEND_STATUS启用时,跟在包后的第一个字节也是RSSI值,但是我发现这个RSSI值和0x34寄存器读出来的不一样,那么包后面跟的这个值如果计算出RSSI_dbm?

    比如,我在一个频点收包时,从RSSI寄存器(0x34)读出的值是0xCC,那么根据上述计算方式,这个dbm应该是 (0xCC-256)/2-70=-96dbm,
    而此时包末尾跟的第一个字节值是 0x0B,那么根据这个值怎么计算rssi_dbm?计算出来的和上述从rssi寄存器计算出来的相同吗?
x 出现错误。请重试或与管理员联系。