Microchip® Advanced Software Framework

mimac_at86rf.h File Reference

MAC Layer Abstraction for AT86RFx interface.

Copyright (c) 2018 - 2019 Microchip Technology Inc. and its subsidiaries.

#include "miwi_config.h"
#include "sysTimer.h"
#include "miwi_p2p_star.h"
#include "miwi_config_p2p.h"

Data Structures

union  _DRIVER_UINT8_UNION_
 
struct  MAC_RECEIVED_PACKET
 
struct  MAC_TRANS_PARAM
 
struct  MACINIT_PARAM
 

Macros

#define ABASESLOTDURATION   (60)
 
#define ABASESUPERFRAMEDURATION   (ABASESLOTDURATION * ANUMSUPERFRAMESLOTS )
 
#define ACK_MASK   0x20
 
#define ANUMSUPERFRAMESLOTS   (16)
 
#define BROADCAST_MASK   0x04
 
#define CHANNEL_ASSESSMENT_CARRIER_SENSE   0x00
 
#define CHANNEL_ASSESSMENT_ENERGY_DETECT   0x01
 
#define DSTPRSNT_MASK   0x40
 
#define FIRST_CHANNEL_NUM   0
 
#define FULL_CHANNEL_MAP   0x000007FF
 
#define LAST_CHANNEL_NUM   10
 
#define MAX_FRAME_TX_TIME   10
 
#define PACKET_TYPE_ACK   0x02
 
#define PACKET_TYPE_COMMAND   0x01
 
#define PACKET_TYPE_DATA   0x00
 
#define PACKET_TYPE_MASK   0x03
 
#define PACKET_TYPE_RESERVE   0x03
 
#define POWER_STATE_DEEP_SLEEP   0x00
 
#define POWER_STATE_OPERATE   0xFF
 
#define REPEAT_MASK   0x10
 
#define SECURITY_MASK   0x08
 
#define SRCPRSNT_MASK   0x80
 
#define SYMBOLS_TO_TICKS(a)   ((a)*(16*ONE_MICRO_SECOND))
 
#define TICKS_TO_SYMBOLS(a)   ((a)/(16*ONE_MICRO_SECOND))
 

Typedefs

typedef union _DRIVER_UINT8_UNION_ DRIVER_UINT8_UNION
 
typedef enum mac_set_params mac_set_params_t
 

Enumerations

enum  mac_set_params { MAC_CHANNEL }
 

Functions

uint8_t MiMAC_ChannelAssessment (uint8_t AssessmentMode)
 
void MiMAC_DiscardPacket (void)
 
uint32_t MiMAC_GetPHYChannelInfo (void)
 
bool MiMAC_Init (MACINIT_PARAM initValue)
 
bool MiMAC_PowerState (uint8_t PowerState)
 
bool MiMAC_ReceivedPacket (void)
 
bool MiMAC_SendPacket (MAC_TRANS_PARAM transParam, uint8_t *MACPayload, uint8_t MACPayloadLen, uint8_t msghandle, DataConf_callback_t ConfCallback)
 
bool MiMAC_Set (mac_set_params_t id, uint8_t *value)
 
bool MiMAC_SetAltAddress (uint8_t *Address, uint8_t *PANID)
 
bool MiMAC_SetPower (uint8_t outputPower)
 
uint32_t MiMAC_SymbolToTicks (uint32_t symbols)
 
void MiMAC_Task (void)
 
void UserInterruptHandler (void)
 

Variables

MAC_RECEIVED_PACKET MACRxPacket
 

#define ABASESLOTDURATION   (60)
#define ABASESUPERFRAMEDURATION   (ABASESLOTDURATION * ANUMSUPERFRAMESLOTS )
#define ACK_MASK   0x20
#define ANUMSUPERFRAMESLOTS   (16)
#define BROADCAST_MASK   0x04
#define CHANNEL_ASSESSMENT_CARRIER_SENSE   0x00
#define CHANNEL_ASSESSMENT_ENERGY_DETECT   0x01

Referenced by MiMAC_ChannelAssessment().

#define DSTPRSNT_MASK   0x40
#define FIRST_CHANNEL_NUM   0
#define FULL_CHANNEL_MAP   0x000007FF

Referenced by MiMAC_GetPHYChannelInfo().

#define LAST_CHANNEL_NUM   10
#define MAX_FRAME_TX_TIME   10
#define PACKET_TYPE_ACK   0x02
#define PACKET_TYPE_COMMAND   0x01
#define PACKET_TYPE_DATA   0x00
#define PACKET_TYPE_MASK   0x03
#define PACKET_TYPE_RESERVE   0x03
#define POWER_STATE_DEEP_SLEEP   0x00

Referenced by MiMAC_PowerState(), and P2PTasks().

#define POWER_STATE_OPERATE   0xFF

Referenced by MiMAC_PowerState().

#define REPEAT_MASK   0x10
#define SECURITY_MASK   0x08
#define SRCPRSNT_MASK   0x80
#define SYMBOLS_TO_TICKS (   a)    ((a)*(16*ONE_MICRO_SECOND))

Referenced by MiMAC_SymbolToTicks().

#define TICKS_TO_SYMBOLS (   a)    ((a)/(16*ONE_MICRO_SECOND))

Enumerator
MAC_CHANNEL 

uint8_t MiMAC_ChannelAssessment ( uint8_t  AssessmentMode)
void MiMAC_DiscardPacket ( void  )
uint32_t MiMAC_GetPHYChannelInfo ( void  )

References FULL_CHANNEL_MAP.

bool MiMAC_PowerState ( uint8_t  PowerState)
bool MiMAC_Set ( mac_set_params_t  id,
uint8_t *  value 
)

References MAC_CHANNEL, MACCurrentChannel, and PHY_SetChannel().

Referenced by MiApp_Set().

bool MiMAC_SetAltAddress ( uint8_t *  Address,
uint8_t *  PANID 
)
bool MiMAC_SetPower ( uint8_t  outputPower)
uint32_t MiMAC_SymbolToTicks ( uint32_t  symbols)

References SYMBOLS_TO_TICKS.

Referenced by P2PTasks().

void MiMAC_Task ( void  )
void UserInterruptHandler ( void  )

MAC_RECEIVED_PACKET MACRxPacket

Referenced by MiMAC_ReceivedPacket().