bcm-v4

[Specification

int LP PHY Loopback

  1. Create a struct iq_est and initialize to zero
  2. Initialize a "saved loop index" variable to -1
  3. Call LP PHY Set TRSW Override with arguments (1,1)

  4. Set bit 0x1 in PHY Register 0x43B

  5. Clear bit 0x01 in PHY Register 0x43C

  6. Set bit 0x800 in PHY Register 0x44C

  7. Set bit 0x800 in PHY Register 0x44D

  8. Set bit 0x8 in PHY Register 0x44C

  9. Set bit 0x8 in PHY Register 0x44D

  10. Write 0x80 to Radio Register 0x4F

  11. Set bit 0x80 in PHY Register 0x44C

  12. Set bit 0x80 in PHY Register 0x44D

  13. Loop 32 times with index starting at 0
    1. Call LP PHY Set RX Gain by Index with the loop index as argument

    2. Call LP PHY Run DDFS with (1,1,5,5,0) as arguments

    3. Call LP PHY RX IQ Est with (1000,32,&iq_est) as arguments

    4. If the returned result is zero
      1. Continue
    5. Add the i_pwr member of iq_est to the q_pwr member and divide by 1000
    6. If the result is > 4000 and < 10000

      1. Save the loop index
      2. Break from the loop
  14. Call LP PHY Stop DDFS

  15. Return the saved loop index

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