bcm-specs

[Specification

Boards with Hardware Power Control

Default Value of Hardware Power Control TX Power Recalculation Register

PHY Type

Radio Revision

Default Value

A PHY

Any

0x17

G PHY

8

0x24

G PHY

Not 8

0x10

Hardware Power Control Init

A PHY Hardware Power Control Init

/!\ This was divided up in numbered functions, they may refer to PHY Revisions, but are run for all revisions of hardware. I've put them together here, but noted where the divisions were (in case it's later shown to be important)

  1. Mask InternalLookupTable 0x3000 offset 1 with mask 0xFF7F (One)

  2. Set TSSI Power Internal Lookup Table with the current channel

  3. Loop 64 times (Three)

    1. Bitwise AND the value from the TX Gain Digital Analog Converter table with 0xF, then left shift by 7

    2. Bitwise AND the value from the TX Gain Radio Frequency Power Amplifier table with 0x7, then left shift by 4

    3. Bitwise AND the value from the TX Gain Base Band table with 0xF

    4. Bitwise OR these three values together and write the result to InternalLookupTable 0x5800 offset by the Loop Position

  4. Loop over Table 4 (Four)

    1. Loop 2 times
      1. Left shift the loop position by 7 and bitwise OR it with the value from Table 4
      2. Write the result to InternalLookupTable 0x5C00 offset with the outer Loop position * 2 + the inner Loop position

  5. Write the last value written to table 0x5C00 to the next two table entries in InternalLookupTable 0x5C00

  6. Loop 12 times (Five)

    1. Loop 6 times
      1. Find the DC Bias for the values corresponding to the loop positions

      2. Write the result to InternalLookupTable 0x6000, offset 2 * outer loop position + inner loop position

  7. Write 0 to PHYRegister 0x75 (Six)

  8. Read RadioRegister 0x17 and Bitwise OR the value bitwise AND'd by 0x7 and the value bitwise OR'd by 0x18 (Seven)

  9. Read RadioRegister 0x19 and Bitwise OR the value bitwise AND'd by 0x60

  10. Bitwise OR the two results together and shift it left by 1
  11. Set bit 0 in the result if bit 0x10 is set in RadioRegister 0x17

  12. Write the result to PHYRegister 0x76

  13. If the PHY Revision is 6 or greater (Nine)

    1. Write 0x900 to PHYRegister 0x78

  14. Otherwise, if the PHY Revision is 5
    1. Write 0xB00 to PHYRegister 0x78

  15. Otherwise
    1. Write 0x200 to PHYRegister 0x78

Table 4

Element

Value

0

0x20

1

0x24

2

0x28

3

0x2D

4

0x33

5

0x39

6

0x40

G PHY Hardware Power Control Init

  1. MaskSet PHYRegister 0x36 with mask 0xFFC0 and set with the difference between the Idle TSSI Target (TSSI to DBM Table) and the saved Power Control Register value

  2. MaskSet PHYRegister 0x478 with mask 0xFF00 and set with the difference between the Idle TSSI Target (TSSI to DBM Table) and the saved Power Control Register value

  3. GPHY TSSI Power Lookup Table Init

  4. GPHY Gain Lookup Table Init

  5. Bitwise AND PHYRegister 0x60 with 0xFFBF

  6. Write 0 to PHYRegister 0x14

  7. Bitwise OR PHYRegister 0x478 with 0x800

  8. Bitwise AND PHYRegister 0x478 with 0xFEFF

  9. Bitwise AND PHYRegister 0x801 with 0xFFBF

  10. GPHY DC Lookup Table


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