librtlsdr  UNKNOWN
RTL-SDR library
tuner_fc2580.h
1 #ifndef __TUNER_FC2580_H
2 #define __TUNER_FC2580_H
3 
4 #define BORDER_FREQ 2600000 //2.6GHz : The border frequency which determines whether Low VCO or High VCO is used
5 #define USE_EXT_CLK 0 //0 : Use internal XTAL Oscillator / 1 : Use External Clock input
6 #define OFS_RSSI 57
7 
8 #define FC2580_I2C_ADDR 0xac
9 #define FC2580_CHECK_ADDR 0x01
10 #define FC2580_CHECK_VAL 0x56
11 
12 typedef enum {
13  FC2580_UHF_BAND,
14  FC2580_L_BAND,
15  FC2580_VHF_BAND,
16  FC2580_NO_BAND
17 } fc2580_band_type;
18 
19 typedef enum {
20  FC2580_FCI_FAIL,
21  FC2580_FCI_SUCCESS
22 } fc2580_fci_result_type;
23 
24 enum FUNCTION_STATUS
25 {
26  FUNCTION_SUCCESS,
27  FUNCTION_ERROR,
28 };
29 
30 extern void fc2580_wait_msec(void *pTuner, int a);
31 
32 fc2580_fci_result_type fc2580_i2c_write(void *pTuner, unsigned char reg, unsigned char val);
33 fc2580_fci_result_type fc2580_i2c_read(void *pTuner, unsigned char reg, unsigned char *read_data);
34 
35 /*==============================================================================
36  fc2580 initial setting
37 
38  This function is a generic function which gets called to initialize
39 
40  fc2580 in DVB-H mode or L-Band TDMB mode
41 
42  <input parameter>
43 
44  ifagc_mode
45  type : integer
46  1 : Internal AGC
47  2 : Voltage Control Mode
48 
49 ==============================================================================*/
50 fc2580_fci_result_type fc2580_set_init(void *pTuner, int ifagc_mode, unsigned int freq_xtal );
51 
52 /*==============================================================================
53  fc2580 frequency setting
54 
55  This function is a generic function which gets called to change LO Frequency
56 
57  of fc2580 in DVB-H mode or L-Band TDMB mode
58 
59  <input parameter>
60 
61  f_lo
62  Value of target LO Frequency in 'kHz' unit
63  ex) 2.6GHz = 2600000
64 
65 ==============================================================================*/
66 fc2580_fci_result_type fc2580_set_freq(void *pTuner, unsigned int f_lo, unsigned int freq_xtal );
67 
68 
69 /*==============================================================================
70  fc2580 filter BW setting
71 
72  This function is a generic function which gets called to change Bandwidth
73 
74  frequency of fc2580's channel selection filter
75 
76  <input parameter>
77 
78  filter_bw
79  1 : 1.53MHz(TDMB)
80  6 : 6MHz
81  7 : 7MHz
82  8 : 7.8MHz
83 
84 
85 ==============================================================================*/
86 fc2580_fci_result_type fc2580_set_filter( void *pTuner, unsigned char filter_bw, unsigned int freq_xtal );
87 
88 // The following context is FC2580 tuner API source code
89 // Definitions
90 
91 // AGC mode
92 enum FC2580_AGC_MODE
93 {
94  FC2580_AGC_INTERNAL = 1,
95  FC2580_AGC_EXTERNAL = 2,
96 };
97 
98 
99 // Bandwidth mode
100 enum FC2580_BANDWIDTH_MODE
101 {
102  FC2580_BANDWIDTH_1530000HZ = 1,
103  FC2580_BANDWIDTH_6000000HZ = 6,
104  FC2580_BANDWIDTH_7000000HZ = 7,
105  FC2580_BANDWIDTH_8000000HZ = 8,
106 };
107 
108 // Manipulaing functions
109 int
110 fc2580_Initialize(
111  void *pTuner
112  );
113 
114 int
115 fc2580_SetRfFreqHz(
116  void *pTuner,
117  unsigned long RfFreqHz
118  );
119 
120 // Extra manipulaing functions
121 int
122 fc2580_SetBandwidthMode(
123  void *pTuner,
124  int BandwidthMode
125  );
126 
127 #endif