Statistics
| Branch: | Tag: | Revision:

root / usrp / host / lib / legacy / ad9862.h @ 0bf2128a

History | View | Annotate | Download (6.1 kB)

1 5d69a524 jcorgan
/* -*- c++ -*- */
2 5d69a524 jcorgan
/*
3 5d69a524 jcorgan
 * Copyright 2004 Free Software Foundation, Inc.
4 5d69a524 jcorgan
 * 
5 5d69a524 jcorgan
 * This file is part of GNU Radio
6 5d69a524 jcorgan
 * 
7 5d69a524 jcorgan
 * GNU Radio is free software; you can redistribute it and/or modify
8 5d69a524 jcorgan
 * it under the terms of the GNU General Public License as published by
9 5d69a524 jcorgan
 * the Free Software Foundation; either version 2, or (at your option)
10 5d69a524 jcorgan
 * any later version.
11 5d69a524 jcorgan
 * 
12 5d69a524 jcorgan
 * GNU Radio is distributed in the hope that it will be useful,
13 5d69a524 jcorgan
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 5d69a524 jcorgan
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 5d69a524 jcorgan
 * GNU General Public License for more details.
16 5d69a524 jcorgan
 * 
17 5d69a524 jcorgan
 * You should have received a copy of the GNU General Public License
18 5d69a524 jcorgan
 * along with GNU Radio; see the file COPYING.  If not, write to
19 86f5c924 eb
 * the Free Software Foundation, Inc., 51 Franklin Street,
20 86f5c924 eb
 * Boston, MA 02110-1301, USA.
21 5d69a524 jcorgan
 */
22 5d69a524 jcorgan
23 5d69a524 jcorgan
#ifndef INCLUDED_AD9862_H
24 5d69a524 jcorgan
#define INCLUDED_AD9862_H
25 5d69a524 jcorgan
26 5d69a524 jcorgan
/*
27 5d69a524 jcorgan
 * Analog Devices AD9862 registers and some fields
28 5d69a524 jcorgan
 */
29 5d69a524 jcorgan
30 5d69a524 jcorgan
#define BEGIN_AD9862        namespace ad9862 {
31 5d69a524 jcorgan
#define        END_AD962        }
32 5d69a524 jcorgan
#define        DEF static const int
33 5d69a524 jcorgan
34 5d69a524 jcorgan
BEGIN_AD9862;
35 5d69a524 jcorgan
36 5d69a524 jcorgan
DEF REG_GENERAL                =  0;
37 5d69a524 jcorgan
DEF REG_RX_PWR_DN        =  1;
38 5d69a524 jcorgan
DEF        RX_PWR_DN_VREF_DIFF                = (1 << 7);
39 5d69a524 jcorgan
DEF        RX_PWR_DN_VREF                        = (1 << 6);
40 5d69a524 jcorgan
DEF        RX_PWR_DN_RX_DIGIGAL                = (1 << 5);
41 5d69a524 jcorgan
DEF        RX_PWR_DN_RX_B                        = (1 << 4);
42 5d69a524 jcorgan
DEF        RX_PWR_DN_RX_A                        = (1 << 3);
43 5d69a524 jcorgan
DEF        RX_PWR_DN_BUF_B                        = (1 << 2);
44 5d69a524 jcorgan
DEF        RX_PWR_DN_BUF_A                        = (1 << 1);
45 5d69a524 jcorgan
DEF        RX_PWR_DN_ALL                        = (1 << 0);
46 5d69a524 jcorgan
47 5d69a524 jcorgan
DEF REG_RX_A                =  2;        // bypass input buffer / RxPGA
48 5d69a524 jcorgan
DEF REG_RX_B                =  3;        // pypass input buffer / RxPGA
49 5d69a524 jcorgan
DEF        RX_X_BYPASS_INPUT_BUFFER        = (1 << 7);
50 5d69a524 jcorgan
51 5d69a524 jcorgan
DEF REG_RX_MISC                =  4;
52 5d69a524 jcorgan
DEF        RX_MISC_HS_DUTY_CYCLE                = (1 << 2);
53 5d69a524 jcorgan
DEF        RX_MISC_SHARED_REF                = (1 << 1);
54 5d69a524 jcorgan
DEF        RX_MISC_CLK_DUTY                = (1 << 0);
55 5d69a524 jcorgan
56 5d69a524 jcorgan
DEF REG_RX_IF                =  5;
57 5d69a524 jcorgan
DEF        RX_IF_THREE_STATE                = (1 << 4);
58 5d69a524 jcorgan
DEF        RX_IF_USE_CLKOUT1                = (0 << 3);        
59 5d69a524 jcorgan
DEF        RX_IF_USE_CLKOUT2                = (1 << 3);        // aka Rx Retime
60 5d69a524 jcorgan
DEF        RX_IF_2S_COMP                        = (1 << 2);
61 5d69a524 jcorgan
DEF        RX_IF_INV_RX_SYNC                = (1 << 1);
62 5d69a524 jcorgan
DEF        RX_IF_MUX_OUT                        = (1 << 0);
63 5d69a524 jcorgan
64 5d69a524 jcorgan
DEF REG_RX_DIGITAL        =  6;
65 5d69a524 jcorgan
DEF        RX_DIGITAL_2_CHAN                = (1 << 3);
66 5d69a524 jcorgan
DEF        RX_DIGITAL_KEEP_MINUS_VE        = (1 << 2);
67 5d69a524 jcorgan
DEF        RX_DIGITAL_HILBERT                = (1 << 1);
68 5d69a524 jcorgan
DEF        RX_DIGITAL_DECIMATE                = (1 << 0);
69 5d69a524 jcorgan
70 5d69a524 jcorgan
DEF REG_RESERVED_7        =  7;
71 5d69a524 jcorgan
72 5d69a524 jcorgan
DEF REG_TX_PWR_DN        =  8;
73 5d69a524 jcorgan
DEF        TX_PWR_DN_ALT_TIMING_MODE        = (1 << 5);
74 5d69a524 jcorgan
DEF        TX_PWR_DN_TX_OFF_ENABLE                = (1 << 4);
75 5d69a524 jcorgan
DEF        TX_PWR_DN_TX_DIGITAL                = (1 << 3);
76 5d69a524 jcorgan
DEF        TX_PWR_DN_TX_ANALOG_B                = 0x4;
77 5d69a524 jcorgan
DEF        TX_PWR_DN_TX_ANALOG_A                = 0x2;
78 5d69a524 jcorgan
DEF        TX_PWR_DN_TX_ANALOG_BOTH        = 0x7;
79 5d69a524 jcorgan
80 5d69a524 jcorgan
DEF REG_RESERVED_9        =  9;
81 5d69a524 jcorgan
82 5d69a524 jcorgan
DEF REG_TX_A_OFFSET_LO        = 10;
83 5d69a524 jcorgan
DEF REG_TX_A_OFFSET_HI        = 11;
84 5d69a524 jcorgan
DEF REG_TX_B_OFFSET_LO        = 12;
85 5d69a524 jcorgan
DEF REG_TX_B_OFFSET_HI        = 13;
86 5d69a524 jcorgan
87 5d69a524 jcorgan
DEF REG_TX_A_GAIN        = 14;        // fine trim for matching
88 5d69a524 jcorgan
DEF REG_TX_B_GAIN        = 15;        // fine trim for matching
89 5d69a524 jcorgan
DEF        TX_X_GAIN_COARSE_FULL                = (3 << 6);
90 5d69a524 jcorgan
DEF        TX_X_GAIN_COARSE_1_HALF                = (1 << 6);
91 5d69a524 jcorgan
DEF        TX_X_GAIN_COARSE_1_ELEVENTH        = (0 << 6);
92 5d69a524 jcorgan
93 5d69a524 jcorgan
DEF REG_TX_PGA                = 16;        // 20 dB continuous gain in 0.1 dB steps
94 5d69a524 jcorgan
                                // 0x00 = min gain (-20 dB)
95 5d69a524 jcorgan
                                // 0xff = max gain (  0 dB)
96 5d69a524 jcorgan
97 5d69a524 jcorgan
DEF REG_TX_MISC                = 17;
98 5d69a524 jcorgan
DEF        TX_MISC_SLAVE_ENABLE                = (1 << 1);
99 5d69a524 jcorgan
DEF        TX_MISC_TX_PGA_FAST                = (1 << 0);
100 5d69a524 jcorgan
101 5d69a524 jcorgan
DEF REG_TX_IF                = 18;
102 5d69a524 jcorgan
DEF        TX_IF_USE_CLKOUT2                = (0 << 6);
103 5d69a524 jcorgan
DEF        TX_IF_USE_CLKOUT1                = (1 << 6);        // aka Tx Retime
104 5d69a524 jcorgan
DEF        TX_IF_I_FIRST                        = (0 << 5);
105 5d69a524 jcorgan
DEF        TX_IF_Q_FIRST                        = (1 << 5);
106 5d69a524 jcorgan
DEF        TX_IF_INV_TX_SYNC                = (1 << 4);
107 5d69a524 jcorgan
DEF        TX_IF_2S_COMP                        = (1 << 3);
108 5d69a524 jcorgan
DEF        TX_IF_INVERSE_SAMPLE                = (1 << 2);
109 5d69a524 jcorgan
DEF        TX_IF_TWO_EDGES                        = (1 << 1);
110 5d69a524 jcorgan
DEF        TX_IF_INTERLEAVED                = (1 << 0);
111 5d69a524 jcorgan
112 5d69a524 jcorgan
DEF REG_TX_DIGITAL        = 19;
113 5d69a524 jcorgan
DEF        TX_DIGITAL_2_DATA_PATHS                = (1 << 4);
114 5d69a524 jcorgan
DEF        TX_DIGITAL_KEEP_NEGATIVE        = (1 << 3);
115 5d69a524 jcorgan
DEF        TX_DIGITAL_HILBERT                = (1 << 2);
116 5d69a524 jcorgan
DEF        TX_DIGITAL_INTERPOLATE_NONE        = 0x0;
117 5d69a524 jcorgan
DEF        TX_DIGITAL_INTERPOLATE_2X        = 0x1;
118 5d69a524 jcorgan
DEF        TX_DIGITAL_INTERPOLATE_4X        = 0x2;
119 5d69a524 jcorgan
120 5d69a524 jcorgan
DEF REG_TX_MODULATOR        = 20;
121 5d69a524 jcorgan
DEF        TX_MODULATOR_NEG_FINE_TUNE        = (1 << 5);
122 5d69a524 jcorgan
DEF        TX_MODULATOR_DISABLE_NCO        = (0 << 4);
123 5d69a524 jcorgan
DEF        TX_MODULATOR_ENABLE_NCO                = (1 << 4);        // aka Fine Mode
124 5d69a524 jcorgan
DEF        TX_MODULATOR_REAL_MIX_MODE        = (1 << 3);
125 5d69a524 jcorgan
DEF        TX_MODULATOR_NEG_COARSE_TUNE        = (1 << 2);
126 5d69a524 jcorgan
DEF        TX_MODULATOR_COARSE_MODULATION_NONE        = 0x0;
127 5d69a524 jcorgan
DEF        TX_MODULATOR_COARSE_MODULATION_F_OVER_4        = 0x1;
128 5d69a524 jcorgan
DEF        TX_MODULATOR_COARSE_MODULATION_F_OVER_8 = 0x2;
129 5d69a524 jcorgan
DEF        TX_MODULATOR_CM_MASK                        = 0x7;
130 5d69a524 jcorgan
131 5d69a524 jcorgan
132 5d69a524 jcorgan
DEF REG_TX_NCO_FTW_7_0        = 21;
133 5d69a524 jcorgan
DEF REG_TX_NCO_FTW_15_8        = 22;
134 5d69a524 jcorgan
DEF REG_TX_NCO_FTW_23_16= 23;
135 5d69a524 jcorgan
136 5d69a524 jcorgan
DEF REG_DLL                = 24;
137 5d69a524 jcorgan
DEF        DLL_DISABLE_INTERNAL_XTAL_OSC        = (1 << 6);        // aka Input Clock Ctrl
138 5d69a524 jcorgan
DEF        DLL_ADC_DIV2                        = (1 << 5);
139 5d69a524 jcorgan
DEF        DLL_MULT_1X                        = (0 << 3);
140 5d69a524 jcorgan
DEF        DLL_MULT_2X                        = (1 << 3);
141 5d69a524 jcorgan
DEF        DLL_MULT_4X                        = (2 << 3);
142 5d69a524 jcorgan
DEF        DLL_PWR_DN                        = (1 << 2);
143 5d69a524 jcorgan
// undefined bit                        = (1 << 1);
144 5d69a524 jcorgan
DEF        DLL_FAST                        = (1 << 0);
145 5d69a524 jcorgan
146 5d69a524 jcorgan
DEF REG_CLKOUT                = 25;
147 5d69a524 jcorgan
DEF        CLKOUT2_EQ_DLL                        = (0 << 6);
148 5d69a524 jcorgan
DEF        CLKOUT2_EQ_DLL_OVER_2                = (1 << 6);
149 5d69a524 jcorgan
DEF        CLKOUT2_EQ_DLL_OVER_4                = (2 << 6);
150 5d69a524 jcorgan
DEF        CLKOUT2_EQ_DLL_OVER_8                = (3 << 6);
151 5d69a524 jcorgan
DEF        CLKOUT_INVERT_CLKOUT2                = (1 << 5);
152 5d69a524 jcorgan
DEF        CLKOUT_DISABLE_CLKOUT2                = (1 << 4);
153 5d69a524 jcorgan
// undefined bit                        = (1 << 3);
154 5d69a524 jcorgan
// undefined bit                        = (1 << 2);
155 5d69a524 jcorgan
DEF        CLKOUT_INVERT_CLKOUT1                = (1 << 1);
156 5d69a524 jcorgan
DEF        CLKOUT_DISABLE_CLKOUT1                = (1 << 0);
157 5d69a524 jcorgan
158 5d69a524 jcorgan
DEF REG_AUX_ADC_A2_LO        = 26;
159 5d69a524 jcorgan
DEF REG_AUX_ADC_A2_HI        = 27;
160 5d69a524 jcorgan
DEF REG_AUX_ADC_A1_LO        = 28;
161 5d69a524 jcorgan
DEF REG_AUX_ADC_A1_HI        = 29;
162 5d69a524 jcorgan
DEF REG_AUX_ADC_B2_LO        = 30;
163 5d69a524 jcorgan
DEF REG_AUX_ADC_B2_HI        = 31;
164 5d69a524 jcorgan
DEF REG_AUX_ADC_B1_LO        = 32;
165 5d69a524 jcorgan
DEF REG_AUX_ADC_B1_HI        = 33;
166 5d69a524 jcorgan
167 5d69a524 jcorgan
DEF REG_AUX_ADC_CTRL        = 34;
168 5d69a524 jcorgan
DEF        AUX_ADC_CTRL_AUX_SPI                = (1 << 7);
169 5d69a524 jcorgan
DEF        AUX_ADC_CTRL_SELBNOTA                = (1 << 6);
170 5d69a524 jcorgan
DEF        AUX_ADC_CTRL_REFSEL_B                = (1 << 5);
171 5d69a524 jcorgan
DEF        AUX_ADC_CTRL_SELECT_B2                 = (0 << 4);
172 5d69a524 jcorgan
DEF        AUX_ADC_CTRL_SELECT_B1                = (1 << 4);
173 5d69a524 jcorgan
DEF        AUX_ADC_CTRL_START_B                = (1 << 3);
174 5d69a524 jcorgan
DEF        AUX_ADC_CTRL_REFSEL_A                = (1 << 2);
175 5d69a524 jcorgan
DEF        AUX_ADC_CTRL_SELECT_A2                = (0 << 1);
176 5d69a524 jcorgan
DEF        AUX_ADC_CTRL_SELECT_A1                = (1 << 1);
177 5d69a524 jcorgan
DEF        AUX_ADC_CTRL_START_A                   = (1 << 0);
178 5d69a524 jcorgan
179 5d69a524 jcorgan
DEF REG_AUX_ADC_CLK        = 35;
180 5d69a524 jcorgan
DEF        AUX_ADC_CLK_CLK_OVER_4                = (1 << 0);
181 5d69a524 jcorgan
182 5d69a524 jcorgan
DEF REG_AUX_DAC_A        = 36;
183 5d69a524 jcorgan
DEF REG_AUX_DAC_B        = 37;
184 5d69a524 jcorgan
DEF REG_AUX_DAC_C        = 38;
185 5d69a524 jcorgan
186 5d69a524 jcorgan
DEF REG_AUX_DAC_UPDATE        = 39;
187 5d69a524 jcorgan
DEF        AUX_DAC_UPDATE_SLAVE_ENABLE        = (1 << 7);
188 5d69a524 jcorgan
DEF        AUX_DAC_UPDATE_C                = (1 << 2);
189 5d69a524 jcorgan
DEF        AUX_DAC_UPDATE_B                = (1 << 1);
190 5d69a524 jcorgan
DEF        AUX_DAC_UPDATE_A                = (1 << 0);
191 5d69a524 jcorgan
192 5d69a524 jcorgan
DEF REG_AUX_DAC_PWR_DN        = 40;
193 5d69a524 jcorgan
DEF        AUX_DAC_PWR_DN_C                = (1 << 2);
194 5d69a524 jcorgan
DEF        AUX_DAC_PWR_DN_B                = (1 << 1);
195 5d69a524 jcorgan
DEF        AUX_DAC_PWR_DN_A                = (1 << 0);
196 5d69a524 jcorgan
197 5d69a524 jcorgan
DEF REG_AUX_DAC_CTRL        = 41;
198 5d69a524 jcorgan
DEF        AUX_DAC_CTRL_INV_C                = (1 << 4);
199 5d69a524 jcorgan
DEF        AUX_DAC_CTRL_INV_B                = (1 << 2);
200 5d69a524 jcorgan
DEF        AUX_DAC_CTRL_INV_A                = (1 << 0);
201 5d69a524 jcorgan
202 5d69a524 jcorgan
DEF REG_SIGDELT_LO        = 42;
203 5d69a524 jcorgan
DEF REG_SIGDELT_HI        = 43;
204 5d69a524 jcorgan
205 5d69a524 jcorgan
// 44 to 48 reserved
206 5d69a524 jcorgan
207 5d69a524 jcorgan
DEF REG_ADC_LOW_PWR_LO        = 49;
208 5d69a524 jcorgan
DEF REG_ADC_LOW_PWR_HI        = 50;
209 5d69a524 jcorgan
210 5d69a524 jcorgan
// 51 to 62 reserved
211 5d69a524 jcorgan
212 5d69a524 jcorgan
DEF REG_CHIP_ID                = 63;
213 5d69a524 jcorgan
214 5d69a524 jcorgan
215 5d69a524 jcorgan
END_AD962;
216 5d69a524 jcorgan
217 5d69a524 jcorgan
#undef DEF
218 5d69a524 jcorgan
#undef BEGIN_AD9862
219 5d69a524 jcorgan
#undef END_AD962
220 5d69a524 jcorgan
221 5d69a524 jcorgan
#endif /* INCLUDED_AD9862_H */