Problem of tuning freq and register to network set up by OpenBTS


I encount some problem when I run the OpenBTS source code with usrp.

First, I have made some check of the usrp to ensure that it work in the
right state, as follows:

[email protected]:~/download/software/gnuradio-3.2.2/usrp/host/apps#./test_usrp_standard_rx

xfered 1.34e+08 bytes in 4.19 seconds. 3.2e+07 bytes/sec. cpu time =

noverruns = 0

[email protected]:~/download/software/gnuradio-3.2.2/usrp/host/apps#./test_usrp_standard_tx

which: 0

interp: 16

rf_freq: -1

amp: 10000.000000

nsamples: 3.2e+07

Subdevice name is Flex 1800 Tx MIMO B

Subdevice freq range: (1.6e+09, 2e+09)

mux: 0x000098

baseband rate: 8e+06

target_freq: 1800000000.000000

ok: true

r.baseband_freq: 1804000000.000000

r.dxc_freq: -4000000.000000

r.residual_freq: 0.000000

r.inverted: 0










xfered 3.2e+07 bytes in 1.18 seconds. 2.715e+07 bytes/sec. cpu time =

9 underruns

But when I run the OpenBTS code, it will return false in

“m_uRx->read_io(1)” which is in the end of the following code.

(after the function “compute_regs”, freq=1739800000.000000, R=3407936,
control=5228836, N=4208152, actual_freq=1740000000.000000)

(I use the operating band “DCS1800”)

usrp_standard_rx_sptr m_uRx;

bool USRPDevice::rx_setFreq(double freq, double *actual_freq)


unsigned R, control, N;

if (!compute_regs(freq, &R, &control, &N, actual_freq))

    return false;

if (R==0)

return false;

m_uRx->_write_spi(0,SPI_ENABLE_RX_B,SPI_FMT_MSB |
SPI_FMT_HDR_0,write_it((R & ~0x3) | 1));

m_uRx->_write_spi(0,SPI_ENABLE_RX_B,SPI_FMT_MSB |
SPI_FMT_HDR_0,write_it((control & ~0x3) | 0));


m_uRx->_write_spi(0,SPI_ENABLE_RX_B,SPI_FMT_MSB | SPI_FMT_HDR_0,
write_it((N & ~0x3) | 2));

if (m_uRx->read_io(1) & PLL_LOCK_DETECT) return true;

if (m_uRx->read_io(1) & PLL_LOCK_DETECT) return true;

    return false;


And I try to use the mobile phone to find the network make up by the
usrp, but I can only find the networks “中国移动” and “中国联通”.(The sim card
belong to “中国移动”). (But I have add the mobile phone’s IMIS to
“sip.conf” in
etc/Asterisk/ and add something like “exten =>
2103,1,Macro(dialGSM,310410186585291)” to the “extensions.conf” )

I don’t know what’s wrong , could you give me some advice?

Thanks very much!

Best wishes:)


Ping-ping -

I would suggest subscribing to [email protected]
and reposting your message there.

– David

On Sep 6, 2009, at 9:16 PM, pingping chen wrote:

time = 0.62
mux: 0x000098

if (!compute_regs(freq, &R, &control, &N, actual_freq))
write_it((N & ~0x3) | 2));
add the mobile phone’s IMIS to “sip.conf” in etc/Asterisk/ and
[email protected]

David A. Burgess
Kestrel Signal Processing, Inc.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs