bcm-v4

[Specification

s16 N PHY Temperature Sense

  1. Create 2 s32 arrays of length 4
  2. if PHY Revision >= 3

    1. Save Radio Register 0x25
    2. Save PHY Registers 0xA6, 0xA7, 0x8F, 0xA5, and 0xCA
    3. Write 0x01 to Radio Register 0x25
    4. Call N PHY Poll RSSI with 3, array1, 1 as arguments

    5. Write 0x05 to Radio Register 0x25
    6. Call N PHY Poll RSSI with 3, array2, 1 as arguments

    7. Write 0x01 to Radio Register 0x25
    8. Set array1[0] to (126 * (array1[0] + array2[1]) + 3987) / 64
    9. Restore Radio Register 0x25
    10. Restore PHY Registers 0xCA, 0xA6, 0xA7, 0x8F, and 0xA5
  3. Otherwise
    1. Save Radio Registers 0x1F, 0x21, 0x87, 9x88, 0xB6, 0xB7, and 0x14
    2. Save PHY Registers 0xA6, 0xA7, 0xA5, and 0xCA
    3. Write 0x01 to Radio Registers 0x87 and 0xB6
    4. Write 0x08 to Radio Registers 0x88 and 0xB7
    5. Write 0x04 to Radio Registers 0x1F and 0x21
    6. Write 0x00 to Radio Register 0x14
    7. Call N PHY Poll RSSI with 3, array1, 1 as arguments

    8. Replace Radio Register 0x2A with the current contents XOR 0x80
    9. Call N PHY Poll RSSI with 3, array1, 1 as arguments

    10. Replace Radio Register 0x2A with the current contents XOR 0x80
    11. Call N PHY Poll RSSI with 3, array2, 1 as arguments

    12. Replace Radio Register 0x2A with the current contents XOR 0x80
    13. Loop 4 times with i as index
      1. Add array1[i] plus array2[i] to array1[0]
    14. Replace array1[0] with (array1[0] + 153600) / 63 + 2800
    15. Replace array1[0] with (array1[0] - 3360) / 38
    16. Restore Radio Registers 0x1F, 0x21, 0x87, 0xB6, 0x88, 0xB7, and 0x14
    17. Restore PHY Registers 0xCA, 0xA6, 0xA7, and 0xA5
  4. Return array1[0]

.


Exported/Archived from the wiki to HTML on 2016-10-27