blob: 493a0c3dec16c8655658f4bdac3531372f05cedc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
/*
* USRP - Universal Software Radio Peripheral
*
* Copyright (C) 2003 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA
*/
/*
* These are the register definitions for the Rev 1 USRP prototype
* The Rev 1 is the version with the AD9862's and daughterboards
*/
#ifndef _B100_REGS_H_
#define _B100_REGS_H_
#include "fx2regs.h"
/*
* Port A (bit addressable):
*/
#define USRP_PA IOA // Port A
#define USRP_PA_OE OEA // Port A direction register
#define USRP_ALTERA_CONFIG USRP_PA // Now on port A, not C
#define bmALTERA_DCLK bmBIT0
#define bmALTERA_NCONFIG bmBIT1
#define bmALTERA_DATA0 bmBIT3
#define bmALTERA_NSTATUS bmBIT4
#define bmRESET_FPGA_FIFOS bmBIT7
#define bmALTERA_BITS (bmALTERA_DCLK \
| bmALTERA_NCONFIG \
| bmALTERA_DATA0 \
| bmALTERA_NSTATUS \
)
#define bmPORT_A_OUTPUTS (bmALTERA_DCLK \
| bmALTERA_NCONFIG \
| bmALTERA_DATA0 \
)
#define bmPORT_A_INITIAL 0
#define PORT_A_ADDR 0x80
#define PORT_C_ADDR 0xA0
sbit at PORT_A_ADDR+0 bitALTERA_DCLK; // 0x80 is the bit address of PORT A
sbit at PORT_A_ADDR+1 bitALTERA_NCONFIG;
sbit at PORT_A_ADDR+2 bitSHORT_PACKET_SIGNAL;
sbit at PORT_A_ADDR+3 bitALTERA_DATA0;
sbit at PORT_A_ADDR+4 bitALTERA_NSTATUS;
sbit at PORT_C_ADDR+7 bitALTERA_CONF_DONE;
/* Port B: GPIF FD[7:0] */
/*
* Port C (bit addressable):
* 5:1 FPGA configuration
*/
#define USRP_PC IOC // Port C
#define USRP_PC_OE OEC // Port C direction register
#define bmPC_nRESET 0 //bmBIT0 // reset line to codecs (active low)
#define bmPC_LED0 bmBIT0 // active low
#define bmPC_LED1 bmBIT1 // active low
#define bmPORT_C_OUTPUTS (bmPC_LED0 | bmPC_LED1)
#define bmPORT_C_INITIAL (bmPC_LED0 | bmPC_LED1)
#define USRP_LED_REG USRP_PC
#define bmLED0 bmPC_LED0
#define bmLED1 bmPC_LED1
/* Port D: GPIF FD[15:8] */
/* Port E: not bit addressible */
#define USRP_PE IOE // Port E
#define USRP_PE_OE OEE // Port E direction register
#define bmPORT_E_OUTPUTS (0)
#define bmPORT_E_INITIAL (0)
/*
* FPGA output lines that are tied to FX2 RDYx inputs.
* These are readable using GPIFREADYSTAT.
*/
//#define bmFPGA_HAS_SPACE bmBIT0 // usbrdy[0] has room for 512 byte packet
//#define bmFPGA_PKT_AVAIL bmBIT1 // usbrdy[1] has >= 512 bytes available
#define bmDATA_EMPTY bmBIT0 //data output FIFO has no data ready
#define bmDATA_FIFO_FULL bmBIT1 //data input FIFO is full
#define bmCTRL_EMPTY bmBIT2 //control output FIFO has no data ready
#define bmCTRL_FIFO_FULL bmBIT3 //control input FIFO is full
// #define bmTX_UNDERRUN bmBIT2 // usbrdy[2] D/A ran out of data
// #define bmRX_OVERRUN bmBIT3 // usbrdy[3] A/D ran out of buffer
/*
* FPGA input lines that are tied to the FX2 CTLx outputs.
*
* These are controlled by the GPIF microprogram...
*/
// WE bmBIT0 // usbctl[0] write enable
// RE bmBIT1 // usbctl[1] read enable
// OE bmBIT2 // usbctl[2] output enable
// EP bmBIT3 // usbctl[3] endpoint select (data/ctrl)
#endif /* _USRP_REV1_REGS_H_ */
|