[Discuss-gnuradio] Ethernet and bursting

2010-05-23 Thread Charles Irick
Hi,
Im trying to understand a little more about the Ethernet communication
model used for GNU Radio. I notice that the frames have start of burst
and end of burst flags. Is this related to sending Ethernet frames?
How many frames can be sent in a single burst? If these are not
related to Ethernet, what is their purpose? Any good documents to look
at relating to this? Thanks.

Charles

___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] MAC layer development and USRP2

2010-04-06 Thread Charles Irick
> I would tend to blame Linux and buffering more than GbE itself (MAC + PHY).  
> Here is an interesting doc where the
> researchers were asking similar questions:
>
>  http://www.hep.man.ac.uk/u/rich/atlas/docs/atlas_net_note_draft5.pdf
>
> I'm not sure yet how much buffering is done in the USRP2 firmware but we hope 
> to know shortly as a couple of our guys
> are in the process of taking apart the logic, pulling out non-GbE related 
> sections, and rebuilding.
>
> -Jeff

I glanced over the document briefly and was wondering if your analysis
of the linux issue was because of this document, or a separate source.
I'm only asking because the document is 10 years old and is using
RedHat 5 and Pentium 2s. I would assume the linux kernel support for
GigE has improved since then.

Charles


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] MAC layer development and USRP2

2010-04-06 Thread Charles Irick
Thanks for the reply George. I'm still looking for a little more
information on this topic.

- What is PMT
- Why was m-block removed
- Has anyone measured latency with the USRP2 and GigE
- Is GigE alone not capable of handling MAC turnaround times or is
software to blame for this
- Is the scheduler the main issue in the way it handles i/o between blocks

Charles

On Sun, Mar 14, 2010 at 5:52 PM, George Nychis  wrote:
> Think of it this way...
>
> MAC *development* is severely limited by GNU Radio... it lacks the
> much-needed functionality to make information passing between the
> blocks rich, simple, and bi-directional.  Some of the  building blocks
> are in place (e.g., PMT), and the m-block was implemented to solve the
> rest of the problems, but was deprecated (maybe removed as of now?).
>
> MAC *performance* is limited by several things: 1) delay between GNU
> Radio and the USRP/USRP2, 2) signal processing delay (GNU Radio), and
> (3) jitter (e.g., unpredictable delay) ... (1) is reduced a little by
> USRP2 using GigE, but it's still not down to traditional MAC
> turnaround times (10s of us).  (2) benefits from Moore's law.  (3)
> kind of depends on whether you use realtime scheduling and how your
> data hits delays in queues mainly.
>
> All in all... still an open problem IMO.
>
> - George
>
>
> On Sun, Mar 14, 2010 at 5:06 PM, Charles Irick  wrote:
>> I've been reading some papers related to MAC layer development on the
>> USRP, but they seem to have tapered off with the USRP2. Does anyone
>> have any information about MAC layer and protocol development for the
>> USRP2. Has this been satisfied with things like timestamps and gigE?
>> Any current papers or web links related to USRP2 protocol level
>> development? Thanks.
>>
>> Charles
>>
>>
>> ___
>> Discuss-gnuradio mailing list
>> Discuss-gnuradio@gnu.org
>> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>
>


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] USRP2 source and receiving samples question

2010-04-05 Thread Charles Irick
Hi,
I made a lower level c++ implementation using the code from
rx_streaming_samples.cc in /usrp2/host/apps and manually put in a tx
before the receive portion and it works fine. It seems the issue is
related to noutput_items in my gr- module. As I stated above it uses
8162 for noutput_items for whatever reason and this is what is used to
define the maximum number of samples for the rx_nop_handler. The
reason the c++ one works is because the rx_nop_handler is created with
an nsamples value that is expected which lets has_finished_p() be
triggered. If I manually put in 8162 into the rx_nop_handler in the
c++ implementation I get the "never ending can't even control-c have
to sudo kill the process" behavior as I was in the python
implementation. I'm not adept at the GNU Radio scheduler or this SWIG
stuff, so if anyone could give me some idea of how the number of
output items is determined or why my module is saying it needs 8162 I
would appreciate it.

Charles

On Sat, Apr 3, 2010 at 12:15 PM, Charles Irick  wrote:
> Hi,
> I'm trying to write a module that works almost identical to the
> usrp2_source_16sc module, but I'm having trouble with receiving the
> samples. It seems my module is never satisfied with the amount of data
> I send it, it just keeps polling for data in the background loop. What
> I want to do is send a file, run it through a loopback on an external
> hardware device, then read it back in on the host. Here is what my
> code does:
>
> self.asink = afpga.sink_raw(options.interface)
> self.asrc = afpga.source_raw(options.interface)
>
> self.input = gr.file_source(gr.sizeof_int,"in.txt",0) #only send once
> self.output = gr.file_sink(gr.sizeof_int,"out.txt")
>
> self.connect (self.input,self.asink)
> self.connect (self.asrc, self.output)
>
> #control stuff
> tb.start()
> raw_input('Press Enter to quit: \n')
> tb.stop()
> tb.wait()
>
>
> Pretty simple stuff. I the data loops back correctly and my handler
> shows nsamples as correct, but my program never halts or writes the
> samples to the file. It actually won't even let me control-c my python
> script. The only odd thing to me is that noutput_items for my work
> function is 8162. Not sure how this value is set, but to me it should
> be the number of samples.
>
> Some output (file gets split up into two frames, one with 371 samples
> and the second with 142):
> work: noutput items 8162
> data handler: len: 1512
> rx_samples: want more
> work: handled 371 samples
>
> noutput items 8162
> data handler: len: 596
> rx_samples want more
> work:handled 142 samples
> poll for more samples forever..
>
> Any ideas or a description on how the receive system works would be
> much appreciated.
>
> version 3.2.2
> Ubuntu 9.04
>
> Thanks,
> Charles
>


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] USRP2 source and receiving samples question

2010-04-03 Thread Charles Irick
Hi,
I'm trying to write a module that works almost identical to the
usrp2_source_16sc module, but I'm having trouble with receiving the
samples. It seems my module is never satisfied with the amount of data
I send it, it just keeps polling for data in the background loop. What
I want to do is send a file, run it through a loopback on an external
hardware device, then read it back in on the host. Here is what my
code does:

self.asink = afpga.sink_raw(options.interface)
self.asrc = afpga.source_raw(options.interface)

self.input = gr.file_source(gr.sizeof_int,"in.txt",0) #only send once
self.output = gr.file_sink(gr.sizeof_int,"out.txt")

self.connect (self.input,self.asink)
self.connect (self.asrc, self.output)

#control stuff
tb.start()
raw_input('Press Enter to quit: \n')
tb.stop()
tb.wait()


Pretty simple stuff. I the data loops back correctly and my handler
shows nsamples as correct, but my program never halts or writes the
samples to the file. It actually won't even let me control-c my python
script. The only odd thing to me is that noutput_items for my work
function is 8162. Not sure how this value is set, but to me it should
be the number of samples.

Some output (file gets split up into two frames, one with 371 samples
and the second with 142):
work: noutput items 8162
data handler: len: 1512
rx_samples: want more
work: handled 371 samples

noutput items 8162
data handler: len: 596
rx_samples want more
work:handled 142 samples
poll for more samples forever..

Any ideas or a description on how the receive system works would be
much appreciated.

version 3.2.2
Ubuntu 9.04

Thanks,
Charles


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] bpsk Simulation

2010-03-15 Thread Charles Irick
Hi,
I'm also having issues with the use of this block if I try the same
concept. I'm not concerned with the noise generation and just want to
modulate and then demodulate data. I am using the vector creation and
packing as stated above. The results I'm getting are deterministic,
just incorrect. Here is what i'm using:

099 self.src_data = 3 * [0x40,0x41,0x42,0x43,]
100 self.src0 = gr.vector_source_b(self.src_data)
101 self.mod = blks2.dbpsk_mod(8,0.35,False,True,False)
102 self.demod =
blks2.dbpsk_demod(8,0.35,0.1,None,0.5,0.005,False,True,False)
103 self.pack = gr.unpacked_to_packed_bb(1,gr.GR_MSB_FIRST)
104 self.connect(self.src0,self.mod,self.demod,self.pack)
105
106 self.sink1 = gr.vector_sink_b()
107 self.connect(self.pack,self.sink1)
108
109 self.sink2 = gr.vector_sink_b()
110 self.connect = (self.src0,self.sink2)
111
112 def print_data(self):
113 print "data: ",self.src_data
114 print len(self.src_data)
115 print "demod: ",self.sink1.data()
116 print len(self.sink1.data())
117 print "check: ",self.sink2.data()
118 print len(self.sink2.data())

Here is the output:
>>> gr_fir_ccf: using SSE

Modulator:
bits per symbol: 1
Gray code:   False
RRC roll-off factor: 0.35

Demodulator:
bits per symbol: 1
Gray code:   False
RRC roll-off factor: 0.35
Costas Loop alpha:   1.00e-01
Costas Loop beta:2.50e-03
M&M mu:  0.50
M&M mu gain: 1.00e-01
M&M omega:   8.00
M&M omega gain:  2.50e-03
M&M omega limit: 0.01

data:  [64, 65, 66, 67, 64, 65, 66, 67, 64, 65, 66, 67]
12
demod:  (1, 239, 1, 5, 9, 13, 1, 5, 9, 13, 1)
11
check:  ()
0

Thanks in advance for any help


On Thu, Mar 11, 2010 at 11:43 AM, Tom Rondeau  wrote:
> On Thu, Mar 11, 2010 at 4:09 AM, Axel Belliard  wrote:
>> Hi,
>>
>> I'm new to gnu radio. To get familiar with this project, I'm trying to
>> simulate a dbpsk link.
>>
>> My flow graph look like this :
>> stream of bits => Modulation => frequency up translation => Noisy channel
>> => frequency down translation => Demodulation
>>
>> But, there is something going wrong!! If the input stream looks like this
>> : 0 0 1 1 0 0 1 1 0 0 1 1. the output will be ( after Costa's loop and
>> MM are stabilized )  : 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1..
>>  I looked for an undesired decimation, but didn't find any. Do you Have
>> any idea of what is going wrong?
>>
>> Axel
>
> This is a bit confusing, but it makes sense in the way we meant for
> the digital modulators to work. The problem is that you are trying to
> put in "bits" into the modulator, which actually takes a "packet"
> stream of bits. In other words, when you think you are putting in the
> bits "0 0 1 1," you are actually telling it that you are putting in
> the bytes "0 0 1 1" that gets unpacked into the bit stream "0 0 0 0 0
> 0 0 0, 0 0 0 0 0 0 0 0, 0 0 0 0 0 0 0 1, 0 0 0 0 0 0 0 1" or "0x00
> 0x00 0x01 0x01".
>
> What you want to put in as the source is a vector of "0x33" instead.
> You can also use the gr.unpacked_to_packed_bb on the demod side to
> repack the bits. I've edited your code below to show how to do this.
> Now, when you do this, you're still going to see some random stuff
> going on in the output stream for the first few symbols. These garbage
> bits are due to the filters' group delays.
>
> One final thought. You're doing a frequency shift operation on the
> complex baseband signal and then almost immediately downconverting it.
> This doesn't really do anything of any consequence to your simulation
> except require you to use a larger sampling rate than really required.
> If you want to test frequency offset errors, you can use the features
> in the channel model that we have (blks2.channel_model), which takes
> in a noise voltage, frequency offset, timing offset, and a vector of
> taps to simulate multipath.
>
>
>> My code :
>> class my_top_block(gr.top_block):
>>        def __init__(self):
>>                gr.top_block.__init__(self)
>>                fg = gr.flow_graph()
>>
>>                sps = 8
>>                symbol_rate = 1625000.0 / 6.0
>>                sample_rate = sps * symbol_rate
>>                p_size = 1024
>>                lo_freq = 7.5e5
>>                lp_cutoff = 2.5e5
>>                lp_tw = 5e5
>>                noise_mag = 0.0
>>                #Source
>
>                  N = 
>                  self.src_data = N*[0x33, ] # make an N-long vector
> with 0x33 in every element
>
>>                self.src0 = gr.vector_source_b (self.src_data)
>>                ##
>>
>>                ###Modulation
>>                self.objMod = dbpsk.dbpsk_mod(sps,0.35,False,False,False)
>>                #
>>
>>                ### Canal
>>                # Mix to IF
>>                self.lo = gr.sig_source_c(sample_rate, gr.GR_SIN_WAVE, 
>> lo_freq,1.0, 0)
>>                self.mixer 

[Discuss-gnuradio] MAC layer development and USRP2

2010-03-14 Thread Charles Irick
I've been reading some papers related to MAC layer development on the
USRP, but they seem to have tapered off with the USRP2. Does anyone
have any information about MAC layer and protocol development for the
USRP2. Has this been satisfied with things like timestamps and gigE?
Any current papers or web links related to USRP2 protocol level
development? Thanks.

Charles


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] Issue transmitting samples using vector i/o

2010-02-08 Thread Charles Irick
I'm running into issues with the sendmsg command in the vectorized
send path. Depending on the buffer size I get an error returned for
"Bad Address"

>> ethernet:write_packetv: send: Bad address

I'm working at the c++ level right now and my program is pretty simple:

usrp2::usrp2::sptr u2 = usrp2::usrp2::make(interface,mac_addr);

usrp2::tx_metadatamd;
md.timestamp = -1;
md.start_of_burst = 1;
md.send_now = 1;

uint32_t buf[1000];
u2->tx_raw(0,buf,sizeof(buf),&md);

around a buffer size of 200 I will start seeing some sends get bad
address returned, for a size less than 200 it may happen but I have
not seen any occurrences.  Something like a buffer of 1000 (11 frames
needed to be transmitted) never succeeds.

Any ideas about the relation between this buffer size/num frames and
sendmsg returning bad address? Am I using this incorrectly (i know I
should be using something like tx_fc32, but the data doesn't matter to
me right now) ?

Also, what are the reasons for using the vector i/o in this instance?

OS: Ubuntu 9.04
Using dev code from git

Charles


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] Understanding flow control

2010-01-14 Thread Charles Irick
Hello,
I'm trying to understand the flow control between the USRP2 and host
machine. I assume that it needs to be worked out where the USRP2 will
always have a constant stream of uninterrupted radio data when sending
and receiving (unless a more complex radio is in place which allows
the signal to drop).

I have read that overruns are not really an issue, is this due to the
processing power/throughput of the spartan 3 vs the host processor?

I see that pause frames are used to help with flow control but I can
only see this being used if an overrun or full fifo has occured on the
USRP2, what happens if the fifo becomes empty?

I'm trying to catch the pause frames with tcp dump and i'm either
doing it wrong or they are not happening. I have tried usrp2_siggen
and usrp2_fft. I'm using the dev code from git on ubuntu 9.04 with
gnuradio 3.2.2

We are either overflowing, underflowing, or are perfectly in sync.
Only overflow with pause frames to control makes sense to me. If this
is not the case an explanation would be very much appreciated.

Charles


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] carrier signal dropping

2010-01-06 Thread Charles Irick
FYI, the new git repo doesn't seem to have usrp2_siggen.py under
gr-utils. usrp_siggen.py seems to work in the same way with minor
differences but the naming makes it seem like it's for the original
usrp. I probably wouldn't have thought it was compatible if I was just
poking around for the first time.

Charles

On Wed, Jan 6, 2010 at 4:42 PM, Eric Blossom  wrote:
> On Wed, Jan 06, 2010 at 04:32:21PM -0500, Charles Irick wrote:
>> My apologies,
>> Distro: Ubuntu 9.04
>> Kernel: 2.6.28-17-generic
>> GNU Radio version: I'm pretty sure it's 3.2.2, I'm using the dev trunk
>> but svn doesn't seem to allow me to update right now.
>>
>> It is indeed complaining about not being able to enable real-time
>> scheduling. Since you asked I assumed this was the issue and looked it
>> up. It turns out even though I set up the USRP2 to run as non-root by
>> changing the permissions of usrp2_socket_opener, this was the issue.
>> It seems to work fine as root. I'm guess the tx fifo was emptying
>> without scheduling? Is there anywhere that I can read up on this
>> real-time scheduling because I will definitely need to solve some
>> similar issues in the future.
>>
>>
>
>
> Edit /etc/security/limits.conf and add this line:
>
> @usrp  - rtprio 50
>
> make sure that your user is a member of group usrp, then logout and back in.
>
> Eric
>


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] carrier signal dropping

2010-01-06 Thread Charles Irick
My apologies,
Distro: Ubuntu 9.04
Kernel: 2.6.28-17-generic
GNU Radio version: I'm pretty sure it's 3.2.2, I'm using the dev trunk
but svn doesn't seem to allow me to update right now.

It is indeed complaining about not being able to enable real-time
scheduling. Since you asked I assumed this was the issue and looked it
up. It turns out even though I set up the USRP2 to run as non-root by
changing the permissions of usrp2_socket_opener, this was the issue.
It seems to work fine as root. I'm guess the tx fifo was emptying
without scheduling? Is there anywhere that I can read up on this
real-time scheduling because I will definitely need to solve some
similar issues in the future.


On Wed, Jan 6, 2010 at 4:10 PM, Eric Blossom  wrote:
> On Wed, Jan 06, 2010 at 03:44:26PM -0500, Charles Irick wrote:
>> Hello,
>> I hooked my usrp2 up to a spectrum analyzer and tried using the signal
>> generator in gr-utils to see what I could get. The carrier signal
>> seems to be turning on and off and I'm getting a lot of peaks at
>> various frequencies probably from the carrier turning back on. Is this
>> a code issue, normal behavior, or something I'm doing wrong?
>>
>
> Exactly what command line did you use?
> What version of GNU Radio?
> Did it complain about not being able to enable real-time scheduling?
> What OS, distribution, hardware?
>
> In general, we can be of more use to you if you follow these tips:
>
>  http://gnuradio.org/redmine/wiki/gnuradio/ReportingErrors
>
> Eric
>


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] carrier signal dropping

2010-01-06 Thread Charles Irick
Hello,
I hooked my usrp2 up to a spectrum analyzer and tried using the signal
generator in gr-utils to see what I could get. The carrier signal
seems to be turning on and off and I'm getting a lot of peaks at
various frequencies probably from the carrier turning back on. Is this
a code issue, normal behavior, or something I'm doing wrong?


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] Issues with porting a radio design to USRP2

2009-12-29 Thread Charles Irick
Hello,
I'm currently trying to port a radio design to the USRP2 platform but
I am having a few issues. The current radio hardware contains a DAC
with variable sampling rates allowing for it to be a multiple of the
bitrate. It is currently using an IF of 60Mhz and a bitrate of 6Mbps.
I'm wondering if there are any utilities the USRP2 provides for
designing radios where the sampling rate and bitrate are not
multiples, such as a DDS, given that the sampling rate is locked to
100MS/s. Thanks in advance.

Charles


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Using the MIMO port for serial comm. to a Virtex5 board

2009-12-07 Thread Charles Irick
Thank you for the fast reply. It looks like I need the SATA fanout
connectors to be the host in this case because pin 2-3 are TX for the
SATA port. Would there be any issue having the mini-SAS as the target?
(part: iSAS-7P88-U)

Charles

On Mon, Dec 7, 2009 at 2:29 PM, Matt Ettus  wrote:
> On 12/07/2009 11:17 AM, Charles Irick wrote:
>>
>> Hello,
>> I am narrowing down my issues and I think my problem is related to
>> physically connecting the USRP2 to the V5 and it being a host to host
>> connection. (I think I have Tx connected to Tx and Rx to Rx) For
>> verification, are the A1-A13 pins on top or the B1-B13 pins for the
>> mini-SAS port? (
>> http://gnuradio.org/trac/attachment/wiki/USRP2Schem/expansion.pdf ) My
>> guess is that the B1-B13 pins are at the top with B1 being in the top
>> left corner if you are looking at the port on the front of the USRP2.
>
>
> All outputs are on B, which is on top.
>
>
>> Also, when using two USRP2s you should have this same host to host
>> issue, is this resolved because the mimo cable is a crossover? Thanks
>> in advance for any help.
>
> All SAS cables are what you would call crossover.  A on one side connects to
> B on the other.  Wiring diagrams are here:
>
> http://www.cs-electronics.com/isas-cables-NEW.htm
>
>
>
>>
>> Charles
>>
>> On Tue, Dec 1, 2009 at 4:30 PM, Matt Ettus  wrote:
>>>
>>> On 12/01/2009 12:58 PM, Charles Irick wrote:
>>>>
>>>> Hello,
>>>> I'm most likely having a clock issue because I cannot get any data
>>>> transfers going between the USRP2 and GTPs on the V5. A few questions:
>>>>
>>>> - I'm not quite sure I understand the 10MHz reference clock idea, or
>>>> its usage; I looked through the HDL and everything on the FPGA is
>>>> running at 100MHz.
>>>
>>> The 10 MHz reference input on the front is optional.  If you connect it
>>> and
>>> enable locking, the 100 MHz main oscillator will lock to it, otherwise it
>>> will free run.  Everything inside the FPGA runs at 100 MHz (DSP) or 50
>>> MHz
>>> (processor).
>>>
>>> There is also a 10 MHz reference clock sent out on the MIMO connector.
>>> When
>>> turned on, it will be the 100 MHz clock divided down by 10.
>>>
>>>> - I assume I will not need to provide this reference clock if the
>>>> USRP2 is the driver given that sd_gentest appears to do so in the main
>>>> functions clocks_mimo_config. Either way I'm using the SAS to quad
>>>> SATA cable so the clock isn't even transferred to the GTPs (literally,
>>>> it's supposed to derive it from the data).
>>>
>>> sd_gentest will generate packets and send them on the serdes on the MIMO
>>> cable.  You should be able to receive it without using the 10 MHz
>>> reference
>>> clock because, as you say, the clock is recovered from the data.
>>>
>>>> - My only clocking options on the GTP's are 150 or 75MHz. I'm not sure
>>>> if I should clock the USRP2's FPGA or the reference differently to
>>>> match this.
>>>
>>>
>>> The important thing is that you get the GTPs set up for the correct data
>>> rate.  On the USRP2, the main clock to the SERDES chip is 100 MHz.  2
>>> Bytes
>>> are sent on each clock, so the effective data rate is 1.6 Gbps. However,
>>> since 8b-10b coding is used, the on the wire bit rate is 2.0 Gbps
>>> (20*100MHz).  So whatever reference clock you use, you need the GTP to be
>>> working at 2 Gbps.  I am by no means an expert on the GTPs, but I think
>>> the
>>> easiest way to do this is to have a reference clock of 100 MHz.
>>>
>>> You could probably use the PLLs in the V5 to create a 100 MHz reference
>>> clock from one of your other clock rates.
>>>
>>> Matt
>>>
>
>


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Using the MIMO port for serial comm. to a Virtex5 board

2009-12-07 Thread Charles Irick
Hello,
I am narrowing down my issues and I think my problem is related to
physically connecting the USRP2 to the V5 and it being a host to host
connection. (I think I have Tx connected to Tx and Rx to Rx) For
verification, are the A1-A13 pins on top or the B1-B13 pins for the
mini-SAS port? (
http://gnuradio.org/trac/attachment/wiki/USRP2Schem/expansion.pdf ) My
guess is that the B1-B13 pins are at the top with B1 being in the top
left corner if you are looking at the port on the front of the USRP2.
Also, when using two USRP2s you should have this same host to host
issue, is this resolved because the mimo cable is a crossover? Thanks
in advance for any help.

Charles

On Tue, Dec 1, 2009 at 4:30 PM, Matt Ettus  wrote:
> On 12/01/2009 12:58 PM, Charles Irick wrote:
>>
>> Hello,
>> I'm most likely having a clock issue because I cannot get any data
>> transfers going between the USRP2 and GTPs on the V5. A few questions:
>>
>> - I'm not quite sure I understand the 10MHz reference clock idea, or
>> its usage; I looked through the HDL and everything on the FPGA is
>> running at 100MHz.
>
> The 10 MHz reference input on the front is optional.  If you connect it and
> enable locking, the 100 MHz main oscillator will lock to it, otherwise it
> will free run.  Everything inside the FPGA runs at 100 MHz (DSP) or 50 MHz
> (processor).
>
> There is also a 10 MHz reference clock sent out on the MIMO connector. When
> turned on, it will be the 100 MHz clock divided down by 10.
>
>> - I assume I will not need to provide this reference clock if the
>> USRP2 is the driver given that sd_gentest appears to do so in the main
>> functions clocks_mimo_config. Either way I'm using the SAS to quad
>> SATA cable so the clock isn't even transferred to the GTPs (literally,
>> it's supposed to derive it from the data).
>
> sd_gentest will generate packets and send them on the serdes on the MIMO
> cable.  You should be able to receive it without using the 10 MHz reference
> clock because, as you say, the clock is recovered from the data.
>
>> - My only clocking options on the GTP's are 150 or 75MHz. I'm not sure
>> if I should clock the USRP2's FPGA or the reference differently to
>> match this.
>
>
> The important thing is that you get the GTPs set up for the correct data
> rate.  On the USRP2, the main clock to the SERDES chip is 100 MHz.  2 Bytes
> are sent on each clock, so the effective data rate is 1.6 Gbps. However,
> since 8b-10b coding is used, the on the wire bit rate is 2.0 Gbps
> (20*100MHz).  So whatever reference clock you use, you need the GTP to be
> working at 2 Gbps.  I am by no means an expert on the GTPs, but I think the
> easiest way to do this is to have a reference clock of 100 MHz.
>
> You could probably use the PLLs in the V5 to create a 100 MHz reference
> clock from one of your other clock rates.
>
> Matt
>


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Using the MIMO port for serial comm. to a Virtex5 board

2009-12-01 Thread Charles Irick
Hello,
I'm most likely having a clock issue because I cannot get any data
transfers going between the USRP2 and GTPs on the V5. A few questions:

- I'm not quite sure I understand the 10MHz reference clock idea, or
its usage; I looked through the HDL and everything on the FPGA is
running at 100MHz.

- I assume I will not need to provide this reference clock if the
USRP2 is the driver given that sd_gentest appears to do so in the main
functions clocks_mimo_config. Either way I'm using the SAS to quad
SATA cable so the clock isn't even transferred to the GTPs (literally,
it's supposed to derive it from the data).

- My only clocking options on the GTP's are 150 or 75MHz. I'm not sure
if I should clock the USRP2's FPGA or the reference differently to
match this.

Any help with the clocking scheme would be much appreciated. Thank you.

Charles

On Fri, Nov 27, 2009 at 4:20 PM, Charles Irick  wrote:
> On Thu, Nov 26, 2009 at 4:47 PM, Matt Ettus  wrote:
>> Yes, you'll need to do firmware.  If you just modify the main() function to
>> set the loopback, it doesn't matter which firmware you start with.
>
> The closest thing I can find is the following:
> output_regs->serdes_ctrl = (SERDES_ENABLE | SERDES_RXEN |
> SERDES_LOOPEN);
> I tried pasting that line into main() of sd_bounce assuming that
> SERDES_LOOPEN was the loopback parameter.
> I'm not getting anything back on the V5 side so if that function is
> correct then it is probably some type of clocking issue.
>
>> BTW, I don't know how you intended to physically connect the boards. The
>> best long term solution is to have your own custom board which implements
>> the connections we use (SAS).  In the short term, you can buy a SAS to quad
>> SATA breakout cable.  This would connect right to the SATA headers on many
>> FPGA eval boards.
>>
>> Matt
>
> Right now this is what I'm doing. SAS to quad SATA breakout. I'm using
> Lane 1 to connect to the V5 board. Are there any particular
> disadvantages to this solution that made you suggest a custom board?
>
> Charles
>


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Using the MIMO port for serial comm. to a Virtex5 board

2009-11-25 Thread Charles Irick
Hello again,
I decided to try and run the mimo_tx.bin (built from SVN rev 11663) as
the s/w firmware and use the Virtex5 board as the "slave USRP2" since
this would require almost no changes to the gnuradio side. I'm using
u2_rev3_ise10.1sp3_r11370.bin as the FPGA bitstream. When I run the
host app ./test_mimo_tx I get the following error and everything
freezes up (cannot ctrl-c, have to reboot the usrp2):
"usrp2::ctor reset_db failed"

Most people seem to be able to fix this with a firmware update because
of some new process in libusrp2 with initialization. If this is the
case then it must be something in mimo_tx.c that needs to be updated.
Either that or the host app. Any ideas?

Might be important: I'm not sure what type of modifications to mb-gcc
are imperative for building firmware for the aeMB, but I'm using the
standard version that comes with ISE for the vanilla microblaze as I
didn't want to mess up the toolchain for standard development.

Charles

On Tue, Nov 24, 2009 at 6:10 PM, Charles Irick  wrote:
> Hello,
> I'm looking to use the MIMO port to send serial data to a Virtex5
> board and am trying to get an idea of how to set up the USRP2 to
> achieve this.
>
> - I was wondering how a simple loopback test might be achieved.
> Something simple like taking what the TI chip gives the FPGA and
> sending it back out. Not sure if I should be concerning myself with
> the HDL code running on the Spartan 3. (usrp2/fpga/serdes)
> - It looks like I will probably have to flash the firmware and I'm not
> sure what the best s/w configuration would be. (mimo_tx.bin,
> serdes_txrx.bin, my own,  ...)
>
> My guess: I will need to create my own app.c in usrp2/firmware/apps
> which receives a serial packet and sends it back out, compile this,
> then flash it to the SD card to be run on the aeMB.
>
> I think I'm just trying to get an idea of what code I should be
> using/modifying to perform the tasks I want using the MIMO port.
>
> Charles
>


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] Using the MIMO port for serial comm. to a Virtex5 board

2009-11-24 Thread Charles Irick
Hello,
I'm looking to use the MIMO port to send serial data to a Virtex5
board and am trying to get an idea of how to set up the USRP2 to
achieve this.

- I was wondering how a simple loopback test might be achieved.
Something simple like taking what the TI chip gives the FPGA and
sending it back out. Not sure if I should be concerning myself with
the HDL code running on the Spartan 3. (usrp2/fpga/serdes)
- It looks like I will probably have to flash the firmware and I'm not
sure what the best s/w configuration would be. (mimo_tx.bin,
serdes_txrx.bin, my own,  ...)

My guess: I will need to create my own app.c in usrp2/firmware/apps
which receives a serial packet and sends it back out, compile this,
then flash it to the SD card to be run on the aeMB.

I think I'm just trying to get an idea of what code I should be
using/modifying to perform the tasks I want using the MIMO port.

Charles


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] wxgui errors

2009-06-26 Thread Charles Irick
I'm trying to run the usrp_wfm_rcv.py example and I get the errors
below. The gui interface comes up but appears to lock up immediately.
I have tried to look in the file gr-wxgui/src/python/forms/forms.py
under the radio_buttons class but I see no index parameter. This is
probably a simple error but I'm new to python and having trouble
understanding what is going on. I am using the code from subversion
(maybe not a great idea for starting out). I have python2.5-dev.
Running on Ubuntu 8.10. Thank you in advance.

Using RX d'board A: Basic Rx
>>> gr_fir_ccf: using SSE
>>> gr_fir_fff: using SSE
Form:  -> y_per_div
Error translating value: "10"
    'tuple' object has no attribute 'index'
    Enter a possible value in choices: "(1, 2, 5, 10, 20)"
Form:  -> y_per_div
Error translating value: "10"
    'tuple' object has no attribute 'index'
    Enter a possible value in choices: "(1, 2, 5, 10, 20)"
FYI: No Powermate or Contour Knob found
Traceback (most recent call last):
  File "/usr/local/lib/python2.5/site-packages/gnuradio/wxgui/forms/forms.py",
line 100, in 
    widget.Bind(EVT_DATA, lambda x: self._update(x.data))
  File "/usr/local/lib/python2.5/site-packages/gnuradio/wxgui/forms/forms.py",
line 473, in _update
    def _update(self, i): self._radio_buttons.SetSelection(i)
  File "/usr/lib/python2.5/site-packages/wx-2.8-gtk2-unicode/wx/_controls.py",
line 2425, in SetSelection
    return _controls_.RadioBox_SetSelection(*args, **kwargs)
TypeError: in method 'RadioBox_SetSelection', expected argument 2 of type 'int'
aUTraceback (most recent call last):
  File "/usr/local/lib/python2.5/site-packages/gnuradio/wxgui/forms/forms.py",
line 100, in 
    widget.Bind(EVT_DATA, lambda x: self._update(x.data))
  File "/usr/local/lib/python2.5/site-packages/gnuradio/wxgui/forms/forms.py",
line 473, in _update
    def _update(self, i): self._radio_buttons.SetSelection(i)
  File "/usr/lib/python2.5/site-packages/wx-2.8-gtk2-unicode/wx/_controls.py",
line 2425, in SetSelection
    return _controls_.RadioBox_SetSelection(*args, **kwargs)
TypeError: in method 'RadioBox_SetSelection', expected argument 2 of type 'int'


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] Just starting, Error running make

2009-06-24 Thread Charles Irick
Just getting started with GNU radio and I'm trying to compile the source
code with the instructions on the wiki for Ubuntu (8.10 Intrepid). I got the
code from the SVN and bootstrap runs fine, configure will not build the
following (which I assume is ok ) gcell, gr-gcell, gr-audio-jack,
gr-audio-osx, gr-audio-portaudio, gr-audio-windows, gr-comedi. When I go to
make I seem to be missing a library file:

make[5]: Entering directory `/home/chuck527/gnuradio/gnuradio-core/src/lib'
/bin/sh ../../../libtool --tag=CXX --mode=link g++ -g -O2  -Wall
-Woverloaded-virtual -pthread   -o libgnuradio-core.la -rpath
/usr/local/lib  -version-info 0:0:0 bug_work_around_6.lo
filter/libfilter.lag72x/
libccitt.la viterbi/libviterbi.la general/libgeneral.la gengen/libgengen.laio/
libio.la missing/libmissing.la reed-solomon/librs.la runtime/libruntime.lahier/
libhier.la 
/home/chuck527/gnuradio/omnithread/libgromnithread.la/home/chuck527/gnuradio/gruel/src/lib/
libgruel.la -lfftw3f -lm   -lgsl -lgslcblas -lm   -lgslcblas
libtool: link: g++ -shared -nostdlib
/usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/crti.o
/usr/lib/gcc/i486-linux-gnu/4.3.2/crtbeginS.o  .libs/bug_work_around_6.o
-Wl,--whole-archive filter/.libs/libfilter.a g72x/.libs/libccitt.a
viterbi/.libs/libviterbi.a general/.libs/libgeneral.a
gengen/.libs/libgengen.a io/.libs/libio.a missing/.libs/libmissing.a
reed-solomon/.libs/librs.a runtime/.libs/libruntime.a hier/.libs/libhier.a
-Wl,--no-whole-archive  -Wl,-rpath
-Wl,/home/chuck527/gnuradio/omnithread/.libs -Wl,-rpath
-Wl,/home/chuck527/gnuradio/gruel/src/lib/.libs
/home/chuck527/gnuradio/omnithread/.libs/libgromnithread.so
/home/chuck527/gnuradio/gruel/src/lib/.libs/libgruel.so -L/usr/lib
-lboost_thread-gcc43-mt-1_35 -lrt /usr/lib/libfftw3f.so -lgsl -lgslcblas
-L/usr/lib/gcc/i486-linux-gnu/4.3.2
-L/usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib -L/lib/../lib
-L/usr/lib/../lib -L/usr/lib/gcc/i486-linux-gnu/4.3.2/../../.. -lstdc++ -lm
-lc -lgcc_s /usr/lib/gcc/i486-linux-gnu/4.3.2/crtendS.o
/usr/lib/gcc/i486-linux-gnu/4.3.2/../../../../lib/crtn.o  -pthread
-pthread -Wl,-soname -Wl,libgnuradio-core.so.0 -o
.libs/libgnuradio-core.so.0.0.0
g++: /usr/lib/libfftw3f.so: No such file or directory
make[5]: *** [libgnuradio-core.la] Error 1

I installed all dependencies including the optional ones with the exception
of g77 which give me errors from apt. I made sure to get python-wxgtk-2.8.
Hopefully this is sufficient info. Any help would be appreciated.
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio