Add ADuCRF101 library code from Analog Devices
This commit is contained in:
parent
d7cf3b1f74
commit
ee1ca8ac55
12 changed files with 13047 additions and 0 deletions
174
cpu/arm/aducrf101/Common/radioeng.h
Normal file
174
cpu/arm/aducrf101/Common/radioeng.h
Normal file
|
@ -0,0 +1,174 @@
|
|||
/**
|
||||
* Copyright (c) 2014, Analog Devices, Inc. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted (subject to the limitations in the
|
||||
* disclaimer below) provided that the following conditions are met:
|
||||
*
|
||||
* - Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* - Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* - Neither the name of Analog Devices, Inc. nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
|
||||
* GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
|
||||
* HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||||
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
/**
|
||||
@file radioeng.h
|
||||
@brief Radio Interface Engine Functions
|
||||
@version v1.0
|
||||
@author PAD CSE group, Analog Devices Inc
|
||||
@date May 08th 2013
|
||||
**/
|
||||
|
||||
#define RIE_U32 unsigned long
|
||||
#define RIE_U16 unsigned short int
|
||||
#define RIE_U8 unsigned char
|
||||
#define RIE_S8 signed char
|
||||
|
||||
/*! \enum RIE_BaseConfigs
|
||||
* Variables of this type are used to define the Base Configuration
|
||||
*/
|
||||
/*! \var RIE_BaseConfigs DR_1_0kbps_Dev10_0kHz
|
||||
* Base configuration of 1 kbps datarate, 10.0 kHz frequency deviation.
|
||||
Use for achieving longer distances.
|
||||
*/
|
||||
/*! \var RIE_BaseConfigs DR_38_4kbps_Dev20kHz
|
||||
* Base configuration of 38.4 kbps datarate, 20 kHz frequency deviation.
|
||||
Use as a compromise of distance and power.
|
||||
*/
|
||||
/*! \var RIE_BaseConfigs DR_300_0kbps_Dev75_0kHz
|
||||
* Base configuration of 300 kbps datarate, 75 kHz frequency deviation.
|
||||
Use for achieving faster transmission times hence lower power.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
DR_1_0kbps_Dev10_0kHz = 0x0,
|
||||
DR_38_4kbps_Dev20kHz = 0x1,
|
||||
DR_300_0kbps_Dev75_0kHz = 0x2,
|
||||
UnsupportedDRDev
|
||||
} RIE_BaseConfigs;
|
||||
|
||||
/*! \enum RIE_ModulationTypes
|
||||
* Variables of this type are used to define a tx modulation type
|
||||
*/
|
||||
/*! \var RIE_ModulationTypes FSK_Modulation
|
||||
* FSK Modulation
|
||||
*/
|
||||
/*! \var RIE_ModulationTypes GFSK_Modulation
|
||||
* GFSK Modulation
|
||||
*/
|
||||
typedef enum {FSK_Modulation = 0, GFSK_Modulation = 1} RIE_ModulationTypes;
|
||||
|
||||
/*! \enum RIE_PATypes
|
||||
* Variables of this type are used to define a PA type
|
||||
*/
|
||||
/*! \var RIE_PATypes DifferentialPA
|
||||
* Differential PA
|
||||
*/
|
||||
/*! \var RIE_PATypes SingleEndedPA
|
||||
* Single Ended PA
|
||||
*/
|
||||
typedef enum {DifferentialPA = 0, SingleEndedPA = 1} RIE_PATypes;
|
||||
|
||||
|
||||
|
||||
typedef enum {PowerLevel0 ,PowerLevel1 ,PowerLevel2 ,PowerLevel3,
|
||||
PowerLevel4 ,PowerLevel5 ,PowerLevel6 ,PowerLevel7,
|
||||
PowerLevel8 ,PowerLevel9 ,PowerLevel10,PowerLevel11,
|
||||
PowerLevel12,PowerLevel13,PowerLevel14,PowerLevel15
|
||||
} RIE_PAPowerLevel;
|
||||
|
||||
|
||||
/*! \enum RIE_BOOL
|
||||
* Variables of this type are used to define a TRUE or FALSE condition
|
||||
*/
|
||||
/*! \var RIE_BOOL RIE_TRUE
|
||||
* TRUE condition
|
||||
*/
|
||||
/*! \var RIE_BOOL RIE_FALSE
|
||||
* FALSE condition
|
||||
*/
|
||||
typedef enum {RIE_FALSE = 0, RIE_TRUE = !RIE_FALSE} RIE_BOOL;
|
||||
|
||||
|
||||
/*! \enum RIE_Responses
|
||||
* Variables of this type are used to define the return value from functions
|
||||
*/
|
||||
/*! \var RIE_Responses RIE_Success
|
||||
* Successful completion
|
||||
*/
|
||||
/*! \var RIE_Responses RIE_RadioSPICommsFail
|
||||
* SPI communications with the radio failure.
|
||||
*/
|
||||
/*! \var RIE_Responses RIE_UnsupportedRadioConfig
|
||||
* This is an unsupported radio configuration
|
||||
*/
|
||||
/*! \var RIE_Responses RIE_Unimplemented
|
||||
* This feature has not been implemented
|
||||
*/
|
||||
/*! \var RIE_Responses RIE_InvalidParamter
|
||||
* An invaild parameter was passed
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
RIE_Success = 0x0,
|
||||
RIE_RadioSPICommsFail = 0x1,
|
||||
RIE_UnsupportedRadioConfig = 0x2,
|
||||
RIE_Unimplemented = 0x3,
|
||||
RIE_InvalidParamter = 0x4,
|
||||
} RIE_Responses;
|
||||
|
||||
// Added in Radio Interface Engine v0.1
|
||||
RIE_Responses RadioGetAPIVersion (RIE_U32 *pVersion);
|
||||
RIE_Responses RadioInit (RIE_BaseConfigs BaseConfig);
|
||||
RIE_Responses RadioPowerOff (void);
|
||||
RIE_Responses RadioTerminateRadioOp (void);
|
||||
RIE_Responses RadioSetFrequency (RIE_U32 Frequency);
|
||||
RIE_Responses RadioSetModulationType (RIE_ModulationTypes ModulationType);
|
||||
RIE_Responses RadioPayldManchesterEncode(RIE_BOOL bEnable);
|
||||
RIE_Responses RadioPayldDataWhitening (RIE_BOOL bEnable);
|
||||
RIE_Responses RadioTxPacketFixedLen (RIE_U8 Len, RIE_U8 *pData);
|
||||
RIE_BOOL RadioTxPacketComplete (void);
|
||||
RIE_Responses RadioTxSetPA (RIE_PATypes PAType,RIE_PAPowerLevel Power);
|
||||
RIE_Responses RadioTxCarrier (void);
|
||||
RIE_Responses RadioTxPreamble (void);
|
||||
RIE_Responses RadioRxPacketFixedLen (RIE_U8 Len);
|
||||
RIE_BOOL RadioRxPacketAvailable (void);
|
||||
RIE_Responses RadioRxPacketRead (RIE_U8 BufferLen,RIE_U8 *pPktLen,RIE_U8 *pData,RIE_S8 *pRSSIdBm);
|
||||
RIE_Responses RadioRxBERTestMode (void);
|
||||
|
||||
// Added in Radio Interface Engine v0.2
|
||||
RIE_Responses RadioSwitchConfig (RIE_BaseConfigs BaseConfig);
|
||||
RIE_Responses RadioRadioGetRSSI (RIE_S8 *pRSSIdBm);
|
||||
RIE_Responses RadioTxSetPower (RIE_PAPowerLevel Power);
|
||||
|
||||
// Added in Radio Interface Engine v0.3
|
||||
RIE_Responses RadioTxPacketVariableLen (RIE_U8 Len, RIE_U8 *pData);
|
||||
RIE_Responses RadioRxPacketVariableLen (void);
|
||||
|
||||
// Added in Radio Interface Engine v0.5
|
||||
RIE_Responses RadioDeInit (void);
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue