From: Fabian U. <ma...@fa...> - 2009-02-04 13:47:32
|
Hello! I have an USRP1 with two RFX1800 daugtherboards. GNURadio is running under Ubuntu Linux and seems to work (usrp_fft.py - R A -f 1724.4e6 shows me the spectrum). I have the current revision of OpenBTS from the GNURadio subversion repository. configure, make, make install seems to work fine. I copied OpenBTS900.cpp to OpenBTS1800.cpp and edited the parameter of gBTS from EGSM900 to DCS1800 and changed the ARFCN to 583 (1724,4MHz and 1819,4MHz). It compiles a OpenBTS1800 binary. The problem is starting ./transceiver and then ./OpenBTS1800 the following errors occurs: transceiver: Transceiver.cpp:501: RX failed on tune OpenBTS1800: TRXManager.cpp:352: WARNING -- RXTUNE failed with status 1 TRXManager.cpp:396: WARNING -- POWERON failed with status 1 I found out that the problem is located in the function rx_setFreq (Transceiver/USRPDevice.cpp). Transceiver/USRPDevice.cpp: 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)); usleep(10000); 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; } It should return true, but it returns false in the last line of this function. I make a printf so see the values of PLL_LOCK_DETECT and m_uRx- >read_io(1). m_uRx->read_io(1) = 0xff3b = 1111 1111 0011 1011 PLL_LOCK_DETECT = 0x4 = 0000 0000 0000 0100 -> so "if (m_uRx->read_io(1) & PLL_LOCK_DETECT) return true;" is false and so it does not return true! The value of "PLL_LOCK_DETECT" is right, so "m_uRx->read_io(1)" must have the wrong value. The second bit must be 1 and not 0, so the function returns true. Does anyone know what's wrong here? Thanks & Regards -Fabian- |