PTAGENERAL_API

APIs to manage dynamic aspects of Packet Traffic Arbitration (PTA).

Data Structures

struct sl_wfx_pta_settings_req_body_t
Request sent by the host to set the PTA mode, the active levels on signals, the Coex type, to define the timings, quotas, combined mode and default grant state.
struct sl_wfx_pta_settings_cnf_body_t
Confirmation sent by WLAN firmware after a SL_WFX_PTA_SETTINGS_REQ_ID request.
struct sl_wfx_pta_priority_req_body_t
Request sent by the host to define the level of priority used to arbitrate concurrent Coex and WLAN requests.
struct sl_wfx_pta_priority_cnf_body_t
Confirmation sent by WLAN firmware after a SL_WFX_PTA_PRIORITY_REQ_ID request.
struct sl_wfx_pta_state_req_body_t
Request sent by host to start or stop the PTA.
struct sl_wfx_pta_state_cnf_body_t
Confirmation sent by WLAN firmware after a SL_WFX_PTA_STATE_REQ_ID request.

Enumerations

enum sl_wfx_pta_mode_t {
SL_WFX_PTA_1W_WLAN_MASTER = 0,
SL_WFX_PTA_1W_COEX_MASTER = 1,
SL_WFX_PTA_2W = 2,
SL_WFX_PTA_3W = 3,
SL_WFX_PTA_4W = 4
}
PTA modes.
enum sl_wfx_signal_level_t {
SL_WFX_SIGNAL_LOW = 0,
SL_WFX_SIGNAL_HIGH = 1
}
Signal levels.
enum sl_wfx_coex_type_t {
SL_WFX_COEX_TYPE_GENERIC = 0,
SL_WFX_COEX_TYPE_BLE = 1
}
Coexistence types supported by PTA.
enum sl_wfx_grant_state_t {
SL_WFX_NO_GRANT = 0,
SL_WFX_GRANT = 1
}
Grant states.
enum sl_wfx_pta_priority_t {
SL_WFX_PTA_PRIORITY_COEX_MAXIMIZED = 0x00000562,
SL_WFX_PTA_PRIORITY_COEX_HIGH = 0x00000462,
SL_WFX_PTA_PRIORITY_BALANCED = 0x00001461,
SL_WFX_PTA_PRIORITY_WLAN_HIGH = 0x00001851,
SL_WFX_PTA_PRIORITY_WLAN_MAXIMIZED = 0x00001A51
}
Priority levels used by PTA for concurrent (Coex and WLAN) request arbitration.
enum sl_wfx_pta_state_t {
SL_WFX_PTA_OFF = 0,
SL_WFX_PTA_ON = 1
}
PTA states.

Detailed Description

APIs to manage dynamic aspects of Packet Traffic Arbitration (PTA).

Functions are provided to:


Data Structure Documentation

sl_wfx_pta_settings_req_body_t

struct sl_wfx_pta_settings_req_body_t

Request sent by the host to set the PTA mode, the active levels on signals, the Coex type, to define the timings, quotas, combined mode and default grant state.

Depending on specified PTA mode, every setting is not necessarily used and can then be set to '0'.
The following table indicates the PTA mode for which the setting is significant.
Combined mode is activated during concurrent RX (WLAN and Coex) requests and if SimultaneousRxAccesses is set to '1'.

Settings 1-wire WLAN Master 1-wire Coex Master 2-wire 3-wire 3-wire (combined) 4-wire 4-wire (combined)
PrioritySamplingTime x x x x
TxRxSamplingTime x x
FreqSamplingTime x x
GrantValidTime x x x x
FemControlTime x x x x
FirstSlotTime x x
PeriodicTxRxSamplingTime x x
CoexQuota x x
WlanQuota x x


3w-timings-sequence.svg
Sequence diagram with 3-wire PTA mode


4w-timings-sequence.svg
Sequence diagram with 4-wire PTA mode
Note
Request will fail if PTA is started.
Warning
The following assertions must be respected:
  • priority_sampling_time < tx_rx_sampling_time < grant_valid_time <= first_slot_time
  • freq_sampling_time < grant_valid_time < fem_control_time

Definition at line 855 of file sl_wfx_general_api.h .

Data Fields
uint16_t coex_quota The duration (in microseconds) for which RF is granted to Coex before it is moved to WLAN.
uint8_t coex_type The Coex type, see enum sl_wfx_coex_type_t .
uint8_t default_grant_state The state of the GRANT signal before arbitration at grant_valid_time, see enum sl_wfx_grant_state_t .
uint8_t fem_control_time The time (in microseconds) from Coex request to the control of FEM (grant_valid_time to 255)
uint8_t first_slot_time The time (in microseconds) from the Coex request to the beginning of reception or transmission (grant_valid_time to 255)
uint8_t freq_sampling_time The time (in microseconds) from the Coex request to the sampling of freq-match information on FREQ signal (1 to 127)
uint8_t freq_signal_active_level Active level on FREQ signal (PTA_FREQ pin), provided by Coex in 4-wire mode when Coex and WLAN share the same band, see enum sl_wfx_signal_level_t .
uint8_t grant_signal_active_level Active level on GRANT signal (PTA_TX_CONF pin), generated by PTA to grant the RF to Coex, see enum sl_wfx_signal_level_t .
uint8_t grant_valid_time The time (in microseconds) from Coex request to the GRANT signal assertion (MAX(tx_rx_sampling_time, freq_sampling_time) to 255)
uint16_t periodic_tx_rx_sampling_time The period (in microseconds) from first_slot_time of following samplings of the directionality on PRIORITY signal (1 to 1023)
uint8_t priority_sampling_time The time (in microseconds) from the Coex request to the sampling of the priority on PRIORITY signal (1 to 31)
uint8_t priority_signal_active_level Active level on PRIORITY signal (PTA_STATUS pin), provided by Coex to set the priority of the request, see enum sl_wfx_signal_level_t .
uint8_t pta_mode The PTA mode, see enum sl_wfx_pta_mode_t .
uint8_t request_signal_active_level Active level on REQUEST signal (PTA_RF_ACT pin), provided by Coex to request the RF, see enum sl_wfx_signal_level_t .
uint8_t simultaneous_rx_access Boolean to allow both Coex and WLAN to receive concurrently, also named combined mode.
uint8_t tx_rx_sampling_time The time (in microseconds) from the Coex request to the sampling of the directionality on PRIORITY signal (priority_sampling_time to 63)
uint16_t wlan_quota The duration (in microseconds) for which RF is granted to WLAN before it is moved to Coex.

sl_wfx_pta_settings_cnf_body_t

struct sl_wfx_pta_settings_cnf_body_t

Confirmation sent by WLAN firmware after a SL_WFX_PTA_SETTINGS_REQ_ID request.

Definition at line 883 of file sl_wfx_general_api.h .

Data Fields
uint32_t status Confirmation status, see enum sl_wfx_status_t .

sl_wfx_pta_priority_req_body_t

struct sl_wfx_pta_priority_req_body_t

Request sent by the host to define the level of priority used to arbitrate concurrent Coex and WLAN requests.

Priority can be one value from enum sl_wfx_pta_priority_t but can also be an integer value whom definition is the following bitfield:

struct sl_wfx_pta_priority_s
{
uint32_t coex_prio_low:3; // Priority given to Coex for low-priority requests
uint32_t reserved_1:1; // Reserved for future use
uint32_t coex_prio_high:3; // Priority given to Coex for high-priority requests
uint32_t reserved_2:1; // Reserved for future use
uint32_t grant_coex:1; // Allows Coex to override WLAN
uint32_t grant_wlan:1; // Allows WLAN to override Coex whenever WLAN is not idle
uint32_t protect_coex:1; // WLAN grant is delayed until Coex has finished its present granted transaction
uint32_t protect_wlan_tx:1; // Prevents Coex from being granted when WLAN is transmitting (the protection is also extended to the response)
uint32_t protect_wlan_rx:1; // Prevents Coex from being granted when WLAN is receiving or waiting for a response to an already transmitted frame
uint32_t reserved_3:19; // Reserved for future use
}
Note
Request will fail if PTA is started.

Definition at line 926 of file sl_wfx_general_api.h .

Data Fields
uint32_t priority The priority level, see enum sl_wfx_pta_priority_t .

sl_wfx_pta_priority_cnf_body_t

struct sl_wfx_pta_priority_cnf_body_t

Confirmation sent by WLAN firmware after a SL_WFX_PTA_PRIORITY_REQ_ID request.

Definition at line 938 of file sl_wfx_general_api.h .

Data Fields
uint32_t status Confirmation status, see enum sl_wfx_status_t .

sl_wfx_pta_state_req_body_t

struct sl_wfx_pta_state_req_body_t

Request sent by host to start or stop the PTA.

Note
Starting PTA will fail if not first configured with sl_wfx_pta_settings_req_body_t request.

Definition at line 959 of file sl_wfx_general_api.h .

Data Fields
uint32_t pta_state Requested PTA state, see enum sl_wfx_pta_state_t .

sl_wfx_pta_state_cnf_body_t

struct sl_wfx_pta_state_cnf_body_t

Confirmation sent by WLAN firmware after a SL_WFX_PTA_STATE_REQ_ID request.

Definition at line 971 of file sl_wfx_general_api.h .

Data Fields
uint32_t status Confirmation status, see enum sl_wfx_status_t .

Enumeration Type Documentation

sl_wfx_coex_type_t

Coexistence types supported by PTA.

Enumerator
SL_WFX_COEX_TYPE_GENERIC

IEEE 802.15.4 standards ZigBee SDK, Thread SDK, and so on.

SL_WFX_COEX_TYPE_BLE

Bluetooth Low-Energy Stack.

Definition at line 810 of file sl_wfx_general_api.h .

sl_wfx_grant_state_t

Grant states.

Enumerator
SL_WFX_NO_GRANT

WLAN has the RF, Coex is not allowed to transmit.

SL_WFX_GRANT

Coex is granted.

Definition at line 818 of file sl_wfx_general_api.h .

sl_wfx_pta_mode_t

PTA modes.

Enumerator
SL_WFX_PTA_1W_WLAN_MASTER

PTA 1-wire interface with WLAN master on PTA_TX_CONF pin (GRANT signal),.

SL_WFX_PTA_1W_COEX_MASTER

PTA 1-wire interface with COEX master on PTA_RF_ACT pin (REQUEST signal),.

SL_WFX_PTA_2W

PTA 2-wire interface on PTA_RF_ACT and PTA_TX_CONF pins (respectively REQUEST and GRANT signals),.

SL_WFX_PTA_3W

PTA 3-wire interface on same pins as SL_WFX_PTA_2W, plus PTA_STATUS pin (PRIORITY signal)

SL_WFX_PTA_4W

PTA 4-wire interface on same pins as SL_WFX_PTA_3W, plus PTA_FREQ pin (FREQ signal).

Definition at line 791 of file sl_wfx_general_api.h .

sl_wfx_pta_priority_t

Priority levels used by PTA for concurrent (Coex and WLAN) request arbitration.

Enumerator
SL_WFX_PTA_PRIORITY_COEX_MAXIMIZED

Maximizes priority to COEX, WLAN connection is not ensured.

SL_WFX_PTA_PRIORITY_COEX_HIGH

High priority to COEX, targets low-latency to COEX.

SL_WFX_PTA_PRIORITY_BALANCED

Balanced PTA arbitration, WLAN acknowledge receptions are protected.

SL_WFX_PTA_PRIORITY_WLAN_HIGH

High priority to WLAN, protects WLAN transmissions.

SL_WFX_PTA_PRIORITY_WLAN_MAXIMIZED

Maximizes priority to WLAN.

Definition at line 895 of file sl_wfx_general_api.h .

sl_wfx_pta_state_t

PTA states.

Enumerator
SL_WFX_PTA_OFF

PTA is off.

SL_WFX_PTA_ON

PTA is on.

Definition at line 950 of file sl_wfx_general_api.h .

sl_wfx_signal_level_t

Signal levels.

Enumerator
SL_WFX_SIGNAL_LOW

Signal level is low.

SL_WFX_SIGNAL_HIGH

Signal level is high.

Definition at line 802 of file sl_wfx_general_api.h .