There are a lot of protocols which require switching between multiple PHY configurations. Obviosuly, to support them, you have to reconfigure the radio to switch between them. However, reconfiguring the radio could take a long time, mostly because of the slow SPI communication between the MCU and the radio. So it's always a good idea to only upload the difference between the two configurations when switching PHYs.

 

There's a special, but quite common case, where you can optimize this further: If PHY1 is only used for reception, and PHY2 for transmission, you can configure the reception related properties to PHY1, the transmission related properties to PHY2 during initialization, and only upload the difference of the common properties. For this, you can use the following list of all the properties of EZRadioPro (revC2A), sorted to four categories:

  • TX: Transmission only related properties
  • RX: Reception only related properties
  • Both: Properties used for both RX and TX
  • Neither: Not RF related properties

There are some options appearing in two categories with a condition. There's probably more like these, I just listed some very obvious ones.

 

Also, use your common sense: For example, WUT is listed under the neither category, but if you use it for setting up low duty cycle mode, it becomes an RX parameter.


TX:

 

PREAMBLE_TX_LENGTH
PKT_TX_THRESHOLD
PKT_FIELD_1_LENGTH             (if PKT_CONFIG1:PH_FIELD_SPLIT == 1)
PKT_FIELD_1_CONFIG             (if PKT_CONFIG1:PH_FIELD_SPLIT == 1)
PKT_FIELD_1_CRC_CONFIG         (if PKT_CONFIG1:PH_FIELD_SPLIT == 1)
PKT_FIELD_2_LENGTH             (if PKT_CONFIG1:PH_FIELD_SPLIT == 1)
PKT_FIELD_2_CONFIG             (if PKT_CONFIG1:PH_FIELD_SPLIT == 1)
PKT_FIELD_2_CRC_CONFIG         (if PKT_CONFIG1:PH_FIELD_SPLIT == 1)
PKT_FIELD_3_LENGTH             (if PKT_CONFIG1:PH_FIELD_SPLIT == 1)
PKT_FIELD_3_CONFIG             (if PKT_CONFIG1:PH_FIELD_SPLIT == 1)
PKT_FIELD_3_CRC_CONFIG         (if PKT_CONFIG1:PH_FIELD_SPLIT == 1)
PKT_FIELD_4_LENGTH             (if PKT_CONFIG1:PH_FIELD_SPLIT == 1)
PKT_FIELD_4_CONFIG             (if PKT_CONFIG1:PH_FIELD_SPLIT == 1)
PKT_FIELD_4_CRC_CONFIG         (if PKT_CONFIG1:PH_FIELD_SPLIT == 1)
PKT_FIELD_5_LENGTH             (if PKT_CONFIG1:PH_FIELD_SPLIT == 1)
PKT_FIELD_5_CONFIG             (if PKT_CONFIG1:PH_FIELD_SPLIT == 1)
PKT_FIELD_5_CRC_CONFIG         (if PKT_CONFIG1:PH_FIELD_SPLIT == 1)
MODEM_DATA_RATE
MODEM_TX_NCO_MODE
MODEM_FREQ_DEV
MODEM_TX_FILTER_COEFF_8
MODEM_TX_FILTER_COEFF_7
MODEM_TX_FILTER_COEFF_6
MODEM_TX_FILTER_COEFF_5
MODEM_TX_FILTER_COEFF_4
MODEM_TX_FILTER_COEFF_3
MODEM_TX_FILTER_COEFF_2
MODEM_TX_FILTER_COEFF_1
MODEM_TX_FILTER_COEFF_0
MODEM_TX_RAMP_DELAY
PA_MODE
PA_PWR_LVL
PA_BIAS_CLKDUTY
PA_TC
PA_RAMP_EX
PA_RAMP_DOWN_DELAY
PA_DIG_PWR_SEQ_CONFIG

 

RX:

 

INT_CTL_MODEM_ENABLE
PREAMBLE_CONFIG_STD_1
PREAMBLE_CONFIG_STD_2
PREAMBLE_POSTAMBLE_CONFIG
PREAMBLE_POSTAMBLE_PATTERN
PKT_LEN
PKT_LEN_FIELD_SOURCE
PKT_LEN_ADJUST
PKT_RX_THRESHOLD
PKT_RX_FIELD_1_LENGTH
PKT_RX_FIELD_1_CONFIG
PKT_RX_FIELD_1_CRC_CONFIG
PKT_RX_FIELD_2_LENGTH
PKT_RX_FIELD_2_CONFIG
PKT_RX_FIELD_2_CRC_CONFIG
PKT_RX_FIELD_3_LENGTH
PKT_RX_FIELD_3_CONFIG
PKT_RX_FIELD_3_CRC_CONFIG
PKT_RX_FIELD_4_LENGTH
PKT_RX_FIELD_4_CONFIG
PKT_RX_FIELD_4_CRC_CONFIG
PKT_RX_FIELD_5_LENGTH
PKT_RX_FIELD_5_CONFIG
PKT_RX_FIELD_5_CRC_CONFIG
MODEM_FREQ_OFFSET		 (if PLL AFC is enabled)
MODEM_MDM_CTRL
MODEM_IF_CONTROL
MODEM_IF_FREQ
MODEM_DECIMATION_CFG1
MODEM_DECIMATION_CFG0
MODEM_DECIMATION_CFG2
MODEM_IFPKD_THRESHOLDS
MODEM_BCR_OSR
MODEM_BCR_NCO_OFFSET
MODEM_BCR_GAIN
MODEM_BCR_GEAR
MODEM_BCR_MISC1
MODEM_BCR_MISC0
MODEM_AFC_GEAR
MODEM_AFC_WAIT
MODEM_AFC_GAIN
MODEM_AFC_LIMITER
MODEM_AFC_MISC
MODEM_AFC_ZIFOFF
MODEM_ADC_CTRL
MODEM_AGC_CONTROL
MODEM_AGC_WINDOW_SIZE
MODEM_AGC_RFPD_DECAY
MODEM_AGC_IFPD_DECAY
MODEM_FSK4_GAIN1
MODEM_FSK4_GAIN0
MODEM_FSK4_TH
MODEM_OOK_PDTC
MODEM_OOK_BLOPK
MODEM_OOK_CNT1
MODEM_OOK_MISC
MODEM_RAW_CONTROL
MODEM_RAW_EYE
MODEM_ANT_DIV_MODE
MODEM_RSSI_THRESH
MODEM_RSSI_JUMP_THRESH
MODEM_RSSI_CONTROL
MODEM_RSSI_CONTROL2
MODEM_RSSI_COMP
MODEM_RAW_SEARCH2
MODEM_SPIKE_DET
MODEM_ONE_SHOT_AFC
MODEM_RSSI_HYSTERESIS
MODEM_RSSI_MUTE
MODEM_FAST_RSSI_DELAY
MODEM_PSM
MODEM_DSA_CTRL1
MODEM_DSA_CTRL2
MODEM_DSA_QUAL
MODEM_DSA_RSSI
MODEM_DSA_MISC
MODEM_CHFLT_RX1_CHFLT_COE
MODEM_CHFLT_RX2_CHFLT_COE
MATCH_VALUE_1
MATCH_MASK_1
MATCH_CTRL_1
MATCH_VALUE_2
MATCH_MASK_2
MATCH_CTRL_2
MATCH_VALUE_3
MATCH_MASK_3
MATCH_CTRL_3
MATCH_VALUE_4
MATCH_MASK_4
MATCH_CTRL_4
RX_HOP_CONTROL
RX_HOP_TABLE_SIZE
RX_HOP_TABLE_ENTRY[]

 

Both:

 

GLOBAL_XO_TUNE
GLOBAL_CONFIG
INT_CTL_ENABLE
INT_CTL_PH_ENABLE
PREAMBLE_CONFIG_NSTD
PREAMBLE_CONFIG
PREAMBLE_PATTERN
SYNC_CONFIG
SYNC_BITS
SYNC_CONFIG2
PKT_CRC_CONFIG
PKT_WHT_POLY
PKT_WHT_SEED
PKT_WHT_BIT_NUM
PKT_CONFIG1
PKT_CONFIG2
PKT_FIELD_1_LENGTH		 (if PKT_CONFIG1:PH_FIELD_SPLIT == 0)
PKT_FIELD_1_CONFIG		 (if PKT_CONFIG1:PH_FIELD_SPLIT == 0)
PKT_FIELD_1_CRC_CONFIG		 (if PKT_CONFIG1:PH_FIELD_SPLIT == 0)
PKT_FIELD_2_LENGTH		 (if PKT_CONFIG1:PH_FIELD_SPLIT == 0)
PKT_FIELD_2_CONFIG		 (if PKT_CONFIG1:PH_FIELD_SPLIT == 0)
PKT_FIELD_2_CRC_CONFIG		 (if PKT_CONFIG1:PH_FIELD_SPLIT == 0)
PKT_FIELD_3_LENGTH		 (if PKT_CONFIG1:PH_FIELD_SPLIT == 0)
PKT_FIELD_3_CONFIG		 (if PKT_CONFIG1:PH_FIELD_SPLIT == 0)
PKT_FIELD_3_CRC_CONFIG		 (if PKT_CONFIG1:PH_FIELD_SPLIT == 0)
PKT_FIELD_4_LENGTH		 (if PKT_CONFIG1:PH_FIELD_SPLIT == 0)
PKT_FIELD_4_CONFIG		 (if PKT_CONFIG1:PH_FIELD_SPLIT == 0)
PKT_FIELD_4_CRC_CONFIG		 (if PKT_CONFIG1:PH_FIELD_SPLIT == 0)
PKT_FIELD_5_LENGTH		 (if PKT_CONFIG1:PH_FIELD_SPLIT == 0)
PKT_FIELD_5_CONFIG		 (if PKT_CONFIG1:PH_FIELD_SPLIT == 0)
PKT_FIELD_5_CRC_CONFIG		 (if PKT_CONFIG1:PH_FIELD_SPLIT == 0)
PKT_CRC_SEED
MODEM_MOD_TYPE
MODEM_MAP_CONTROL
MODEM_DSM_CTRL
MODEM_FREQ_OFFSET		 (if PLL AFC is disabled)
MODEM_FSK4_MAP
MODEM_ANT_DIV_CONTROL MODEM_CLKGEN_BAND SYNTH_PFDCP_CPFF SYNTH_PFDCP_CPINT SYNTH_VCO_KV SYNTH_LPFILT3 SYNTH_LPFILT2 SYNTH_LPFILT1 SYNTH_LPFILT0 SYNTH_VCO_KVCAL FREQ_CONTROL_INTE FREQ_CONTROL_FRAC FREQ_CONTROL_CHANNEL_STEP_SIZE FREQ_CONTROL_W_SIZE FREQ_CONTROL_VCOCNT_RX_ADJ

 

Neither:

 

GLOBAL_CLK_CFG
GLOBAL_LOW_BATT_THRESH
GLOBAL_WUT_CONFIG
GLOBAL_WUT_M
GLOBAL_WUT_R
GLOBAL_WUT_LDC
GLOBAL_WUT_CAL
INT_CTL_CHIP_ENABLE
FRR_CTL_A_MODE
FRR_CTL_B_MODE
FRR_CTL_C_MODE
FRR_CTL_D_MODE
PTI_CTL
PTI_BAUD
PTI_LOG_EN



Thanks for @zopapp for the initial sorted list
This was the command used to get grep a property list from the api html:

grep '<li><a href="#details_prop_' < index_all.html | sed 's/.*_prop_//g'|sed 's/">.*//g'

 

 

 

  • Proprietary
  • EZRadioPRO
  • Knowledge Base Articles