[Top][All Lists]

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

[Discuss-gnuradio] Firmware issue: Send a constant signal with the xcvr2

From: Matthias Schäfer
Subject: [Discuss-gnuradio] Firmware issue: Send a constant signal with the xcvr2450 dboard
Date: Wed, 15 Sep 2010 17:55:12 +0200
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv: Gecko/20100907 Lanikai/3.1.3

 Hi List,
I'm currently working on a standalone firmware app for USRP2. My goal is to send a constant signal with the xcvr2450 dboard. I skipped the tuning via firmware by doing this prior from a host using the simple_usrp c++ interface:

uhd::usrp::simple_usrp::sptr sdev = uhd::usrp::simple_usrp::make(args);
uhd::device::sptr dev = sdev->get_device();

So back to the firmware. Assuming the tuning of the dboard is properly done from host, I basically understood the way sending is done as follows:

1. Wait for the buffer pool to become idle:

while((buffer_pool_status->status & BPS_IDLE(DSP_TX_BUF_0)) == 0)

2. Copy the data which should be send to the DSP into the DSP tx-buffer:

uint32_t *p = buffer_ram(DSP_TX_BUF_0);
uint32_t sample = (32000 << 16) | 0; // for example
for (i = 0; i < BP_NLINE; i++) {
    p[i] = sample;

3. Send the data to the DSP:

bp_send_from_buf(DSP_TX_BUF_0, PORT_DSP, 1, 0, BP_LAST_LINE);

4. Wait until transaction is done or an error occured

while((buffer_pool_status->status & (BPS_DONE(DSP_TX_BUF_0) | BPS_ERROR(DSP_TX_BUF_0))) == 0)

5. Clear the status flags and redo the whole procedure

// goto 1.


Unfortunately this doesn't work for me like expected. I tried it in several variations and listened with another usrp2 for a signal but nothing happens. I think I understood something wrong and forgot something but it's hard for me to see the problem.

So maybe you guys can help me out with that.

Thanks in advance!


reply via email to

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