[hpsdr] USB-protocol 1.27

Phil Harman phil at pharman.org
Tue Jan 25 21:00:15 PST 2011


Hi Joe,

Thanks for your comments.  I'm not quite sure that I understand your concern 
regarding having multiple receivers in one Mercury board but not using them 
all.
As long as the code will fit in the FPGA, and it meets timing requirements, 
then the unused code has no effect. Well I guess the additional, unused 
receivers, will draw more power than a single receiver.

>From the work that I've done on Metis there is a way we can now load 
different code into the FPGA at power on.  By placing a jumper on the Metis 
board we can  either run the Normal or Boot Loader code.  A combined image 
is held in the flash memory on Metis and the jumper really selects the 
starting address to load from.

We could potentially do the same with Mercury, have jumper(s) select one, 
two or three receivers etc. at power on.

The advantage our architecture gives us (e.g. Atlas bus, individual boards 
for each function etc ) is tremendous flexibility. Making changes to 
accommodate new ideas, fix bugs etc is just what we thrive on!

All of the protocols are set in jelly - if folks can see an improvement, or 
want a new feature, then we will do our best to accommodate them. You are 
doing pioneering work with multiple receivers, which we all appreciate,  and 
I trust you don't feel I am inhibiting you in any way.

73 Phil....VK6APH


----- Original Message ----- 
From: "Joe Martin K5SO" <k5so at valornet.com>
To: <hpsdr at lists.openhpsdr.org>
Sent: Tuesday, January 25, 2011 11:28 PM
Subject: Re: [hpsdr] USB-protocol 1.27


> ***** High Performance Software Defined Radio Discussion List *****
>
> Hi Alfred,
>
> As I commented to you in an off-reflector message earlier, in the  present 
> FPGA code there is no distinction made as to whether the  multiple 
> receivers exist on a single Mercury board or on multiple  Mercury boards. 
> This is an issue that I brought to Phil's attention  recently, also in a 
> private email, .
>
> The short answer to your question is that in my Mercury v6.3 FPGA code 
> two receivers are implemented in both receiver boards but only one 
> receiver is actually used in each board.  So the interleaved byte data 
> stream over the USB port from Ozy (Metis) to the PC consists of
>
> sync, sync, sync, C1, C2, C3, C4, C5, I1c, I1b, I1a, Q1c, Q1b, Q1a,  I2c, 
> I2b, I2a, Q2c, Q2b, Q2c, mic-b, mica, I1c, I1b, I1a, etc. to fill  a 
> 512-byte block,
>
> where sync= 0x7f,
>
> C1-C5 are the command and control bytes,
>
> I1c-I1a is the three byte (24-bit) I value from the first receiver on 
> Mercury 1,
>
> Q1c-Q1a is the three-byte Q value from the first receiver on Mercury 1,
>
> I2c-I2a is the three-byte (24-bit) I value from the first receiver on 
> Mercury 2,
>
> Q2c-Q2a is the three byte (24-bit) Q value from the first receiver on 
> Mercury 2,
>
> mic-b and mic-a are the two-byte transmit audio (16-bit) value from 
> Penelope to the PC.
>
> IQ info from the second receivers on both Mercury boards are not used.
>
> This current situation, of course, is very inefficient in terms of  FPGA 
> coding in the Mercury boards since the second receiver logic on  each 
> Mercury board is completely unused.  The situation becomes even  worse 
> when three receivers are implemented, as I'm presently doing  with three 
> Mercury boards for three-antenna diversity operation.   Implementing three 
> receivers with three Mercury boards results in  coding nine total 
> receivers with two receivers on each Mercury board  not being used at all. 
> FYI, I am working on a scheme to remedy this  current situation but 
> perhaps the expert Verilog coders will address  the issue formally soon to 
> provide an "official" version that will be  more acceptable for the 
> community, now that the issue is becoming more  and more relevant to 
> folks.
>
> In defense of the original coding, the initial Verilog programmers did 
> not have multiple Mercury boards to work with and to test with when 
> writing the original Verilog code and some of the issues involved are 
> quite subtle (e.g., the synchronization of the IQ streams to each  other, 
> etc) and don't really show up until multiple Mercury boards are  actually 
> used.  The original code is a fine first effort, to be sure,  even though 
> it contains some unforeseen problems.  The existing  Verilog code is an 
> amazing effort with respect to implementing  multiple receivers,  in my 
> view, and I greatly appreciate the work  done by them!   Their next 
> iteration will be even better, I'm sure.
>
> 73,  Joe K5SO
>
>
>
>
> _______________________________________________
> HPSDR Discussion List
> To post msg: hpsdr at openhpsdr.org
> Subscription help: 
> http://lists.openhpsdr.org/listinfo.cgi/hpsdr-openhpsdr.org
> HPSDR web page: http://openhpsdr.org
> Archives: http://lists.openhpsdr.org/pipermail/hpsdr-openhpsdr.org/
>
>
>
> -----
> No virus found in this message.
> Checked by AVG - www.avg.com
> Version: 10.0.1202 / Virus Database: 1435/3402 - Release Date: 01/25/11
> 


 1296018015.0


More information about the Hpsdr mailing list