A library implementing IEEE 802.15.4 PHY functionality for the MCR20A transceiver. The PHY sublayer provides two services: the PHY data service and the PHY management service interfacing to the PHY sublayer management entity (PLME) service access point (SAP) (known as PLME-SAP). The PHY data service enables the transmission and reception of PHY protocol data units (PSDUs) over the media (radio).

Fork of fsl_phy_mcr20a by Freescale

The Freescale PHY Layer deals with the physical burst which is to be sent and/or received. It performs modulation and demodulation, transmitter and receiver switching, fragmentation, scrambling, interleaving, and error correction coding. The communication to the upper protocol layers is carried out through the Layer 1 Interface.

The PHY Layer is capable of executing the following sequences:

  • I (Idle)
  • R (Receive Sequence conditionally followed by a TxAck)
  • T (Transmit Sequence)
  • C (Standalone CCA)
  • CCCA (Continuous CCA)
  • TR (Transmit/Receive Sequence - transmit unconditionally followed by either an R or RxAck)

In addition to these sequences the PHY Layer also integrates a packet processor which determines whether the packet is MAC-compliant, and if it is, whether it is addressed to the end device. Another feature of the packet processor is Source Address Matching which can be viewed as an extension of packet filtering; however its function is very specific to its intended application (data-polling and indirect queue management by a PAN Coordinator).

Documentation

MCR20A PHY Reference Manual

Committer:
andreikovacs
Date:
Tue Aug 18 12:41:42 2015 +0000
Revision:
0:764779eedf2d
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
andreikovacs 0:764779eedf2d 1 /*!
andreikovacs 0:764779eedf2d 2 * Copyright (c) 2015, Freescale Semiconductor, Inc.
andreikovacs 0:764779eedf2d 3 * All rights reserved.
andreikovacs 0:764779eedf2d 4 *
andreikovacs 0:764779eedf2d 5 * \file Phy.h
andreikovacs 0:764779eedf2d 6 *
andreikovacs 0:764779eedf2d 7 * Redistribution and use in source and binary forms, with or without modification,
andreikovacs 0:764779eedf2d 8 * are permitted provided that the following conditions are met:
andreikovacs 0:764779eedf2d 9 *
andreikovacs 0:764779eedf2d 10 * o Redistributions of source code must retain the above copyright notice, this list
andreikovacs 0:764779eedf2d 11 * of conditions and the following disclaimer.
andreikovacs 0:764779eedf2d 12 *
andreikovacs 0:764779eedf2d 13 * o Redistributions in binary form must reproduce the above copyright notice, this
andreikovacs 0:764779eedf2d 14 * list of conditions and the following disclaimer in the documentation and/or
andreikovacs 0:764779eedf2d 15 * other materials provided with the distribution.
andreikovacs 0:764779eedf2d 16 *
andreikovacs 0:764779eedf2d 17 * o Neither the name of Freescale Semiconductor, Inc. nor the names of its
andreikovacs 0:764779eedf2d 18 * contributors may be used to endorse or promote products derived from this
andreikovacs 0:764779eedf2d 19 * software without specific prior written permission.
andreikovacs 0:764779eedf2d 20 *
andreikovacs 0:764779eedf2d 21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
andreikovacs 0:764779eedf2d 22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
andreikovacs 0:764779eedf2d 23 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
andreikovacs 0:764779eedf2d 24 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
andreikovacs 0:764779eedf2d 25 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
andreikovacs 0:764779eedf2d 26 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
andreikovacs 0:764779eedf2d 27 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
andreikovacs 0:764779eedf2d 28 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
andreikovacs 0:764779eedf2d 29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
andreikovacs 0:764779eedf2d 30 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
andreikovacs 0:764779eedf2d 31 */
andreikovacs 0:764779eedf2d 32
andreikovacs 0:764779eedf2d 33 #ifndef __PHY_H__
andreikovacs 0:764779eedf2d 34 #define __PHY_H__
andreikovacs 0:764779eedf2d 35
andreikovacs 0:764779eedf2d 36
andreikovacs 0:764779eedf2d 37 /*****************************************************************************
andreikovacs 0:764779eedf2d 38 * INCLUDED HEADERS *
andreikovacs 0:764779eedf2d 39 *---------------------------------------------------------------------------*
andreikovacs 0:764779eedf2d 40 * Add to this section all the headers that this module needs to include. *
andreikovacs 0:764779eedf2d 41 * Note that it is not a good practice to include header files into header *
andreikovacs 0:764779eedf2d 42 * files, so use this section only if there is no other better solution. *
andreikovacs 0:764779eedf2d 43 *---------------------------------------------------------------------------*
andreikovacs 0:764779eedf2d 44 *****************************************************************************/
andreikovacs 0:764779eedf2d 45
andreikovacs 0:764779eedf2d 46 #include "EmbeddedTypes.h"
andreikovacs 0:764779eedf2d 47 #include "PhyInterface.h"
andreikovacs 0:764779eedf2d 48 //#include "fsl_os_abstraction.h"
andreikovacs 0:764779eedf2d 49
andreikovacs 0:764779eedf2d 50 /*****************************************************************************
andreikovacs 0:764779eedf2d 51 * PUBLIC MACROS, DEFINITIONS *
andreikovacs 0:764779eedf2d 52 *---------------------------------------------------------------------------*
andreikovacs 0:764779eedf2d 53 * Add to this section all the access macros, registers mappings, bit access *
andreikovacs 0:764779eedf2d 54 * macros, masks, flags etc ...
andreikovacs 0:764779eedf2d 55 *---------------------------------------------------------------------------*
andreikovacs 0:764779eedf2d 56 *****************************************************************************/
andreikovacs 0:764779eedf2d 57
andreikovacs 0:764779eedf2d 58 #ifdef __cplusplus
andreikovacs 0:764779eedf2d 59 extern "C" {
andreikovacs 0:764779eedf2d 60 #endif
andreikovacs 0:764779eedf2d 61
andreikovacs 0:764779eedf2d 62 #ifdef _DEBUG
andreikovacs 0:764779eedf2d 63 #ifdef gPHY_802_15_4g_d
andreikovacs 0:764779eedf2d 64 #define MAC_PHY_DEBUG
andreikovacs 0:764779eedf2d 65 #endif
andreikovacs 0:764779eedf2d 66 #endif
andreikovacs 0:764779eedf2d 67
andreikovacs 0:764779eedf2d 68 #ifndef gSnifferCRCEnabled_d
andreikovacs 0:764779eedf2d 69 #define gSnifferCRCEnabled_d (0)
andreikovacs 0:764779eedf2d 70 #endif
andreikovacs 0:764779eedf2d 71
andreikovacs 0:764779eedf2d 72 #ifndef gUseStandaloneCCABeforeTx_d
andreikovacs 0:764779eedf2d 73 #define gUseStandaloneCCABeforeTx_d (1)
andreikovacs 0:764779eedf2d 74 #endif
andreikovacs 0:764779eedf2d 75
andreikovacs 0:764779eedf2d 76 #ifndef gUsePBTransferThereshold_d
andreikovacs 0:764779eedf2d 77 #define gUsePBTransferThereshold_d (0)
andreikovacs 0:764779eedf2d 78 #endif
andreikovacs 0:764779eedf2d 79
andreikovacs 0:764779eedf2d 80 #ifndef gPhyRxRetryInterval_c
andreikovacs 0:764779eedf2d 81 #define gPhyRxRetryInterval_c (100) /* [symbols] */
andreikovacs 0:764779eedf2d 82 #endif
andreikovacs 0:764779eedf2d 83
andreikovacs 0:764779eedf2d 84 #ifndef gPhyMsgQueueMax_c
andreikovacs 0:764779eedf2d 85 #define gPhyMsgQueueMax_c (10) /* [list entries] */
andreikovacs 0:764779eedf2d 86 #endif
andreikovacs 0:764779eedf2d 87
andreikovacs 0:764779eedf2d 88 // PHY states
andreikovacs 0:764779eedf2d 89 enum {
andreikovacs 0:764779eedf2d 90 gIdle_c,
andreikovacs 0:764779eedf2d 91 gRX_c,
andreikovacs 0:764779eedf2d 92 gTX_c,
andreikovacs 0:764779eedf2d 93 gCCA_c,
andreikovacs 0:764779eedf2d 94 gTR_c,
andreikovacs 0:764779eedf2d 95 gCCCA_c,
andreikovacs 0:764779eedf2d 96 #ifdef gPHY_802_15_4g_d
andreikovacs 0:764779eedf2d 97 gED_c
andreikovacs 0:764779eedf2d 98 #endif // gPHY_802_15_4g_d
andreikovacs 0:764779eedf2d 99 };
andreikovacs 0:764779eedf2d 100
andreikovacs 0:764779eedf2d 101 // PHY channel state
andreikovacs 0:764779eedf2d 102 enum {
andreikovacs 0:764779eedf2d 103 gChannelIdle_c,
andreikovacs 0:764779eedf2d 104 gChannelBusy_c
andreikovacs 0:764779eedf2d 105 };
andreikovacs 0:764779eedf2d 106
andreikovacs 0:764779eedf2d 107 // PANCORDNTR bit in PP
andreikovacs 0:764779eedf2d 108 enum {
andreikovacs 0:764779eedf2d 109 gMacRole_DeviceOrCoord_c,
andreikovacs 0:764779eedf2d 110 gMacRole_PanCoord_c
andreikovacs 0:764779eedf2d 111 };
andreikovacs 0:764779eedf2d 112
andreikovacs 0:764779eedf2d 113 // Cca types
andreikovacs 0:764779eedf2d 114 enum {
andreikovacs 0:764779eedf2d 115 gCcaED_c, // energy detect - CCA bit not active, not to be used for T and CCCA sequences
andreikovacs 0:764779eedf2d 116 gCcaCCA_MODE1_c, // energy detect - CCA bit ACTIVE
andreikovacs 0:764779eedf2d 117 gCcaCCA_MODE2_c, // 802.15.4 compliant signal detect - CCA bit ACTIVE
andreikovacs 0:764779eedf2d 118 gCcaCCA_MODE3_c, //
andreikovacs 0:764779eedf2d 119 gInvalidCcaType_c // illegal type
andreikovacs 0:764779eedf2d 120 };
andreikovacs 0:764779eedf2d 121
andreikovacs 0:764779eedf2d 122 enum {
andreikovacs 0:764779eedf2d 123 gNormalCca_c,
andreikovacs 0:764779eedf2d 124 gContinuousCca_c
andreikovacs 0:764779eedf2d 125 };
andreikovacs 0:764779eedf2d 126
andreikovacs 0:764779eedf2d 127
andreikovacs 0:764779eedf2d 128 /*****************************************************************************
andreikovacs 0:764779eedf2d 129 * Public type definitions *
andreikovacs 0:764779eedf2d 130 *****************************************************************************/
andreikovacs 0:764779eedf2d 131 typedef struct macPhyInputQueue_tag
andreikovacs 0:764779eedf2d 132 {
andreikovacs 0:764779eedf2d 133 uint32_t msgInIdx;
andreikovacs 0:764779eedf2d 134 phyMessageHeader_t * pMsgIn[gPhyMsgQueueMax_c];
andreikovacs 0:764779eedf2d 135 } macPhyInputQueue_t;
andreikovacs 0:764779eedf2d 136
andreikovacs 0:764779eedf2d 137 typedef struct Phy_PhyLocalStruct_tag
andreikovacs 0:764779eedf2d 138 {
andreikovacs 0:764779eedf2d 139 PD_MAC_SapHandler_t PD_MAC_SapHandler;
andreikovacs 0:764779eedf2d 140 PLME_MAC_SapHandler_t PLME_MAC_SapHandler;
andreikovacs 0:764779eedf2d 141 // event_t phyTaskEventId;
andreikovacs 0:764779eedf2d 142 // msgQueue_t macPhyInputQueue;
andreikovacs 0:764779eedf2d 143 macPhyInputQueue_t macPhyInputQueue;
andreikovacs 0:764779eedf2d 144 uint32_t maxFrameWaitTime;
andreikovacs 0:764779eedf2d 145 volatile phyTxParams_t txParams;
andreikovacs 0:764779eedf2d 146 union{
andreikovacs 0:764779eedf2d 147 volatile phyRxParams_t rxParams;
andreikovacs 0:764779eedf2d 148 volatile phyChannelParams_t channelParams;
andreikovacs 0:764779eedf2d 149 };
andreikovacs 0:764779eedf2d 150 #ifdef gPHY_802_15_4g_d
andreikovacs 0:764779eedf2d 151 volatile phyFlags_t flags;
andreikovacs 0:764779eedf2d 152 phyTime_t startTime;
andreikovacs 0:764779eedf2d 153 uint16_t phyUnavailableQueuePos;
andreikovacs 0:764779eedf2d 154 uint16_t phyIndirectQueue[gPhyIndirectQueueSize_c];
andreikovacs 0:764779eedf2d 155 uint16_t fcs;
andreikovacs 0:764779eedf2d 156 uint8_t macPanID[2];
andreikovacs 0:764779eedf2d 157 uint8_t macShortAddress[2];
andreikovacs 0:764779eedf2d 158 uint8_t macLongAddress[8];
andreikovacs 0:764779eedf2d 159 #else
andreikovacs 0:764779eedf2d 160 volatile uint8_t flags;
andreikovacs 0:764779eedf2d 161 #endif // gPHY_802_15_4g_d
andreikovacs 0:764779eedf2d 162 uint8_t currentMacInstance;
andreikovacs 0:764779eedf2d 163 }Phy_PhyLocalStruct_t;
andreikovacs 0:764779eedf2d 164
andreikovacs 0:764779eedf2d 165
andreikovacs 0:764779eedf2d 166 /*****************************************************************************
andreikovacs 0:764779eedf2d 167 * Public macros *
andreikovacs 0:764779eedf2d 168 *****************************************************************************/
andreikovacs 0:764779eedf2d 169
andreikovacs 0:764779eedf2d 170 #define PhyGetSeqState() PhyPpGetState()
andreikovacs 0:764779eedf2d 171 #define PhyPlmeForceTrxOffRequest() PhyAbort()
andreikovacs 0:764779eedf2d 172
andreikovacs 0:764779eedf2d 173
andreikovacs 0:764779eedf2d 174 /*****************************************************************************
andreikovacs 0:764779eedf2d 175 * Public prototypes *
andreikovacs 0:764779eedf2d 176 *****************************************************************************/
andreikovacs 0:764779eedf2d 177
andreikovacs 0:764779eedf2d 178 // PHY Packet Processor
andreikovacs 0:764779eedf2d 179
andreikovacs 0:764779eedf2d 180 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 181 * Name: PhyHwInit
andreikovacs 0:764779eedf2d 182 * Description: -
andreikovacs 0:764779eedf2d 183 * Parameters: -
andreikovacs 0:764779eedf2d 184 * Return: -
andreikovacs 0:764779eedf2d 185 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 186 void PhyHwInit
andreikovacs 0:764779eedf2d 187 (
andreikovacs 0:764779eedf2d 188 void
andreikovacs 0:764779eedf2d 189 );
andreikovacs 0:764779eedf2d 190
andreikovacs 0:764779eedf2d 191 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 192 * Name: PhyPpSetPromiscuous
andreikovacs 0:764779eedf2d 193 * Description: -
andreikovacs 0:764779eedf2d 194 * Parameters: -
andreikovacs 0:764779eedf2d 195 * Return: -
andreikovacs 0:764779eedf2d 196 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 197 void PhyPpSetPromiscuous
andreikovacs 0:764779eedf2d 198 (
andreikovacs 0:764779eedf2d 199 bool_t mode
andreikovacs 0:764779eedf2d 200 );
andreikovacs 0:764779eedf2d 201
andreikovacs 0:764779eedf2d 202 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 203 * Name: PhySetActivePromState()
andreikovacs 0:764779eedf2d 204 * Description: -
andreikovacs 0:764779eedf2d 205 * Parameters: -
andreikovacs 0:764779eedf2d 206 * Return: -
andreikovacs 0:764779eedf2d 207 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 208 void PhySetActivePromiscuous
andreikovacs 0:764779eedf2d 209 (
andreikovacs 0:764779eedf2d 210 bool_t state
andreikovacs 0:764779eedf2d 211 );
andreikovacs 0:764779eedf2d 212
andreikovacs 0:764779eedf2d 213 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 214 * Name: PhyGetActivePromiscuous()
andreikovacs 0:764779eedf2d 215 * Description: -
andreikovacs 0:764779eedf2d 216 * Parameters: -
andreikovacs 0:764779eedf2d 217 * Return: - TRUE/FALSE
andreikovacs 0:764779eedf2d 218 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 219 bool_t PhyGetActivePromiscuous
andreikovacs 0:764779eedf2d 220 (
andreikovacs 0:764779eedf2d 221 void
andreikovacs 0:764779eedf2d 222 );
andreikovacs 0:764779eedf2d 223
andreikovacs 0:764779eedf2d 224 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 225 * Name: PhyPpSetPanId
andreikovacs 0:764779eedf2d 226 * Description: -
andreikovacs 0:764779eedf2d 227 * Parameters: -
andreikovacs 0:764779eedf2d 228 * Return: -
andreikovacs 0:764779eedf2d 229 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 230 phyStatus_t PhyPpSetPanId
andreikovacs 0:764779eedf2d 231 (
andreikovacs 0:764779eedf2d 232 uint8_t *pPanId,
andreikovacs 0:764779eedf2d 233 uint8_t pan
andreikovacs 0:764779eedf2d 234 );
andreikovacs 0:764779eedf2d 235
andreikovacs 0:764779eedf2d 236 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 237 * Name: PhyPpSetShortAddr
andreikovacs 0:764779eedf2d 238 * Description: -
andreikovacs 0:764779eedf2d 239 * Parameters: -
andreikovacs 0:764779eedf2d 240 * Return: -
andreikovacs 0:764779eedf2d 241 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 242 phyStatus_t PhyPpSetShortAddr
andreikovacs 0:764779eedf2d 243 (
andreikovacs 0:764779eedf2d 244 uint8_t *pShortAddr,
andreikovacs 0:764779eedf2d 245 uint8_t pan
andreikovacs 0:764779eedf2d 246 );
andreikovacs 0:764779eedf2d 247
andreikovacs 0:764779eedf2d 248
andreikovacs 0:764779eedf2d 249 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 250 * Name: PhyPpSetLongAddr
andreikovacs 0:764779eedf2d 251 * Description: -
andreikovacs 0:764779eedf2d 252 * Parameters: -
andreikovacs 0:764779eedf2d 253 * Return: -
andreikovacs 0:764779eedf2d 254 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 255 phyStatus_t PhyPpSetLongAddr
andreikovacs 0:764779eedf2d 256 (
andreikovacs 0:764779eedf2d 257 uint8_t *pLongAddr,
andreikovacs 0:764779eedf2d 258 uint8_t pan
andreikovacs 0:764779eedf2d 259 );
andreikovacs 0:764779eedf2d 260
andreikovacs 0:764779eedf2d 261 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 262 * Name: PhyPpSetMacRole
andreikovacs 0:764779eedf2d 263 * Description: -
andreikovacs 0:764779eedf2d 264 * Parameters: -
andreikovacs 0:764779eedf2d 265 * Return: -
andreikovacs 0:764779eedf2d 266 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 267 phyStatus_t PhyPpSetMacRole
andreikovacs 0:764779eedf2d 268 (
andreikovacs 0:764779eedf2d 269 bool_t macRole,
andreikovacs 0:764779eedf2d 270 uint8_t pan
andreikovacs 0:764779eedf2d 271 );
andreikovacs 0:764779eedf2d 272
andreikovacs 0:764779eedf2d 273
andreikovacs 0:764779eedf2d 274 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 275 * Name: PhyPpIsTxAckDataPending
andreikovacs 0:764779eedf2d 276 * Description: -
andreikovacs 0:764779eedf2d 277 * Parameters: -
andreikovacs 0:764779eedf2d 278 * Return: -
andreikovacs 0:764779eedf2d 279 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 280 bool_t PhyPpIsTxAckDataPending
andreikovacs 0:764779eedf2d 281 (
andreikovacs 0:764779eedf2d 282 void
andreikovacs 0:764779eedf2d 283 );
andreikovacs 0:764779eedf2d 284
andreikovacs 0:764779eedf2d 285 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 286 * Name: PhyPpIsRxAckDataPending
andreikovacs 0:764779eedf2d 287 * Description: -
andreikovacs 0:764779eedf2d 288 * Parameters: -
andreikovacs 0:764779eedf2d 289 * Return: -
andreikovacs 0:764779eedf2d 290 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 291 bool_t PhyPpIsRxAckDataPending
andreikovacs 0:764779eedf2d 292 (
andreikovacs 0:764779eedf2d 293 void
andreikovacs 0:764779eedf2d 294 );
andreikovacs 0:764779eedf2d 295
andreikovacs 0:764779eedf2d 296 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 297 * Name: PhyPpSetFpManually
andreikovacs 0:764779eedf2d 298 * Description: -
andreikovacs 0:764779eedf2d 299 * Parameters: -
andreikovacs 0:764779eedf2d 300 * Return: -
andreikovacs 0:764779eedf2d 301 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 302 void PhyPpSetFpManually
andreikovacs 0:764779eedf2d 303 (
andreikovacs 0:764779eedf2d 304 bool_t FP
andreikovacs 0:764779eedf2d 305 );
andreikovacs 0:764779eedf2d 306
andreikovacs 0:764779eedf2d 307 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 308 * Name: PhyPpIsPollIndication
andreikovacs 0:764779eedf2d 309 * Description: -
andreikovacs 0:764779eedf2d 310 * Parameters: -
andreikovacs 0:764779eedf2d 311 * Return: -
andreikovacs 0:764779eedf2d 312 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 313 bool_t PhyPpIsPollIndication
andreikovacs 0:764779eedf2d 314 (
andreikovacs 0:764779eedf2d 315 void
andreikovacs 0:764779eedf2d 316 );
andreikovacs 0:764779eedf2d 317
andreikovacs 0:764779eedf2d 318 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 319 * Name: PhyPpSetSAMState
andreikovacs 0:764779eedf2d 320 * Description: -
andreikovacs 0:764779eedf2d 321 * Parameters: -
andreikovacs 0:764779eedf2d 322 * Return: -
andreikovacs 0:764779eedf2d 323 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 324 void PhyPpSetSAMState
andreikovacs 0:764779eedf2d 325 (
andreikovacs 0:764779eedf2d 326 bool_t state
andreikovacs 0:764779eedf2d 327 );
andreikovacs 0:764779eedf2d 328
andreikovacs 0:764779eedf2d 329 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 330 * Name: Phy_IndirectQueueChecksum
andreikovacs 0:764779eedf2d 331 * Description: Function called to compute the checksum for a 16bit or 64bit address
andreikovacs 0:764779eedf2d 332 * in the same way as the transceiver
andreikovacs 0:764779eedf2d 333 * Parameters: -
andreikovacs 0:764779eedf2d 334 * Return: -
andreikovacs 0:764779eedf2d 335 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 336 #ifdef gPHY_802_15_4g_d
andreikovacs 0:764779eedf2d 337 uint16_t Phy_IndirectQueueChecksum
andreikovacs 0:764779eedf2d 338 (
andreikovacs 0:764779eedf2d 339 bool_t addrType,
andreikovacs 0:764779eedf2d 340 uint64_t address,
andreikovacs 0:764779eedf2d 341 uint16_t panId
andreikovacs 0:764779eedf2d 342 );
andreikovacs 0:764779eedf2d 343 #endif // gPHY_802_15_4g_d
andreikovacs 0:764779eedf2d 344
andreikovacs 0:764779eedf2d 345 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 346 * Name: PhyPp_IndirectQueueInsert
andreikovacs 0:764779eedf2d 347 * Description: -
andreikovacs 0:764779eedf2d 348 * Parameters: -
andreikovacs 0:764779eedf2d 349 * Return: -
andreikovacs 0:764779eedf2d 350 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 351 phyStatus_t PhyPp_IndirectQueueInsert
andreikovacs 0:764779eedf2d 352 (
andreikovacs 0:764779eedf2d 353 uint8_t index,
andreikovacs 0:764779eedf2d 354 uint16_t checkSum,
andreikovacs 0:764779eedf2d 355 instanceId_t instanceId
andreikovacs 0:764779eedf2d 356 );
andreikovacs 0:764779eedf2d 357
andreikovacs 0:764779eedf2d 358 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 359 * Name: PhyPp_RemoveFromIndirect
andreikovacs 0:764779eedf2d 360 * Description: -
andreikovacs 0:764779eedf2d 361 * Parameters: -
andreikovacs 0:764779eedf2d 362 * Return: -
andreikovacs 0:764779eedf2d 363 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 364 phyStatus_t PhyPp_RemoveFromIndirect
andreikovacs 0:764779eedf2d 365 (
andreikovacs 0:764779eedf2d 366 uint8_t index,
andreikovacs 0:764779eedf2d 367 instanceId_t instanceId
andreikovacs 0:764779eedf2d 368 );
andreikovacs 0:764779eedf2d 369
andreikovacs 0:764779eedf2d 370 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 371 * Name: PhyPpGetState
andreikovacs 0:764779eedf2d 372 * Description: -
andreikovacs 0:764779eedf2d 373 * Parameters: -
andreikovacs 0:764779eedf2d 374 * Return: -
andreikovacs 0:764779eedf2d 375 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 376 uint8_t PhyPpGetState
andreikovacs 0:764779eedf2d 377 (
andreikovacs 0:764779eedf2d 378 void
andreikovacs 0:764779eedf2d 379 );
andreikovacs 0:764779eedf2d 380
andreikovacs 0:764779eedf2d 381 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 382 * Name: PhySetState
andreikovacs 0:764779eedf2d 383 * Description: -
andreikovacs 0:764779eedf2d 384 * Parameters: -
andreikovacs 0:764779eedf2d 385 * Return: -
andreikovacs 0:764779eedf2d 386 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 387 #ifdef gPHY_802_15_4g_d
andreikovacs 0:764779eedf2d 388 void PhySetState
andreikovacs 0:764779eedf2d 389 (
andreikovacs 0:764779eedf2d 390 uint8_t phyState
andreikovacs 0:764779eedf2d 391 );
andreikovacs 0:764779eedf2d 392 #endif //gPHY_802_15_4g_d
andreikovacs 0:764779eedf2d 393
andreikovacs 0:764779eedf2d 394 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 395 * Name: PhyAbort
andreikovacs 0:764779eedf2d 396 * Description: -
andreikovacs 0:764779eedf2d 397 * Parameters: -
andreikovacs 0:764779eedf2d 398 * Return: -
andreikovacs 0:764779eedf2d 399 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 400 void PhyAbort
andreikovacs 0:764779eedf2d 401 (
andreikovacs 0:764779eedf2d 402 void
andreikovacs 0:764779eedf2d 403 );
andreikovacs 0:764779eedf2d 404
andreikovacs 0:764779eedf2d 405 // PHY PLME & DATA primitives
andreikovacs 0:764779eedf2d 406
andreikovacs 0:764779eedf2d 407 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 408 * Name: PhyPdDataRequest
andreikovacs 0:764779eedf2d 409 * Description: -
andreikovacs 0:764779eedf2d 410 * Parameters: -
andreikovacs 0:764779eedf2d 411 * Return: -
andreikovacs 0:764779eedf2d 412 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 413 phyStatus_t PhyPdDataRequest
andreikovacs 0:764779eedf2d 414 (
andreikovacs 0:764779eedf2d 415 pdDataReq_t *pTxPacket,
andreikovacs 0:764779eedf2d 416 volatile phyRxParams_t *pRxParams,
andreikovacs 0:764779eedf2d 417 volatile phyTxParams_t *pTxParams
andreikovacs 0:764779eedf2d 418 );
andreikovacs 0:764779eedf2d 419
andreikovacs 0:764779eedf2d 420 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 421 * Name: PhyPlmeRxRequest
andreikovacs 0:764779eedf2d 422 * Description: -
andreikovacs 0:764779eedf2d 423 * Parameters: -
andreikovacs 0:764779eedf2d 424 * Return: -
andreikovacs 0:764779eedf2d 425 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 426 phyStatus_t PhyPlmeRxRequest
andreikovacs 0:764779eedf2d 427 (
andreikovacs 0:764779eedf2d 428 phySlottedMode_t phyRxMode,
andreikovacs 0:764779eedf2d 429 phyRxParams_t * pRxParams
andreikovacs 0:764779eedf2d 430 );
andreikovacs 0:764779eedf2d 431
andreikovacs 0:764779eedf2d 432 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 433 * Name: PhyPlmeCcaEdRequest
andreikovacs 0:764779eedf2d 434 * Description: -
andreikovacs 0:764779eedf2d 435 * Parameters: -
andreikovacs 0:764779eedf2d 436 * Return: -
andreikovacs 0:764779eedf2d 437 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 438 phyStatus_t PhyPlmeCcaEdRequest
andreikovacs 0:764779eedf2d 439 (
andreikovacs 0:764779eedf2d 440 phyCCAType_t ccaParam,
andreikovacs 0:764779eedf2d 441 phyContCCAMode_t cccaMode
andreikovacs 0:764779eedf2d 442 );
andreikovacs 0:764779eedf2d 443
andreikovacs 0:764779eedf2d 444 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 445 * Name: PhyPlmeSetCurrentChannelRequest
andreikovacs 0:764779eedf2d 446 * Description: -
andreikovacs 0:764779eedf2d 447 * Parameters: -
andreikovacs 0:764779eedf2d 448 * Return: -
andreikovacs 0:764779eedf2d 449 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 450 phyStatus_t PhyPlmeSetCurrentChannelRequest
andreikovacs 0:764779eedf2d 451 (
andreikovacs 0:764779eedf2d 452 uint8_t channel,
andreikovacs 0:764779eedf2d 453 uint8_t pan
andreikovacs 0:764779eedf2d 454 );
andreikovacs 0:764779eedf2d 455
andreikovacs 0:764779eedf2d 456 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 457 * Name: PhyPlmeGetCurrentChannelRequest
andreikovacs 0:764779eedf2d 458 * Description: -
andreikovacs 0:764779eedf2d 459 * Parameters: -
andreikovacs 0:764779eedf2d 460 * Return: -
andreikovacs 0:764779eedf2d 461 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 462 uint8_t PhyPlmeGetCurrentChannelRequest
andreikovacs 0:764779eedf2d 463 (
andreikovacs 0:764779eedf2d 464 uint8_t pan
andreikovacs 0:764779eedf2d 465 );
andreikovacs 0:764779eedf2d 466
andreikovacs 0:764779eedf2d 467 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 468 * Name: PhyPlmeSetPwrLevelRequest
andreikovacs 0:764779eedf2d 469 * Description: -
andreikovacs 0:764779eedf2d 470 * Parameters: -
andreikovacs 0:764779eedf2d 471 * Return: -
andreikovacs 0:764779eedf2d 472 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 473 phyStatus_t PhyPlmeSetPwrLevelRequest
andreikovacs 0:764779eedf2d 474 (
andreikovacs 0:764779eedf2d 475 uint8_t pwrStep
andreikovacs 0:764779eedf2d 476 );
andreikovacs 0:764779eedf2d 477
andreikovacs 0:764779eedf2d 478 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 479 * Name: PhyPlmeGetPwrLevelRequest
andreikovacs 0:764779eedf2d 480 * Description: -
andreikovacs 0:764779eedf2d 481 * Parameters: -
andreikovacs 0:764779eedf2d 482 * Return: -
andreikovacs 0:764779eedf2d 483 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 484 uint8_t PhyPlmeGetPwrLevelRequest
andreikovacs 0:764779eedf2d 485 (
andreikovacs 0:764779eedf2d 486 void
andreikovacs 0:764779eedf2d 487 );
andreikovacs 0:764779eedf2d 488
andreikovacs 0:764779eedf2d 489 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 490 * Name: PhyPlmeSetPwrState
andreikovacs 0:764779eedf2d 491 * Description: -
andreikovacs 0:764779eedf2d 492 * Parameters: -
andreikovacs 0:764779eedf2d 493 * Return: -
andreikovacs 0:764779eedf2d 494 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 495 phyStatus_t PhyPlmeSetPwrState
andreikovacs 0:764779eedf2d 496 (
andreikovacs 0:764779eedf2d 497 uint8_t state
andreikovacs 0:764779eedf2d 498 );
andreikovacs 0:764779eedf2d 499
andreikovacs 0:764779eedf2d 500 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 501 * Name: PhyPlmeSetPIBRequest
andreikovacs 0:764779eedf2d 502 * Description: -
andreikovacs 0:764779eedf2d 503 * Parameters: -
andreikovacs 0:764779eedf2d 504 * Return: -
andreikovacs 0:764779eedf2d 505 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 506 phyStatus_t PhyPlmeSetPIBRequest
andreikovacs 0:764779eedf2d 507 (
andreikovacs 0:764779eedf2d 508 phyPibId_t pibId,
andreikovacs 0:764779eedf2d 509 uint64_t pibValue,
andreikovacs 0:764779eedf2d 510 uint8_t phyRegistrySet,
andreikovacs 0:764779eedf2d 511 instanceId_t instanceId
andreikovacs 0:764779eedf2d 512 );
andreikovacs 0:764779eedf2d 513
andreikovacs 0:764779eedf2d 514 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 515 * Name: PhyPlmeGetPIBRequest
andreikovacs 0:764779eedf2d 516 * Description: -
andreikovacs 0:764779eedf2d 517 * Parameters: -
andreikovacs 0:764779eedf2d 518 * Return: -
andreikovacs 0:764779eedf2d 519 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 520 phyStatus_t PhyPlmeGetPIBRequest
andreikovacs 0:764779eedf2d 521 (
andreikovacs 0:764779eedf2d 522 phyPibId_t pibId,
andreikovacs 0:764779eedf2d 523 uint64_t * pibValue,
andreikovacs 0:764779eedf2d 524 uint8_t phyRegistrySet,
andreikovacs 0:764779eedf2d 525 instanceId_t instanceId
andreikovacs 0:764779eedf2d 526 );
andreikovacs 0:764779eedf2d 527
andreikovacs 0:764779eedf2d 528 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 529 * Name: PhyPpSetCcaThreshold
andreikovacs 0:764779eedf2d 530 * Description: -
andreikovacs 0:764779eedf2d 531 * Parameters: -
andreikovacs 0:764779eedf2d 532 * Return: -
andreikovacs 0:764779eedf2d 533 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 534
andreikovacs 0:764779eedf2d 535 phyStatus_t PhyPpSetCcaThreshold
andreikovacs 0:764779eedf2d 536 (
andreikovacs 0:764779eedf2d 537 uint8_t ccaThreshold
andreikovacs 0:764779eedf2d 538 );
andreikovacs 0:764779eedf2d 539
andreikovacs 0:764779eedf2d 540 // PHY Time
andreikovacs 0:764779eedf2d 541
andreikovacs 0:764779eedf2d 542 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 543 * Name: PhyTimeSetEventTrigger
andreikovacs 0:764779eedf2d 544 * Description: -
andreikovacs 0:764779eedf2d 545 * Parameters: -
andreikovacs 0:764779eedf2d 546 * Return: -
andreikovacs 0:764779eedf2d 547 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 548 void PhyTimeSetEventTrigger
andreikovacs 0:764779eedf2d 549 (
andreikovacs 0:764779eedf2d 550 phyTime_t startTime
andreikovacs 0:764779eedf2d 551 );
andreikovacs 0:764779eedf2d 552
andreikovacs 0:764779eedf2d 553 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 554 * Name: PhyTimeSetEventTimeout
andreikovacs 0:764779eedf2d 555 * Description: -
andreikovacs 0:764779eedf2d 556 * Parameters: -
andreikovacs 0:764779eedf2d 557 * Return: -
andreikovacs 0:764779eedf2d 558 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 559 void PhyTimeSetEventTimeout
andreikovacs 0:764779eedf2d 560 (
andreikovacs 0:764779eedf2d 561 phyTime_t *pEndTime
andreikovacs 0:764779eedf2d 562 );
andreikovacs 0:764779eedf2d 563
andreikovacs 0:764779eedf2d 564 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 565 * Name: PhyTimeGetEventTimeout
andreikovacs 0:764779eedf2d 566 * Description: -
andreikovacs 0:764779eedf2d 567 * Parameters: -
andreikovacs 0:764779eedf2d 568 * Return: -
andreikovacs 0:764779eedf2d 569 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 570 uint32_t PhyTimeGetEventTimeout( void );
andreikovacs 0:764779eedf2d 571
andreikovacs 0:764779eedf2d 572 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 573 * Name: PhyTimeReadClock
andreikovacs 0:764779eedf2d 574 * Description: -
andreikovacs 0:764779eedf2d 575 * Parameters: -
andreikovacs 0:764779eedf2d 576 * Return: -
andreikovacs 0:764779eedf2d 577 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 578 void PhyTimeReadClock
andreikovacs 0:764779eedf2d 579 (
andreikovacs 0:764779eedf2d 580 phyTime_t *pRetClk
andreikovacs 0:764779eedf2d 581 );
andreikovacs 0:764779eedf2d 582
andreikovacs 0:764779eedf2d 583 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 584 * Name: PhyTimeDisableEventTimeout
andreikovacs 0:764779eedf2d 585 * Description: -
andreikovacs 0:764779eedf2d 586 * Parameters: -
andreikovacs 0:764779eedf2d 587 * Return: -
andreikovacs 0:764779eedf2d 588 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 589 void PhyTimeDisableEventTimeout
andreikovacs 0:764779eedf2d 590 (
andreikovacs 0:764779eedf2d 591 void
andreikovacs 0:764779eedf2d 592 );
andreikovacs 0:764779eedf2d 593
andreikovacs 0:764779eedf2d 594 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 595 * Name: PhyTimeDisableEventTrigger
andreikovacs 0:764779eedf2d 596 * Description: -
andreikovacs 0:764779eedf2d 597 * Parameters: -
andreikovacs 0:764779eedf2d 598 * Return: -
andreikovacs 0:764779eedf2d 599 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 600 void PhyTimeDisableEventTrigger
andreikovacs 0:764779eedf2d 601 (
andreikovacs 0:764779eedf2d 602 void
andreikovacs 0:764779eedf2d 603 );
andreikovacs 0:764779eedf2d 604
andreikovacs 0:764779eedf2d 605
andreikovacs 0:764779eedf2d 606 #ifdef gPHY_802_15_4g_d
andreikovacs 0:764779eedf2d 607 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 608 * Name: PhyTimeDisableRxTimeout
andreikovacs 0:764779eedf2d 609 * Description: -
andreikovacs 0:764779eedf2d 610 * Parameters: -
andreikovacs 0:764779eedf2d 611 * Return: -
andreikovacs 0:764779eedf2d 612 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 613 void PhyTimeDisableRxTimeout
andreikovacs 0:764779eedf2d 614 (
andreikovacs 0:764779eedf2d 615 void
andreikovacs 0:764779eedf2d 616 );
andreikovacs 0:764779eedf2d 617 #endif // gPHY_802_15_4g_d
andreikovacs 0:764779eedf2d 618
andreikovacs 0:764779eedf2d 619 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 620 * Name: PhyTimeSetWakeUpTime
andreikovacs 0:764779eedf2d 621 * Description: -
andreikovacs 0:764779eedf2d 622 * Parameters: -
andreikovacs 0:764779eedf2d 623 * Return: -
andreikovacs 0:764779eedf2d 624 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 625 void PhyTimeSetWakeUpTime
andreikovacs 0:764779eedf2d 626 (
andreikovacs 0:764779eedf2d 627 uint32_t *pWakeUpTime
andreikovacs 0:764779eedf2d 628 );
andreikovacs 0:764779eedf2d 629 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 630 * Name: PhyTimeInitEventTimer
andreikovacs 0:764779eedf2d 631 * Description: -
andreikovacs 0:764779eedf2d 632 * Parameters: -
andreikovacs 0:764779eedf2d 633 * Return: -
andreikovacs 0:764779eedf2d 634 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 635 void PhyTimeInitEventTimer
andreikovacs 0:764779eedf2d 636 (
andreikovacs 0:764779eedf2d 637 uint32_t *pAbsTime
andreikovacs 0:764779eedf2d 638 );
andreikovacs 0:764779eedf2d 639
andreikovacs 0:764779eedf2d 640 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 641 * Name: PhyTimeIsWakeUpTimeExpired
andreikovacs 0:764779eedf2d 642 * Description: -
andreikovacs 0:764779eedf2d 643 * Parameters: -
andreikovacs 0:764779eedf2d 644 * Return: -
andreikovacs 0:764779eedf2d 645 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 646 bool_t PhyTimeIsWakeUpTimeExpired
andreikovacs 0:764779eedf2d 647 (
andreikovacs 0:764779eedf2d 648 void
andreikovacs 0:764779eedf2d 649 );
andreikovacs 0:764779eedf2d 650
andreikovacs 0:764779eedf2d 651 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 652 * Name: PhyTimeSetWaitTimeout
andreikovacs 0:764779eedf2d 653 * Description: -
andreikovacs 0:764779eedf2d 654 * Parameters: -
andreikovacs 0:764779eedf2d 655 * Return: -
andreikovacs 0:764779eedf2d 656 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 657 void PhyTimeSetWaitTimeout
andreikovacs 0:764779eedf2d 658 (
andreikovacs 0:764779eedf2d 659 phyTime_t *pWaitTimeout
andreikovacs 0:764779eedf2d 660 );
andreikovacs 0:764779eedf2d 661
andreikovacs 0:764779eedf2d 662 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 663 * Name: PhyTimeDisableWaitTimeout
andreikovacs 0:764779eedf2d 664 * Description: -
andreikovacs 0:764779eedf2d 665 * Parameters: -
andreikovacs 0:764779eedf2d 666 * Return: -
andreikovacs 0:764779eedf2d 667 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 668 void PhyTimeDisableWaitTimeout
andreikovacs 0:764779eedf2d 669 (
andreikovacs 0:764779eedf2d 670 void
andreikovacs 0:764779eedf2d 671 );
andreikovacs 0:764779eedf2d 672
andreikovacs 0:764779eedf2d 673 // PHY ISR
andreikovacs 0:764779eedf2d 674
andreikovacs 0:764779eedf2d 675 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 676 * Name: PHY_InstallIsr
andreikovacs 0:764779eedf2d 677 * Description: -
andreikovacs 0:764779eedf2d 678 * Parameters: -
andreikovacs 0:764779eedf2d 679 * Return: -
andreikovacs 0:764779eedf2d 680 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 681 void PHY_InstallIsr
andreikovacs 0:764779eedf2d 682 (
andreikovacs 0:764779eedf2d 683 void
andreikovacs 0:764779eedf2d 684 );
andreikovacs 0:764779eedf2d 685
andreikovacs 0:764779eedf2d 686 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 687 * Name: PHY_InterruptHandler
andreikovacs 0:764779eedf2d 688 * Description: -
andreikovacs 0:764779eedf2d 689 * Parameters: -
andreikovacs 0:764779eedf2d 690 * Return: -
andreikovacs 0:764779eedf2d 691 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 692 void PHY_InterruptHandler
andreikovacs 0:764779eedf2d 693 (
andreikovacs 0:764779eedf2d 694 void
andreikovacs 0:764779eedf2d 695 );
andreikovacs 0:764779eedf2d 696
andreikovacs 0:764779eedf2d 697
andreikovacs 0:764779eedf2d 698 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 699 * Name: PhyIsrPassRxParams()
andreikovacs 0:764779eedf2d 700 * Description: -
andreikovacs 0:764779eedf2d 701 * Parameters: -
andreikovacs 0:764779eedf2d 702 * Return: -
andreikovacs 0:764779eedf2d 703 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 704 void PhyIsrPassRxParams
andreikovacs 0:764779eedf2d 705 (
andreikovacs 0:764779eedf2d 706 volatile phyRxParams_t * pRxParam
andreikovacs 0:764779eedf2d 707 );
andreikovacs 0:764779eedf2d 708
andreikovacs 0:764779eedf2d 709 #ifdef gPHY_802_15_4g_d
andreikovacs 0:764779eedf2d 710 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 711 * Name: PhyIsrPassRxParams()
andreikovacs 0:764779eedf2d 712 * Description: -
andreikovacs 0:764779eedf2d 713 * Parameters: -
andreikovacs 0:764779eedf2d 714 * Return: -
andreikovacs 0:764779eedf2d 715 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 716 uint8_t PhyPassTxParams
andreikovacs 0:764779eedf2d 717 (
andreikovacs 0:764779eedf2d 718 pdDataReq_t *pTxParam
andreikovacs 0:764779eedf2d 719 );
andreikovacs 0:764779eedf2d 720 #endif // gPHY_802_15_4g_d
andreikovacs 0:764779eedf2d 721
andreikovacs 0:764779eedf2d 722 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 723 * Name: PhyIsrPassTaskParams()
andreikovacs 0:764779eedf2d 724 * Description: -
andreikovacs 0:764779eedf2d 725 * Parameters: -
andreikovacs 0:764779eedf2d 726 * Return: -
andreikovacs 0:764779eedf2d 727 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 728 void PhyIsrPassTaskParams
andreikovacs 0:764779eedf2d 729 (
andreikovacs 0:764779eedf2d 730 instanceId_t instanceId
andreikovacs 0:764779eedf2d 731 );
andreikovacs 0:764779eedf2d 732
andreikovacs 0:764779eedf2d 733
andreikovacs 0:764779eedf2d 734 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 735 * Name: PhyIsrTimeoutCleanup
andreikovacs 0:764779eedf2d 736 * Description: -
andreikovacs 0:764779eedf2d 737 * Parameters: -
andreikovacs 0:764779eedf2d 738 * Return: -
andreikovacs 0:764779eedf2d 739 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 740 void PhyIsrTimeoutCleanup
andreikovacs 0:764779eedf2d 741 (
andreikovacs 0:764779eedf2d 742 void
andreikovacs 0:764779eedf2d 743 );
andreikovacs 0:764779eedf2d 744
andreikovacs 0:764779eedf2d 745 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 746 * Name: PhyIsrSeqCleanup
andreikovacs 0:764779eedf2d 747 * Description: -
andreikovacs 0:764779eedf2d 748 * Parameters: -
andreikovacs 0:764779eedf2d 749 * Return: -
andreikovacs 0:764779eedf2d 750 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 751 void PhyIsrSeqCleanup
andreikovacs 0:764779eedf2d 752 (
andreikovacs 0:764779eedf2d 753 void
andreikovacs 0:764779eedf2d 754 );
andreikovacs 0:764779eedf2d 755
andreikovacs 0:764779eedf2d 756 /*****************************************************************************
andreikovacs 0:764779eedf2d 757 * PhyGetRandomNo function
andreikovacs 0:764779eedf2d 758 *
andreikovacs 0:764779eedf2d 759 * Interface assumptions:
andreikovacs 0:764779eedf2d 760 *
andreikovacs 0:764779eedf2d 761 * Return Value:
andreikovacs 0:764779eedf2d 762 * None
andreikovacs 0:764779eedf2d 763 *****************************************************************************/
andreikovacs 0:764779eedf2d 764 void PhyGetRandomNo
andreikovacs 0:764779eedf2d 765 (
andreikovacs 0:764779eedf2d 766 uint32_t *pRandomNo
andreikovacs 0:764779eedf2d 767 );
andreikovacs 0:764779eedf2d 768
andreikovacs 0:764779eedf2d 769 /*****************************************************************************
andreikovacs 0:764779eedf2d 770 * PhyPpSetDualPanAuto function
andreikovacs 0:764779eedf2d 771 *
andreikovacs 0:764779eedf2d 772 * Interface assumptions:
andreikovacs 0:764779eedf2d 773 *
andreikovacs 0:764779eedf2d 774 * Return Value:
andreikovacs 0:764779eedf2d 775 * None
andreikovacs 0:764779eedf2d 776 *****************************************************************************/
andreikovacs 0:764779eedf2d 777 void PhyPpSetDualPanAuto
andreikovacs 0:764779eedf2d 778 (
andreikovacs 0:764779eedf2d 779 bool_t mode
andreikovacs 0:764779eedf2d 780 );
andreikovacs 0:764779eedf2d 781
andreikovacs 0:764779eedf2d 782 /*****************************************************************************
andreikovacs 0:764779eedf2d 783 * PhyPpGetDualPanAuto function
andreikovacs 0:764779eedf2d 784 *
andreikovacs 0:764779eedf2d 785 * Interface assumptions:
andreikovacs 0:764779eedf2d 786 *
andreikovacs 0:764779eedf2d 787 * Return Value:
andreikovacs 0:764779eedf2d 788 * None
andreikovacs 0:764779eedf2d 789 *****************************************************************************/
andreikovacs 0:764779eedf2d 790 bool_t PhyPpGetDualPanAuto
andreikovacs 0:764779eedf2d 791 (
andreikovacs 0:764779eedf2d 792 void
andreikovacs 0:764779eedf2d 793 );
andreikovacs 0:764779eedf2d 794
andreikovacs 0:764779eedf2d 795 /*****************************************************************************
andreikovacs 0:764779eedf2d 796 * PhyPpSetDualPanDwell function
andreikovacs 0:764779eedf2d 797 *
andreikovacs 0:764779eedf2d 798 * Interface assumptions:
andreikovacs 0:764779eedf2d 799 *
andreikovacs 0:764779eedf2d 800 * Return Value:
andreikovacs 0:764779eedf2d 801 * None
andreikovacs 0:764779eedf2d 802 *****************************************************************************/
andreikovacs 0:764779eedf2d 803 void PhyPpSetDualPanDwell
andreikovacs 0:764779eedf2d 804 (
andreikovacs 0:764779eedf2d 805 uint8_t
andreikovacs 0:764779eedf2d 806 );
andreikovacs 0:764779eedf2d 807
andreikovacs 0:764779eedf2d 808 /*****************************************************************************
andreikovacs 0:764779eedf2d 809 * PhyPpGetDualPanDwell function
andreikovacs 0:764779eedf2d 810 *
andreikovacs 0:764779eedf2d 811 * Interface assumptions:
andreikovacs 0:764779eedf2d 812 *
andreikovacs 0:764779eedf2d 813 * Return Value:
andreikovacs 0:764779eedf2d 814 * None
andreikovacs 0:764779eedf2d 815 *****************************************************************************/
andreikovacs 0:764779eedf2d 816 uint8_t PhyPpGetDualPanDwell
andreikovacs 0:764779eedf2d 817 (
andreikovacs 0:764779eedf2d 818 void
andreikovacs 0:764779eedf2d 819 );
andreikovacs 0:764779eedf2d 820
andreikovacs 0:764779eedf2d 821 /*****************************************************************************
andreikovacs 0:764779eedf2d 822 * PhyPpGetDualPanRemain function
andreikovacs 0:764779eedf2d 823 *
andreikovacs 0:764779eedf2d 824 * Interface assumptions:
andreikovacs 0:764779eedf2d 825 *
andreikovacs 0:764779eedf2d 826 * Return Value:
andreikovacs 0:764779eedf2d 827 * The remaining time until a channel switch will occure
andreikovacs 0:764779eedf2d 828 *****************************************************************************/
andreikovacs 0:764779eedf2d 829 uint8_t PhyPpGetDualPanRemain
andreikovacs 0:764779eedf2d 830 (
andreikovacs 0:764779eedf2d 831 void
andreikovacs 0:764779eedf2d 832 );
andreikovacs 0:764779eedf2d 833
andreikovacs 0:764779eedf2d 834 /*****************************************************************************
andreikovacs 0:764779eedf2d 835 * PhyPpSetDualPanSamLvl function
andreikovacs 0:764779eedf2d 836 *
andreikovacs 0:764779eedf2d 837 * Interface assumptions:
andreikovacs 0:764779eedf2d 838 *
andreikovacs 0:764779eedf2d 839 * Return Value:
andreikovacs 0:764779eedf2d 840 * None
andreikovacs 0:764779eedf2d 841 *****************************************************************************/
andreikovacs 0:764779eedf2d 842 void PhyPpSetDualPanSamLvl
andreikovacs 0:764779eedf2d 843 (
andreikovacs 0:764779eedf2d 844 uint8_t
andreikovacs 0:764779eedf2d 845 );
andreikovacs 0:764779eedf2d 846
andreikovacs 0:764779eedf2d 847 /*****************************************************************************
andreikovacs 0:764779eedf2d 848 * PhyPpGetDualPanSamLvl function
andreikovacs 0:764779eedf2d 849 *
andreikovacs 0:764779eedf2d 850 * Interface assumptions:
andreikovacs 0:764779eedf2d 851 *
andreikovacs 0:764779eedf2d 852 * Return Value:
andreikovacs 0:764779eedf2d 853 * The level at which the HW queue is split for the two PANs
andreikovacs 0:764779eedf2d 854 *****************************************************************************/
andreikovacs 0:764779eedf2d 855 uint8_t PhyPpGetDualPanSamLvl
andreikovacs 0:764779eedf2d 856 (
andreikovacs 0:764779eedf2d 857 void
andreikovacs 0:764779eedf2d 858 );
andreikovacs 0:764779eedf2d 859
andreikovacs 0:764779eedf2d 860 /*****************************************************************************
andreikovacs 0:764779eedf2d 861 * PhyPpSetDualPanSamLvl function
andreikovacs 0:764779eedf2d 862 *
andreikovacs 0:764779eedf2d 863 * Interface assumptions:
andreikovacs 0:764779eedf2d 864 *
andreikovacs 0:764779eedf2d 865 * Return Value:
andreikovacs 0:764779eedf2d 866 * None
andreikovacs 0:764779eedf2d 867 *****************************************************************************/
andreikovacs 0:764779eedf2d 868 void PhyPpSetDualPanActiveNwk
andreikovacs 0:764779eedf2d 869 (
andreikovacs 0:764779eedf2d 870 uint8_t
andreikovacs 0:764779eedf2d 871 );
andreikovacs 0:764779eedf2d 872
andreikovacs 0:764779eedf2d 873 /*****************************************************************************
andreikovacs 0:764779eedf2d 874 * PhyPpGetDualPanActiveNwk function
andreikovacs 0:764779eedf2d 875 *
andreikovacs 0:764779eedf2d 876 * Interface assumptions:
andreikovacs 0:764779eedf2d 877 *
andreikovacs 0:764779eedf2d 878 * Return Value:
andreikovacs 0:764779eedf2d 879 * The current NWK on which the PHY is operating
andreikovacs 0:764779eedf2d 880 *****************************************************************************/
andreikovacs 0:764779eedf2d 881 uint8_t PhyPpGetDualPanActiveNwk
andreikovacs 0:764779eedf2d 882 (
andreikovacs 0:764779eedf2d 883 void
andreikovacs 0:764779eedf2d 884 );
andreikovacs 0:764779eedf2d 885
andreikovacs 0:764779eedf2d 886 /*****************************************************************************
andreikovacs 0:764779eedf2d 887 * PhyPpGetPanOfRxPacket function
andreikovacs 0:764779eedf2d 888 *
andreikovacs 0:764779eedf2d 889 * Interface assumptions:
andreikovacs 0:764779eedf2d 890 *
andreikovacs 0:764779eedf2d 891 * Return Value:
andreikovacs 0:764779eedf2d 892 * The PAN on which the packet was received (can be receiced on both PANs)
andreikovacs 0:764779eedf2d 893 *****************************************************************************/
andreikovacs 0:764779eedf2d 894 uint8_t PhyPpGetPanOfRxPacket
andreikovacs 0:764779eedf2d 895 (
andreikovacs 0:764779eedf2d 896 void
andreikovacs 0:764779eedf2d 897 );
andreikovacs 0:764779eedf2d 898
andreikovacs 0:764779eedf2d 899 #ifdef gPHY_802_15_4g_d
andreikovacs 0:764779eedf2d 900 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 901 * Name: PhyPpPassTaskParams()
andreikovacs 0:764779eedf2d 902 * Description: -
andreikovacs 0:764779eedf2d 903 * Parameters: -
andreikovacs 0:764779eedf2d 904 * Return: -
andreikovacs 0:764779eedf2d 905 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 906 void PhyPpPassTaskParams
andreikovacs 0:764779eedf2d 907 (
andreikovacs 0:764779eedf2d 908 instanceId_t instanceId
andreikovacs 0:764779eedf2d 909 );
andreikovacs 0:764779eedf2d 910
andreikovacs 0:764779eedf2d 911 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 912 * Name: PhyPpSetCSLRxEnabled()
andreikovacs 0:764779eedf2d 913 * Description: -
andreikovacs 0:764779eedf2d 914 * Parameters: -
andreikovacs 0:764779eedf2d 915 * Return: -
andreikovacs 0:764779eedf2d 916 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 917 phyStatus_t PhyPpSetCSLRxEnabled
andreikovacs 0:764779eedf2d 918 (
andreikovacs 0:764779eedf2d 919 bool_t cslRx,
andreikovacs 0:764779eedf2d 920 instanceId_t instanceId
andreikovacs 0:764779eedf2d 921 );
andreikovacs 0:764779eedf2d 922
andreikovacs 0:764779eedf2d 923 /*---------------------------------------------------------------------------
andreikovacs 0:764779eedf2d 924 * Name: PhyPib_SetCSLTxEnabled()
andreikovacs 0:764779eedf2d 925 * Description: -
andreikovacs 0:764779eedf2d 926 * Parameters: -
andreikovacs 0:764779eedf2d 927 * Return: -
andreikovacs 0:764779eedf2d 928 *---------------------------------------------------------------------------*/
andreikovacs 0:764779eedf2d 929 phyStatus_t PhyPpSetCSLTxEnabled
andreikovacs 0:764779eedf2d 930 (
andreikovacs 0:764779eedf2d 931 bool_t cslTx,
andreikovacs 0:764779eedf2d 932 instanceId_t instanceId
andreikovacs 0:764779eedf2d 933 );
andreikovacs 0:764779eedf2d 934 #endif // gPHY_802_15_4g_d
andreikovacs 0:764779eedf2d 935
andreikovacs 0:764779eedf2d 936 /*****************************************************************************
andreikovacs 0:764779eedf2d 937 * PhyGetLastRxLqiValue function
andreikovacs 0:764779eedf2d 938 *
andreikovacs 0:764779eedf2d 939 * Interface assumptions:
andreikovacs 0:764779eedf2d 940 *
andreikovacs 0:764779eedf2d 941 * Return Value:
andreikovacs 0:764779eedf2d 942 * The LQI value for the last received packet
andreikovacs 0:764779eedf2d 943 *****************************************************************************/
andreikovacs 0:764779eedf2d 944 uint8_t PhyGetLastRxLqiValue(void);
andreikovacs 0:764779eedf2d 945
andreikovacs 0:764779eedf2d 946 /*****************************************************************************
andreikovacs 0:764779eedf2d 947 * PhyGetLastRxRssiValue function
andreikovacs 0:764779eedf2d 948 *
andreikovacs 0:764779eedf2d 949 * Interface assumptions:
andreikovacs 0:764779eedf2d 950 *
andreikovacs 0:764779eedf2d 951 * Return Value:
andreikovacs 0:764779eedf2d 952 * The RSSI value for the last received packet
andreikovacs 0:764779eedf2d 953 *****************************************************************************/
andreikovacs 0:764779eedf2d 954 uint8_t PhyGetLastRxRssiValue(void);
andreikovacs 0:764779eedf2d 955
andreikovacs 0:764779eedf2d 956 /*****************************************************************************
andreikovacs 0:764779eedf2d 957 * PhyPlmeSetFADStateRequest function
andreikovacs 0:764779eedf2d 958 *
andreikovacs 0:764779eedf2d 959 * Interface assumptions: state
andreikovacs 0:764779eedf2d 960 *
andreikovacs 0:764779eedf2d 961 * Return Value: gPhySuccess
andreikovacs 0:764779eedf2d 962 *
andreikovacs 0:764779eedf2d 963 * Description: Enable the FAD function (FAD_EN bit)
andreikovacs 0:764779eedf2d 964 *****************************************************************************/
andreikovacs 0:764779eedf2d 965 uint8_t PhyPlmeSetFADStateRequest(bool_t state);
andreikovacs 0:764779eedf2d 966
andreikovacs 0:764779eedf2d 967 /*****************************************************************************
andreikovacs 0:764779eedf2d 968 * PhyPlmeSetFADThresholdRequest function
andreikovacs 0:764779eedf2d 969 *
andreikovacs 0:764779eedf2d 970 * Interface assumptions: FADThreshold
andreikovacs 0:764779eedf2d 971 *
andreikovacs 0:764779eedf2d 972 * Return Value: gPhySuccess
andreikovacs 0:764779eedf2d 973 *
andreikovacs 0:764779eedf2d 974 * Description: Correlator threshold at which the FAD will select the antenna
andreikovacs 0:764779eedf2d 975 *****************************************************************************/
andreikovacs 0:764779eedf2d 976 uint8_t PhyPlmeSetFADThresholdRequest(uint8_t FADThreshold);
andreikovacs 0:764779eedf2d 977
andreikovacs 0:764779eedf2d 978 uint8_t PhyPlmeSetANTPadStateRequest(bool_t antAB_on, bool_t rxtxSwitch_on);
andreikovacs 0:764779eedf2d 979 uint8_t PhyPlmeSetANTPadStrengthRequest(bool_t hiStrength);
andreikovacs 0:764779eedf2d 980 uint8_t PhyPlmeSetANTPadInvertedRequest(bool_t invAntA, bool_t invAntB, bool_t invTx, bool_t invRx);
andreikovacs 0:764779eedf2d 981
andreikovacs 0:764779eedf2d 982 /*****************************************************************************
andreikovacs 0:764779eedf2d 983 * PhyPlmeSetANTXStateRequest function
andreikovacs 0:764779eedf2d 984 *
andreikovacs 0:764779eedf2d 985 * Interface assumptions: state
andreikovacs 0:764779eedf2d 986 *
andreikovacs 0:764779eedf2d 987 * Return Value: gPhySuccess
andreikovacs 0:764779eedf2d 988 *
andreikovacs 0:764779eedf2d 989 * Description: ANTX_IN - FAD Antenna start when FAD_EN = 1 or antenna selected
andreikovacs 0:764779eedf2d 990 * when FAD_EN=0
andreikovacs 0:764779eedf2d 991 *****************************************************************************/
andreikovacs 0:764779eedf2d 992 uint8_t PhyPlmeSetANTXStateRequest(bool_t state);
andreikovacs 0:764779eedf2d 993
andreikovacs 0:764779eedf2d 994 /*****************************************************************************
andreikovacs 0:764779eedf2d 995 * PhyPlmeGetANTXStateRequest function
andreikovacs 0:764779eedf2d 996 *
andreikovacs 0:764779eedf2d 997 * Interface assumptions: none
andreikovacs 0:764779eedf2d 998 *
andreikovacs 0:764779eedf2d 999 * Return Value: Chosen antenna by the FAD (FAD_EN = 1) or copy of ANTX_IN
andreikovacs 0:764779eedf2d 1000 *
andreikovacs 0:764779eedf2d 1001 * Description: Antenna selected in FAD of non-FAD mode
andreikovacs 0:764779eedf2d 1002 *****************************************************************************/
andreikovacs 0:764779eedf2d 1003 uint8_t PhyPlmeGetANTXStateRequest(void);
andreikovacs 0:764779eedf2d 1004
andreikovacs 0:764779eedf2d 1005 /*****************************************************************************
andreikovacs 0:764779eedf2d 1006 * PhyPlmeSetLQIModeRequest function
andreikovacs 0:764779eedf2d 1007 *
andreikovacs 0:764779eedf2d 1008 * Interface assumptions: none
andreikovacs 0:764779eedf2d 1009 *
andreikovacs 0:764779eedf2d 1010 * Return Value: gPhySuccess
andreikovacs 0:764779eedf2d 1011 *
andreikovacs 0:764779eedf2d 1012 * Description: Choose LQI Mode: 1 - LQI Based on RSSI,
andreikovacs 0:764779eedf2d 1013 * 0 - LQI Based on Correlation Peaks
andreikovacs 0:764779eedf2d 1014 *****************************************************************************/
andreikovacs 0:764779eedf2d 1015 uint8_t PhyPlmeSetLQIModeRequest(uint8_t lqiMode);
andreikovacs 0:764779eedf2d 1016
andreikovacs 0:764779eedf2d 1017 /*****************************************************************************
andreikovacs 0:764779eedf2d 1018 * PhyPlmeGetRSSILevelRequest function
andreikovacs 0:764779eedf2d 1019 *
andreikovacs 0:764779eedf2d 1020 * Interface assumptions: none
andreikovacs 0:764779eedf2d 1021 *
andreikovacs 0:764779eedf2d 1022 * Return Value: RSSI level
andreikovacs 0:764779eedf2d 1023 *
andreikovacs 0:764779eedf2d 1024 * Description: Returns the RSSI level value, refreshed every 125us
andreikovacs 0:764779eedf2d 1025 *****************************************************************************/
andreikovacs 0:764779eedf2d 1026 uint8_t PhyPlmeGetRSSILevelRequest(void);
andreikovacs 0:764779eedf2d 1027
andreikovacs 0:764779eedf2d 1028 #ifdef gPHY_802_15_4g_d
andreikovacs 0:764779eedf2d 1029 /*****************************************************************************
andreikovacs 0:764779eedf2d 1030 * PhyPlmeDataPassTaskParams function
andreikovacs 0:764779eedf2d 1031 *
andreikovacs 0:764779eedf2d 1032 * Interface assumptions: none
andreikovacs 0:764779eedf2d 1033 *
andreikovacs 0:764779eedf2d 1034 * Return Value:
andreikovacs 0:764779eedf2d 1035 *
andreikovacs 0:764779eedf2d 1036 * Description:
andreikovacs 0:764779eedf2d 1037 *****************************************************************************/
andreikovacs 0:764779eedf2d 1038 void PhyPlmeDataPassTaskParams(instanceId_t instanceId);
andreikovacs 0:764779eedf2d 1039 #endif // gPHY_802_15_4g_d
andreikovacs 0:764779eedf2d 1040
andreikovacs 0:764779eedf2d 1041 /*****************************************************************************
andreikovacs 0:764779eedf2d 1042 * PhySetRxOnWhenIdle function
andreikovacs 0:764779eedf2d 1043 *
andreikovacs 0:764779eedf2d 1044 * Interface assumptions: none
andreikovacs 0:764779eedf2d 1045 *
andreikovacs 0:764779eedf2d 1046 * Return Value: None.
andreikovacs 0:764779eedf2d 1047 *
andreikovacs 0:764779eedf2d 1048 * Description: Informs the PHY if it should start an RX when entering IDLE or not
andreikovacs 0:764779eedf2d 1049 *****************************************************************************/
andreikovacs 0:764779eedf2d 1050 void PhyPlmeSetRxOnWhenIdle( bool_t state, instanceId_t instanceId );
andreikovacs 0:764779eedf2d 1051
andreikovacs 0:764779eedf2d 1052 /*****************************************************************************
andreikovacs 0:764779eedf2d 1053 * PhyPlmeSetFrameWaitTime function
andreikovacs 0:764779eedf2d 1054 *
andreikovacs 0:764779eedf2d 1055 * Interface assumptions: none
andreikovacs 0:764779eedf2d 1056 *
andreikovacs 0:764779eedf2d 1057 * Return Value: None.
andreikovacs 0:764779eedf2d 1058 *
andreikovacs 0:764779eedf2d 1059 * Description: Set the amount of time in symbols to wait for an data frame
andreikovacs 0:764779eedf2d 1060 * after receiving an ACK with FP=1
andreikovacs 0:764779eedf2d 1061 *****************************************************************************/
andreikovacs 0:764779eedf2d 1062 void PhyPlmeSetFrameWaitTime( uint32_t time, instanceId_t instanceId );
andreikovacs 0:764779eedf2d 1063
andreikovacs 0:764779eedf2d 1064 /*****************************************************************************
andreikovacs 0:764779eedf2d 1065 * Phy_SetSequenceTiming function
andreikovacs 0:764779eedf2d 1066 *
andreikovacs 0:764779eedf2d 1067 * Interface assumptions: none
andreikovacs 0:764779eedf2d 1068 *
andreikovacs 0:764779eedf2d 1069 * Return Value: None.
andreikovacs 0:764779eedf2d 1070 *
andreikovacs 0:764779eedf2d 1071 * Description:
andreikovacs 0:764779eedf2d 1072 *
andreikovacs 0:764779eedf2d 1073 *****************************************************************************/
andreikovacs 0:764779eedf2d 1074 #ifndef gPHY_802_15_4g_d
andreikovacs 0:764779eedf2d 1075 void Phy_SetSequenceTiming(phyTime_t startTime, uint32_t seqDuration);
andreikovacs 0:764779eedf2d 1076 #else
andreikovacs 0:764779eedf2d 1077 void Phy_SetSequenceTiming(phyTime_t startTime, uint32_t seqDuration, uint8_t nextState, instanceId_t instanceId);
andreikovacs 0:764779eedf2d 1078 void Phy_SetRxTiming(uint32_t seqDuration, uint8_t nextState, instanceId_t instanceId);
andreikovacs 0:764779eedf2d 1079 #endif // gPHY_802_15_4g_d
andreikovacs 0:764779eedf2d 1080
andreikovacs 0:764779eedf2d 1081 uint8_t Phy_GetEnergyLevel(uint8_t energyLeveldB);
andreikovacs 0:764779eedf2d 1082
andreikovacs 0:764779eedf2d 1083 // RADIO EVENTS
andreikovacs 0:764779eedf2d 1084
andreikovacs 0:764779eedf2d 1085 void Radio_Phy_PdDataConfirm(instanceId_t instanceId, bool_t framePending);
andreikovacs 0:764779eedf2d 1086
andreikovacs 0:764779eedf2d 1087 void Radio_Phy_TimeWaitTimeoutIndication(instanceId_t instanceId);
andreikovacs 0:764779eedf2d 1088
andreikovacs 0:764779eedf2d 1089 void Radio_Phy_TimeRxTimeoutIndication(instanceId_t instanceId);
andreikovacs 0:764779eedf2d 1090
andreikovacs 0:764779eedf2d 1091 void Radio_Phy_PdDataIndication(instanceId_t instanceId);
andreikovacs 0:764779eedf2d 1092
andreikovacs 0:764779eedf2d 1093 void Radio_Phy_TimeStartEventIndication(instanceId_t instanceId);
andreikovacs 0:764779eedf2d 1094
andreikovacs 0:764779eedf2d 1095 void Radio_Phy_PlmeCcaConfirm(phyStatus_t phyChannelStatus, instanceId_t instanceId);
andreikovacs 0:764779eedf2d 1096
andreikovacs 0:764779eedf2d 1097 void Radio_Phy_PlmeEdConfirm(uint8_t energyLeveldB, instanceId_t instanceId);
andreikovacs 0:764779eedf2d 1098
andreikovacs 0:764779eedf2d 1099 void Radio_Phy_PlmeSyncLossIndication(instanceId_t instanceId);
andreikovacs 0:764779eedf2d 1100
andreikovacs 0:764779eedf2d 1101 void Radio_Phy_PlmeRxSfdDetect(instanceId_t instanceId, uint32_t param);
andreikovacs 0:764779eedf2d 1102
andreikovacs 0:764779eedf2d 1103 void Radio_Phy_PlmeFilterFailRx(instanceId_t instanceId);
andreikovacs 0:764779eedf2d 1104
andreikovacs 0:764779eedf2d 1105 #ifdef gPHY_802_15_4g_d
andreikovacs 0:764779eedf2d 1106 void Radio_Phy_WaitTurnaround(instanceId_t instanceId);
andreikovacs 0:764779eedf2d 1107 void Radio_Phy_WaitTurnaroundComplete(instanceId_t instanceId);
andreikovacs 0:764779eedf2d 1108 #endif
andreikovacs 0:764779eedf2d 1109
andreikovacs 0:764779eedf2d 1110 void Radio_Phy_UnexpectedTransceiverReset(instanceId_t instanceId);
andreikovacs 0:764779eedf2d 1111
andreikovacs 0:764779eedf2d 1112 void Radio_Phy_DummyEvent(instanceId_t instanceId);
andreikovacs 0:764779eedf2d 1113
andreikovacs 0:764779eedf2d 1114 bool_t PhyIsIdleRx( instanceId_t instanceId );
andreikovacs 0:764779eedf2d 1115
andreikovacs 0:764779eedf2d 1116 #ifdef __cplusplus
andreikovacs 0:764779eedf2d 1117 }
andreikovacs 0:764779eedf2d 1118 #endif
andreikovacs 0:764779eedf2d 1119
andreikovacs 0:764779eedf2d 1120 #endif /* __PHY_H__ */