138 lines
3.3 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef _JESD_TIMER_H_
#define _JESD_TIMER_H_
#include "typedef.h"
#include "phy_para.h"
#define JESD_TXRX_CHANGE_GAP 13000 // ns
#define JESD_RF_ON_GAP 8000
#define JESD_RF_OFF_GAP 2000
//#define JESD_TX_ADVANCE_SAMPLE 0 // 500 // sample
//#define JESD_RX_ADVANCE_SAMPLE 1600 // sample
//#define JESD_RRU_TD 0 // 480 // sample
#define JESD_TX_ADVANCE_NS 0
#define JESD_RX_ADVANCE_NS 13000
#define JESD_RRU_TD 0 // ns
typedef enum _tagJesdSndRcvMode
{
JESD_IO_CTRL = 0,
JESD_CSU_CTRL = 1
}numJesdSndRcvMode;
typedef enum _tagJesdTestMode
{
JESD_NORMAL_MODE = 0,
JESD_NORMAL_TO_TEST = 1,
JESD_TEST_MODE = 2,
JESD_TEST_TO_NORMAL = 3
}numJesdTestMode;
typedef enum _tagJesdInitStep
{
JESD_NO_INIT = 0,
JESD_CLK_INIT = 1,
JESD_TRANS_INIT = 2,
JESD_INIT_STEP_MAX = 3
}numJesdInitStep;
typedef struct _tagJesdDelay
{
uint32_t txOffset;
uint32_t rxOffset;
uint32_t tddOffset;
}stJesdDelay;
void jesd_init(uint8_t option);
int32_t jesd_mtimer_init(int32_t nTmrId, int32_t nScsId, int32_t nTddSlotNum);
int32_t jesd_timer_init(int32_t nTmrId, int32_t nScsId, int32_t nTddSlotNum);
// 协议规定的接收提前量NR提前13usLTE不提前LTE模式下需在建小区之前调用该接口修改协议提前量
void jesd_set_protocol_rx_advance(uint32_t rxAdvance);
int32_t jesd_timer_reconfig(int32_t nTmrId, phy_timer_config_ind_t *my_jesdtmr);
int32_t jesd_timer_clear_cell(int32_t nTmrId, uint8_t scsId);
void jesd_timer_rcfg_act(int32_t nTmrId);
int32_t jesd_pin_ctrl(int32_t nTmrId);
void set_jesd_tmr_period(int32_t nTmrId);
void jesd_1pps_src_init(uint8_t srcId);
void set_jesd_1pps_scratch(int32_t nTmrId);
void set_jesd_sfn_offset(int32_t nTmrId);
void set_jesd_tdd_offset(int32_t nTmrId);
void clear_jesd_tdd_offset(int32_t nTmrId);
void set_jesd_tx_slot_offset(int32_t nTmrId);
void clear_jesd_tx_slot_offset(int32_t nTmrId);
void set_jesd_rx_slot_offset(int32_t nTmrId);
void clear_jesd_rx_slot_offset(int32_t nTmrId);
//void set_jesd_lte_fapi_offset(void);
//void clear_jesd_lte_fapi_offset(void);
int32_t set_jesd_ape_slot_offset(int32_t nTmrId, uint32_t apeCoreId);
int32_t clear_jesd_ape_slot_offset(int32_t nTmrId, uint32_t apeCoreId);
//int32_t set_jesd_csu_point(int32_t nTmrId, uint8_t nPointId);
int32_t set_jesd_csuon_point(int32_t nTmrId, uint8_t nPointId);
int32_t set_jesd_csuoff_point(int32_t nTmrId, uint8_t nPointId);
void set_jesd_txon_point(int32_t nTmrId, uint8_t nPointId);
void clear_jesd_txon_point(int32_t nTmrId);
void set_jesd_txoff_point(int32_t nTmrId, uint8_t nPointId);
void clear_jesd_txoff_point(int32_t nTmrId);
void set_jesd_rxon_point(int32_t nTmrId, uint8_t nPointId);
void clear_jesd_rxon_point(int32_t nTmrId);
void set_jesd_rxoff_point(int32_t nTmrId, uint8_t nPointId);
void clear_jesd_rxoff_point(int32_t nTmrId);
void start_jesd_timer(int32_t nTmrId);
void stop_jesd_timer(int32_t nTmrId);
uint64_t get_jesd_scr_value(int32_t nTmrId);
int32_t set_jesd_timer_int(int32_t nTmrId);
void isr_jesd_10ms_rx0(void);
void isr_jesd_10ms_rx1(void);
void isr_jesd_tdd_offset_rx0(void);
void isr_jesd_slot_rx0(void);
void isr_jesd_slot_rx1(void);
//void jesd_1pps_resync();
//void jesd_1pps_sfn_cal();
//void jesd_tdd_start_csu();
#endif