bcm-specs

[Specification

Set A PHY TX Power

This function takes one parameter, the transmission power offset. This value is clamped between 0 and 63, and is an offset into the various tables used to set the transmission power registers.

  1. Based on the offset passed in, retrieve the value from the TX Gain Radio Frequency Power Amplifier table. This value represents bits 5-7 of the value to write into PHYRegister 0x19

  2. The other tables are null, so we zero out the rest of the value and write it to PHYRegister 0x19

  3. Based on the offset passed in, retrieve the value from the TX Gain Base Band table and keep bits 0-3 and zero out the others.

  4. Write the value previously retrieved bitwised OR'd with 0x20 to PHYRegister 0x17

  5. If the Analog Core Revision is 1

    1. Read the value stored in the InternalLookupTable 0x3000 offset 1 and mask with 0xFFFFFF87

    2. Based on the offset passed in, retrieve the value from the TX Gain Digital Analog Converter table shift this value left by 3 bits and OR the result with the value retrieved from the InternalLookupTable previously.

  6. Otherwise
    1. Read the value stored in the InternalLookupTable 0x3000 offset 1 and mask with 0xFFFFFFC3

    2. Based on the offset passed in, retrieve the value from the TX Gain Digital Analog Converter table shift this value left by 2 bits and OR the result with the value retrieved from the InternalLookupTable previously.

  7. Write the result back to the InternalLookupTable 0x3000 offset 1

  8. Adjust BB LOFT Cancel using the transmission power offset

Set B/G PHY TX Power

The B/G PHY TX Power is set using AttenuationControl values. These values are the Baseband Attenuation Value, the Radio Attenuation Value and the TXCTL1 Attenuation Value (Always use the saved TXCTL2 Attenuation Value). When setting the B/G PHY TX Power, save the used AttenuationControl values since they can be used later when resetting the B/G PHY TX Power.

See AttenuationControl for additional information on these values.

  1. Set the Baseband Attentuation by:
    1. If the Analog Core Revision is 0

      1. MaskSet MMIO offset 0x3E6 with mask 0xFFF0 and set with the Baseband Attenuation

    2. If the Analog Core Revision is 1

      1. Set the bits 0x78 in PHYRegister 0x60 to the Baseband Attenuation Value

    3. Otherwise
      1. Set the bits 0x3c in PHYRegister 0x60 to the Baseband Attenuation Value

  2. Write the Radio Attenuation to SHM offset 0x64

  3. Set the Radio Attenuation by:
    1. If this is an 0x2050 Radio with Radio Revision 8
      1. Write the Radio Attenuation to PHYRegister 0x43

    2. Otherwise
      1. MaskSet RadioRegister 0x43 with mask 0xFFF0 and set with the Radio Attenuation Value

  4. Set the TXCTL1 Attenuation if this is an 0x2050 radio by:
    1. If the Radio Revision < 6

      1. MaskSet RadioRegister 0x43 with mask 0xFF8F and set with the TXCTL1 Attenuation Value left shifted by 4

    2. Otherwise, if the Radio Revision is not 8
      1. MaskSet RadioRegister 0x52 with mask 0xFF8F and set with the TXCTL1 Attenuation Value left shifted by 4

    3. Otherwise
      1. Write the TXCTL1 Attenuation Value left shifted by 4 OR'd with the TXCTL2 Attenuation Value to RadioRegister 0x52

  5. If the Radio Revision is not 8
    1. MaskSet RadioRegister 0x52 with mask 0xFFF0 and set with the TXCTL2 Attenuation Value

  6. If this is a GPHY, Adjust the LO using AttenuationControl


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