[USRP-users] ERROR_CODE_ALIGNMENT (Multi-channel alignment failed) for 2 channel receiving with USRP2 and BasicRx
craigtong04 at gmail.com
Tue Oct 28 12:04:26 EDT 2014
I'm not sure if my original email made the list I didn't see it come
back as a list message. If not please see below.
A further update on that
Investigating the rx_multi_samples is also showing some quite peculiar
When I put a tone into RX-A on the daughterboard and terminate RX-B:
Printing the samples for following
rx_multi_samples --subdev="A:A A:B" --channels="0,1"
gives me as expected: varying large values (for an 8 dBm tone) in
channel-0 and 0s and +/-1s in channel-1
but if I swap the signal to RX-B and terminate RX-A and run the same program
I get values up to ~ +/-4 in channel-0 and values up to ~ +/-34 in channel 1
Is this correct? I would expect just swapped channels from the first output
Then if I now swap the subdev command to:
rx_multi_samples --subdev="A:B A:A" --channels="0,1"
I get as in the first scenario: varying large values (for 8 dBm tone) in
channel-0 and 0s and +/-1s in channel 1.
And swapping the RF inputs back again for this subdev gives the same as
the second and unexpected output values.
I get the feeling I am totally missing something here. Either I'm
misunderstanding how this is supposed to work or theres a problem.
I'm running UHD 3.7.2 installed out of Gentoo portage. x64 build. I
updated the USRP2's firmware also from 3.7.2 downloaded straight from
the website. And I see the same behavior in a 32 bit MSVC2010 Windows build.
Again any input would be much appreciated.
On 10/27/14 11:04, Craig Tong wrote:
> I'm wondering if anyone can give me some pointers.
> I'm trying to get 2 separate channels out of a USRP2 using the
> respective RF connectors on the BasicRx daughter board.
> Currently its returning ERROR_CODE_ALIGNMENT (Multi-channel alignment
> failed) and I'm not getting any data out.
> The relevant lines of code are:
> m_pUSRP->set_rx_subdev_spec(uhd::usrp::subdev_spec_t("A:A A:B"));
> uhd::stream_args_t oStreamArgs("sc16", "sc16"); //Use 16 bit complex
> std::vector<size_t> vChannelsNumbers;
> oStreamArgs.channels = vChannelsNumbers;
> m_pUSRPRxStreamer = m_pUSRP->get_rx_stream(oStreamArgs);
> Then I'm also setting and checking the RTC on the USRP but I don't
> imagine this changes anything.
> boost::posix_time::ptime oEpoch(boost::gregorian::date(1970,1,1));
> boost::posix_time::time_duration oDurationSinceEpoc =
> boost::posix_time::microsec_clock::universal_time() - oEpoch;
> uhd::time_spec_t oTimeNow(time_t(oDurationSinceEpoc.total_seconds()),
> uhd::time_spec_t oUSRPTime = m_pUSRP->get_time_now(); //Confirm time set
> And the stream command
> oStreamCmd.stream_now = true;
> The recv function doesn't return any data. If I change the
> vChannelNumber vector to contain only 0 or 1 then the code work but
> only the first of the 2 buffers passed to recv(...) is filled as is to
> be expected. The data rate into the PC is also half is this case so is
> seems like data is being streamed in the 2 channel case its just
> somehow misaligned (by timestamp?) according the UHD library.
> If anyone has any ideas I would greatly appreciate it.
> Kind regards
> Craig Tong
> Radar Remote Sensing Group
> Department of Electrical Engineering
> University of Cape Town
Radar Remote Sensing Group
Department of Electrical Engineering
University of Cape Town
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the USRP-users