[hpsdr] Phase synchronization of multiple Mercury boards at startup

Joe Martin K5SO k5so at valornet.com
Fri Sep 23 10:43:05 PDT 2011


All,

I have successfully implemented the approach suggested below by using  
Ozy and dual Mercury boards as a first try since the Ozy code already  
has the Janus reset function in it.  Modifying the Mercury FPGA code  
to look at the Atlas C2 line and use that line to hold the DSP  
functions in reset until released by Ozy seems to have cured the issue  
of random phase startup between multiple Mercury boards.   It's not  
completely perfect but it's very, very, very close!  After  
establishing a greater than 70 dB null on single signal input to both  
Mercury receivers then power cycling the Atlas bus numerous times the  
system comes back up with the null in place to within a few dB or so  
every time.  Much, much better than before when it would come up with  
no null at all without completely re-adjusting phase after power  
cycling Atlas.

I'll now modify the Metis firmware to do the same.  The mod is  
straightforward and, to keep firmware versions at a minimum, I think  
this addition should be included in the general Metis firmware  
releases too since this synchronization does not affect single Merc  
operation (of course), occurs only at startup after a power down of  
Atlas, and is totally invisible and undetectable by the user.

This will make the physical direction calibration in my steering  
programs actually meaningful regardless of whether the system has been  
shut down many times since the calibration was performed.  Wonderful!

That cures the issue that John N8UR kindly brought up yesterday.

Thanks for that great bit of insight (and memory, hihi!), Phil.

73,  Joe K5SO


On Sep 22, 2011, at 11:09 PM, Phil Harman wrote:

> Hi Joe,
>
> Just thinking about the issue of the phase relationships between each
> Mercury board being different each time you power cycle.
>
> I think we may be able to fix this.
>
> At the moment each FPGA decides when to send data to the Atlas bus  
> once it
> comes out of reset.  This will depend on how long it takes for the  
> FPGA to
> load from the flash etc.
>
> If you look on the Atlas bus with a 'scope then I would expect the  
> 'data
> available' signal from each Mercury to vary in time with respect to  
> the
> others each power cycle.
>
> What we could do is send a master reset to all Mercury boards via the
> Atlas bus so that all the DSP code in each FPGA starts at the same  
> time.
>
> Perhaps worth a look if you have time.  There is already a reset pin  
> on
> the Atlas bus (C2) that is used by Janus.
>
> 73 Phil...VK6APH
>


 1316799785.0


More information about the Hpsdr mailing list