bcm-specs

[Specification

A PHY Setup Procedure, this may be related to modulation setup. /!\ This function is also called for G PHYs.

For A PHYs

Revision 2

  1. Write 0x3800 to PHYRegister 0x8E

  2. Write 0x3FF to PHYRegister 0x35

  3. Write 0x400 to PHYRegister 0x36

  4. Write 0x51 to InternalLookupTable offset 0x3807

  5. Write 0xFF9 to PHYRegister 0x1C

  6. Mask PHYRegister 0x20 with mask 0xFF0F

  7. Write 0x7BF to InternalLookupTable offset 0x3C0C

  8. Write 0x7BF to RadioRegister 0x2

  9. Write 0x4680 to PHYRegister 0x24

  10. Write 0x3 to PHYRegister 0x20

  11. Wirte 0xF40 to PHYRegister 0x1D

  12. Write 0x1C00 to PHYRegister 0x1F

  13. MaskSet PHYRegister 0x2A with mask 0xFF and set 0x400

  14. Mask PHYRegister 0x2B with mask 0xFBFF

  15. Write 0x58C1 to PHYRegister 0x8E

  16. Write 0x0F to InternalLookupTable offset 0x803

  17. Write 0x1F to InternalLookupTable offset 0x804

  18. Write 0x2A to InternalLookupTable offset 0x805

  19. Write 0x30 to InternalLookupTable offset 0x805

  20. Write 0x3A to InternalLookupTable offset 0x807

  21. Write 0x13 to InternalLookupTable offset 0x0

  22. Write 0x13 to InternalLookupTable offset 0x1

  23. Write 0x13 to InternalLookupTable offset 0x2

  24. Write 0x13 to InternalLookupTable offset 0x3

  25. Write 0x15 to InternalLookupTable offset 0x4

  26. Write 0x15 to InternalLookupTable offset 0x5

  27. Write 0x19 to InternalLookupTable offset 0x6

  28. Write 0x03 to InternalLookupTable offset 0x404

  29. Write 0x03 to InternalLookupTable offset 0x405

  30. Write 0x07 to InternalLookupTable offset 0x406

  31. RSSI InternalLookupTable Workaround

  32. Write 0x1044 to InternalLookupTable offset 0x3003

  33. Write 0x7201 to InternalLookupTable offset 0x3004

  34. Write 0x40 to InternalLookupTable offset 0x3006

  35. MaskSet InternalLookupTable offset 0x3001 with mask 0x10 and set 0x8

  36. Initialize the fine frequency InternalLookupTable to the values in the FineFrequency table

  37. Initialise the noise InternalLookupTable to the values in the noise table

  38. Initialize the rotor InternalLookupTable to the values in the rotor table

  39. Initialise the noise scale InternalLookupTable to the values in the noise scale table

  40. Initialise the retard InternalLookupTable to the values in the retard table

  41. APHY Workarounds

Revision 3

  1. Initialise the RSSI InternalLookupTable to a linear function with slope 1 and Y-axis intercept 0 (lookup table offset 0x4000 corresponds to X=0)

  2. Write 0x51 to InternalLookupTable offset 0x3807

  3. Write 0xFF9 to PHYRegister 0x1C

  4. Mask PHYRegister 0x20 with mask 0xFF0F

  5. Write 0x7BF to RadioRegister 0x2

  6. Write 0x4680 to PHYRegister 0x24

  7. Write 0x3 to PHYRegister 0x20

  8. Write 0xF40 to PHYRegister 0x1D

  9. Write 0x1C00 to PHYRegister 0x1F

  10. MaskSet PHYRegister 0x2A with mask 0xFF and set 0x400

  11. MaskSet InternalLookupTable offset 0x3001 with mask 0x10 and set 0x8

  12. Initialise the noise InternalLookupTable to the values in the noise table

  13. Initialise the noise scale InternalLookupTable to the values in the noise scale table

  14. Initialise the min sigma square InternalLookupTable to the values in the sigma square table

  15. Write 0x1808 to PHYRegister 0x3

  16. Write 0x0F to InternalLookupTable offset 0x803

  17. Write 0x1F to InternalLookupTable offset 0x804

  18. Write 0x2A to InternalLookupTable offset 0x805

  19. Write 0x30 to InternalLookupTable offset 0x805

  20. Write 0x3A to InternalLookupTable offset 0x807

  21. Write 0x13 to InternalLookupTable offset 0x0

  22. Write 0x13 to InternalLookupTable offset 0x1

  23. Write 0x13 to InternalLookupTable offset 0x2

  24. Write 0x13 to InternalLookupTable offset 0x3

  25. Write 0x15 to InternalLookupTable offset 0x4

  26. Write 0x15 to InternalLookupTable offset 0x5

  27. Write 0x19 to InternalLookupTable offset 0x6

  28. Write 0x03 to InternalLookupTable offset 0x404

  29. Write 0x03 to InternalLookupTable offset 0x405

  30. Write 0x07 to InternalLookupTable offset 0x406

  31. Write 0xF to InternalLookupTable offset 0x3C02

  32. Write 0x14 to InternalLookupTable offset 0x3C03

  33. APHY Workarounds

For G PHYs

Revision 1

  1. Write 0x4F19 to PHYRegister 0x406 (CRS ED Workaround)

  2. MaskSet PHYRegister 0x429 with mask 0xFC3F and set 0x340 (CRS Threshold Workaround)

  3. Write 0x5A to PHYRegister 0x42C (CRS Blank Workaround)

  4. Write 0x1A to PHYRegister 0x427 (CCK Shift Bits Workaround)

  5. Initialize the fine frequency InternalLookupTable to the values in the FineFrequency table

  6. Initialise the noise InternalLookupTable to the values in the noise table

  7. Initialize the rotor InternalLookupTable to the values in the rotor table

  8. Initialise the noise scale InternalLookupTable to the values in the noise scale table

  9. Initialise the retard InternalLookupTable to the values in the retard table

  10. Initialise the WRSSI InternalLookupTable as described in wrssi table

  11. Set up AGC

  12. Perform GPHY Workarounds if required

All other PHY Revisions, except 8

  1. Write 0x7654 to offset 0xBA98 of the NRSSILookupTable

  2. If PHY Revision is 2 (CRS ED Workaround)

    1. Write 0x1861 to PHYRegister 0x4C0

    2. Write 0x0271 to PHYRegister 0x4C1

  3. If PHY Revision is > 2 (CRS ED Workaround)

    1. Write 0x98 to PHYRegister 0x4C0

    2. Write 0x70 to PHYRegister 0x4C1

    3. Write 0x80 to PHYRegister 0x4C9

  4. Set bit 0x800 in PHY Register 0x42B
  5. Initialise the RSSI InternalLookupTable to a linear function with slope 1 and Y-axis intercept 0 (lookup table offset 0x4000 corresponds to X=0)

  6. Initialise the noise InternalLookupTable to the values in the noise table

  7. Initialise the noise scale InternalLookupTable to the values in the noise scale table

  8. Initialise the min sigma square InternalLookupTable to the values in the sigma square table

  9. Initialise the WRSSI InternalLookupTable to the values in the wrssi table

  10. Set up AGC

  11. If PHYRegister 0x400 & 0xF is < 3 (Analog Workaround)

    1. Write 0x1044 to InternalLookupTable 0x3000 offset 3

    2. Write 0x7201 to InternalLookupTable 0x3000 offset 4

    3. Write 0x40 to InternalLookupTable 0x3000 offset 6

  12. Otherwise
    1. Write 0x1000 to PHYRegister 0x403

  13. Write 0x0F to InternalLookupTable 0x3C00 offset 2 (TX Powerup On / RX Powerup Off Workaround)

  14. Write 0x14 to InternalLookupTable 0x3C00 offset 3 (TX Powerup On / RX Powerup Off Workaround)

  15. Perform GPHY Workarounds if required


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