hpw421初始版本
This commit is contained in:
@@ -0,0 +1,153 @@
|
||||
/**
|
||||
****************************************************************************************
|
||||
*
|
||||
* @file dbg_iqgen.h
|
||||
*
|
||||
* @brief I&Q Samples Generator API.
|
||||
*
|
||||
* Copyright (C) RivieraWaves 2018
|
||||
*
|
||||
*
|
||||
****************************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef DBG_IQGEN_H_
|
||||
#define DBG_IQGEN_H_
|
||||
|
||||
/**
|
||||
****************************************************************************************
|
||||
* @addtogroup DBGIQGEN
|
||||
* @ingroup IQ
|
||||
* @brief Debug SW - I&Q samples Generator.
|
||||
*
|
||||
* @{
|
||||
****************************************************************************************
|
||||
*/
|
||||
|
||||
/*
|
||||
* INCLUDE FILES
|
||||
****************************************************************************************
|
||||
*/
|
||||
|
||||
#include "rwip_config.h"
|
||||
|
||||
#if BLE_IQ_GEN
|
||||
|
||||
#include "reg_iqgen.h" // I&Q sample generator register functions
|
||||
|
||||
/*
|
||||
* CONSTANT DEFINITIONS
|
||||
****************************************************************************************
|
||||
*/
|
||||
|
||||
/// Maximum number of supported antenna patterns
|
||||
#define DBG_IQGEN_MAX_ANTENNA (8)
|
||||
|
||||
/// bit defintitions for debug configuration
|
||||
#define DBG_IQGEN_PATTERN_MODE_BIT (1<<0)
|
||||
#define DBG_IQGEN_TIMING_MODE_BIT (1<<1)
|
||||
#define DBG_IQGEN_ANT_ID_MODE_BIT (2<<1)
|
||||
|
||||
|
||||
/// I&Q samples generation control
|
||||
enum dbg_iqgen_ctnl
|
||||
{
|
||||
/// I&Q samples up count
|
||||
DBG_IQGEN_UPCOUNT = 0,
|
||||
/// I&Q samples down count
|
||||
DBG_IQGEN_DOWNCOUNT = 1,
|
||||
/// I&Q samples fixed value
|
||||
DBG_IQGEN_FIXEDVAL = 2,
|
||||
/// I&Q samples PRBS
|
||||
DBG_IQGEN_PRBSPATTERN = 3,
|
||||
};
|
||||
|
||||
/// I&Q samples generation antenna sweep pattern
|
||||
enum dbg_iqgen_antenna_pattern
|
||||
{
|
||||
/// antenna up-sweep
|
||||
DBG_IQGEN_ANT_UPSWEEP = 0,
|
||||
/// antenna up-down sweep
|
||||
DBG_IQGEN_ANT_UPDNSWEEP = 1,
|
||||
};
|
||||
|
||||
/// I&Q samples generation timing mode
|
||||
enum dbg_iqgen_timing_mode
|
||||
{
|
||||
/// 1us switching/sampling interval
|
||||
DBG_IQGEN_1US_INTV = 0,
|
||||
/// 2us switching/sampling interval
|
||||
DBG_IQGEN_2US_INTV = 1,
|
||||
};
|
||||
|
||||
/// antenna switch enable mode
|
||||
enum dbg_iqgen_antenna_switch_mode
|
||||
{
|
||||
/// Accepts antenna ID switching inputs from baseband
|
||||
DBG_IQGEN_BASEBAND_SWITCHING = 0,
|
||||
/// Antenna switching is internally enabled
|
||||
DBG_IQGEN_INTERNAL_SWITCHING = 1,
|
||||
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* VARIABLE DECLARATION
|
||||
****************************************************************************************
|
||||
*/
|
||||
|
||||
/*
|
||||
* FUNCTION DECLARATIONS
|
||||
****************************************************************************************
|
||||
*/
|
||||
|
||||
/**
|
||||
****************************************************************************************
|
||||
* @brief Enable I&Q sample generator
|
||||
*
|
||||
* @param[in] nb_antenna Number of antenna (valid range 1-8)
|
||||
* @param[in] pattern_mode Antenna sweep pattern (@see enum dbg_iqgen_antenna_pattern)
|
||||
* @param[in] timing_mode Timing interval mode (@see enum dbg_iqgen_timing_mode)
|
||||
* @param[in] ant_switch_mode Antenna switching mode (@see enum dbg_iqgen_antenna_switch_mode)
|
||||
*
|
||||
****************************************************************************************
|
||||
*/
|
||||
void dbg_iqgen_config_enable(uint8_t nb_antenna, uint8_t pattern_mode, uint8_t timing_mode, uint8_t ant_switch_mode);
|
||||
|
||||
/**
|
||||
****************************************************************************************
|
||||
* @brief Disable I&Q sample generator
|
||||
*
|
||||
****************************************************************************************
|
||||
*/
|
||||
void dbg_iqgen_disable();
|
||||
|
||||
/**
|
||||
****************************************************************************************
|
||||
* @brief Configure I&Q samples for a specific antenna
|
||||
*
|
||||
* @param[in] antenna ID antenna id (valid range 0-7)
|
||||
* @param[in] i_cntl configuration mode for I-samples (@see enum dbg_iqgen_cntl)
|
||||
* @param[in] q_cntl configuration mode for Q-samples (@see enum dbg_iqgen_cntl)
|
||||
* @param[in] i_val I-samples initial value
|
||||
* @param[in] q_val Q-samples initial value
|
||||
*
|
||||
****************************************************************************************
|
||||
*/
|
||||
void dbg_iqgen_antenna_config(uint8_t antenna_id, uint8_t i_cntl, uint8_t q_cntl, uint8_t i_val, uint8_t q_val);
|
||||
|
||||
|
||||
/**
|
||||
****************************************************************************************
|
||||
* @brief I&Q Generator configure
|
||||
*
|
||||
* @param[in] param configuration structure (@see hci_dbg_iqgen_cfg_cmd)
|
||||
****************************************************************************************
|
||||
*/
|
||||
uint8_t dbg_iqgen_config(struct hci_dbg_iqgen_cfg_cmd const *cfg);
|
||||
|
||||
#endif //BLE_IQ_GEN
|
||||
|
||||
/// @} DBGIQGEN
|
||||
|
||||
#endif // DBG_IQGEN_H_
|
||||
Reference in New Issue
Block a user