discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Using SPI on BasicRX


From: Eric Blossom
Subject: Re: [Discuss-gnuradio] Using SPI on BasicRX
Date: Mon, 14 Sep 2009 14:02:47 -0700
User-agent: Mutt/1.5.18 (2008-05-17)

On Mon, Sep 14, 2009 at 11:02:36AM -0700, E. Ornelas wrote:
> 
> Hello.
> I'm trying to use the SPI interface of a BasicRX.
> I made a small test program.
> It basically keeps on writing.
> 
> There are a few things I need to know:
> 1 - is this the right way to use the SPI?

Pretty close.  See below.

> 2 - is the buffer the hex number passed as a string?

It's binary, not hex.

> 3 - Even though I don't know what to expect with the buffer I used, I at
> least expected to see something in the BasicRX SPI pins, which I don't... I
> can see some periodic bursts on the clock pin but nothing on the signal.

We never implemented SPI_FMT_LSB;  Use SPI_FMT_MSB instead.


Try this:

from gnuradio import usrp

u = usrp.source_c(0)
spi_cmd = ''.join([chr(x) for x in [0x55, 0xAA, 0x55, 0xAA]])

while True:
  r = u._write_spi(0, usrp.SPI_ENABLE_RX_A, 
usrp.SPI_FMT_HDR_0|usrp.SPI_FMT_MSB, spi_cmd)



Look at the SDI (into the d'board), SCLK and SEN pins.

Eric



> Thanks in advance for any help you can give me.
> 
> The code I'm using is the one below:
> 
> from gnuradio import gr
> from gnuradio import window
> from gnuradio import usrp, howto
> import wx
> import time
> from gnuradio import audio
> 
> class FlowGraph(gr.top_block):
>   def __init__(self):
>     gr.top_block.__init__(self)
>   
>     decimation = 256
>     center_frequency = 10.7e6
>      
>     self.u = usrp.source_c(0, decimation, fpga_filename="std_2rxhb_2tx.rbf")
>     self.u.set_nchannels(1)
>     self.subdev_spec = (0,0)
>     self.subdev = usrp.selected_subdev(self.u, self.subdev_spec)
>     self.subdev.set_auto_tr(True)
>     self.subdev.select_rx_antenna('RX2')
>     self.u.tune(0, self.subdev, center_frequency)
>     g = self.subdev.gain_range()
>     gain = float(g[0]+g[1])/2
>     self.subdev.set_gain(gain)
>  
> if __name__ == "__main__":
>     print "Creating flowgraph..." ,
>     tb = TunerFlowGraph()
>     print "[DONE]"
>  
>     print "Starting flowgraph...",
>     tb.start()
>     print "[DONE]"
> 
>     while(1):
>     print "Writing to SPI...",
>     usrp.sink_s()._write_spi(0, usrp.SPI_ENABLE_RX_A,
> usrp.SPI_FMT_HDR_0|usrp.SPI_FMT_LSB, "@")
>     time.sleep(.030)
>     print "[DONE]"




reply via email to

[Prev in Thread] Current Thread [Next in Thread]