Difference between revisions of "Multi-Receiver"

From HPSDRwiki
Jump to: navigation, search
(Multiple Mercury boards)
(Multiple Mercury boards)
 
(33 intermediate revisions by the same user not shown)
Line 10: Line 10:
 
==Multiple Receivers on a single Mercury==
 
==Multiple Receivers on a single Mercury==
  
This options is supported by [[KISS Konsole]] on Windows and [[ghpsdr3]] on Linux and (Windows under development).
+
This option is supported by current versions of OpenHPSDR PowerSDR on Windows, cuSDR on Windows and Linux, KISS Konsole on Windows, and ghpsdr3 on Linux.
 
+
This option is only supported by the Ozy 1.8 and Mercury 3.0 verilog code.
+
  
 
==Multiple Mercury boards==
 
==Multiple Mercury boards==
  
This option is supported by PowerSDR v2.2.3.dual_Mercury1 on Windows.  
+
(Last updated 13FEB2014)
 +
 +
This option is supported by current versions of OpenHPSDR PowerSDR and cuSDR.  
  
 
'''Dual Mercury board setups (Windows):'''   
 
'''Dual Mercury board setups (Windows):'''   
Diversity operation using two coherent Mercury receivers is implemented in PowerSDR v2.2.3.dual_Mercury1 (K5SO 25SEP2011).  This program is a modification of PSDR v2.2.3 and uses a "steering" display to adjust relative phase and/or gain of the non-reference IQ data stream to achieve diversity operation, selective nulling, or antenna beam steering.  Polarization diversity or spatial diversity are possible, depending upon what inputs are provided to the two Mercury boards.  Mercury firmware v6.7 must be used with PowerSDR v2.2.3.dual_Mercury1, the firmware and PC program are available for download at http://k5so.com.  Required firmware:  Metis v6.7, Mercury v6.7, and Penelope v1.5; Ozy v6.7 will be loaded automatically on startup of PSDR after a fresh power up of Atlas, if Ozy or Magister is present instead of Metis.
+
Diversity operation using two Mercury receiver boards is implemented in Open HPSDR PowerSDR.  Polarization diversity or spatial diversity are possible, depending upon what inputs are provided to the two Mercury boards.
 
+
The second Mercury board can remain on the Atlas bus while running the other programs with no ill effects, the second Mercury board is simply ignored by single-Mercury programs.
+
  
 
==Required Hardware Configurations To Use Multiple Mercury Boards==
 
==Required Hardware Configurations To Use Multiple Mercury Boards==
  
Each Mercury board must have jumpers in place to specify an address for the board.  Each board will have a different jumper-selected address.  The address is specified by placing jumpers on J5 (GPIO pins) on the Mercury board.  Looking at the Mercury board with the Atlas bus connector down, the GPIO pins on J5 are arranged such that the lowest pair of pins (closest to F1) are GPIO pins 1,0.  Without a jumper, the logic value for the GPIO pin pair is "0", with a jumper across the pins the logic value is "1".  The Mercury board address is specified as a 3-bit address according to the jumpers placed on J5.  The GPIO pins on J5 are assigned as follows:  
+
(last updated 13FEB2014)
 +
 
 +
Each Mercury board must have jumpers in place to specify a unique address for the board and a jumper in place to specify that the board is being used simultaneously with other Mercury boards.  Each board will have a different jumper-selected address.  The address is specified by placing jumpers on J5 (GPIO pins) on the Mercury board.  Looking at the Mercury board with the Atlas bus connector down, the GPIO pins on J5 are arranged such that the lowest pair of pins (closest to F1) are GPIO pins 1,0.  Without a jumper, the logic value for the GPIO pin pair is "0", with a jumper across the pins the logic value is "1".  The Mercury board address is specified as a 3-bit address according to the jumpers placed on J5.  The GPIO pins on J5 are assigned as follows:  
  
 
GPIO pairs:
 
GPIO pairs:
Line 33: Line 33:
 
7,6 = Mercury ID bit 1,
 
7,6 = Mercury ID bit 1,
  
5,4 = Mercury ID bit 0,
+
5,4 = Mercury ID bit 0,  
  
 +
3,2 = MULTIPLE_MERC
  
1)  The address of the first Mercury board should be "000", selected by having no jumpers on GPIO pins 9-8, 7-6, or 5-4.  The address of the second Mercury board should be "001", selected by having a jumper on GPIO pins 5-4; and so on for any additional Mercury boards present. 
 
  
Therefore, for dual Mercury boards, the 3,2 GPIO jumper pair should be on both Mercury cards, the first Mercury board is set for Merc_ID = 000 (no jumpers on pins 9-8, 7-6, or 5-4) and the 2nd Mercury card is set for Merc_ID = 001 (a jumper across the 5,4 pair).
+
All Mercury boards used in multiple-Mercury-board operations must have the MULTIPLE_MERC jumper (GPIO 3,2) in place.
  
2) Configuring the 122.88MHz clocks on the Mercury boards:
+
The address of the first Mercury board should be "000", selected by having no jumpers on GPIO pins 9-8, 7-6, or 5-4.  The address of the second Mercury board should be "001", selected by having a jumper on GPIO pins 5-4; and so on for any additional Mercury boards present.  Photos of Mercury boards addressed for logical 0 (Merc1) and logical 1 (Merc2) are shown on the K5SO download site referenced above.
  
2a) place a jumper on the CLKSEL "I" pins (lower two pins of the three CLKSEL pins) on one of the Mercury boards (this will be the "master" Mercury board), no such jumper is placed on the equivalent pins of the slave Mercury board,
+
Therefore, for dual Mercury boards, the 3,2 GPIO jumper pair should be on both Mercury cards, the first Mercury board is set for Merc_ID = 000 (no jumpers on pins 9-8, 7-6, or 5-4) and the 2nd Mercury card is set for Merc_ID = 001 (a jumper across the 5,4 pair).
 
+
2b) place a jumper on JP9 (enabling the 122.88MHz oscillator) on the master Mercury board but not on the (other) "slave" Mercury board
+
 
+
2c) place a jumper from the Atlas C16 pin to J8 (Aux Clk input) pin nearest the FPGA on both Mercury boards
+
 
+
2d) connect, with a twisted wire pair, pin 2 of JP1 (CLK SELECT) and a ground connection of the master Mercury board to pin 2 of JP1 (CLK SELECT) and a ground connection of the slave Mercury board, see photos at http://www.k5so.com/Clock%20connections.html.
+
 
+
2e) in PowerSDR, select Setup>Excalibur for the 10 MHz clock source and Mercury as the 122.88 MHz clock source.  For three Mercury board operations, parallel the 122.88 MHz clock signal from Mercury 2 to Mercury 3 using a twisted wire pair as was done from Mercury 1 to Mercury 2 for dual Mercury operations and disable the on-board 10 MHz and 122.88 MHz oscillators on Mercury 3. 
+
 
+
Now both (or all three, if using triple Mercury boards) Mercury boards will be operating from the single 122.88 MHz oscillator on the master Mercury board.  The twisted-wire connection between the Mercury boards is required to achieve long-term coherent operation of the Mercury boards.
+
 
+
3) 10 MHz clock on Mercury:  The 10MHz clock for the Mercury boards should be taken from Excalibur (or whatever external 10MHz source you use) via the Atlas C16 pin, with Mercury jumpered as noted in 3d above.
+
  
 
==See also==
 
==See also==

Latest revision as of 13:43, 13 February 2014

Example of the connection points on the mercury board (Click for a larger image)

The openHPSDR receiver can be run in several configurations. Stand-alone, multiple receivers on a single MERCURY (one common antenna), and two or more MERCURY boards plugged into a single ATLAS (this allows two or more antennas). Each of these configurations require different hardware and software support but all have been successfully accomplished using MERCURY boards.

Stand-Alone

The options is supported by all software and all versions of the verilog code.

Current verilog code is Mercury 2.9 and Ozy 1.7

Multiple Receivers on a single Mercury

This option is supported by current versions of OpenHPSDR PowerSDR on Windows, cuSDR on Windows and Linux, KISS Konsole on Windows, and ghpsdr3 on Linux.

Multiple Mercury boards

(Last updated 13FEB2014)

This option is supported by current versions of OpenHPSDR PowerSDR and cuSDR.

Dual Mercury board setups (Windows): Diversity operation using two Mercury receiver boards is implemented in Open HPSDR PowerSDR. Polarization diversity or spatial diversity are possible, depending upon what inputs are provided to the two Mercury boards.

Required Hardware Configurations To Use Multiple Mercury Boards

(last updated 13FEB2014)

Each Mercury board must have jumpers in place to specify a unique address for the board and a jumper in place to specify that the board is being used simultaneously with other Mercury boards. Each board will have a different jumper-selected address. The address is specified by placing jumpers on J5 (GPIO pins) on the Mercury board. Looking at the Mercury board with the Atlas bus connector down, the GPIO pins on J5 are arranged such that the lowest pair of pins (closest to F1) are GPIO pins 1,0. Without a jumper, the logic value for the GPIO pin pair is "0", with a jumper across the pins the logic value is "1". The Mercury board address is specified as a 3-bit address according to the jumpers placed on J5. The GPIO pins on J5 are assigned as follows:

GPIO pairs:

9,8 = Mercury ID bit 2,

7,6 = Mercury ID bit 1,

5,4 = Mercury ID bit 0,

3,2 = MULTIPLE_MERC


All Mercury boards used in multiple-Mercury-board operations must have the MULTIPLE_MERC jumper (GPIO 3,2) in place.

The address of the first Mercury board should be "000", selected by having no jumpers on GPIO pins 9-8, 7-6, or 5-4. The address of the second Mercury board should be "001", selected by having a jumper on GPIO pins 5-4; and so on for any additional Mercury boards present. Photos of Mercury boards addressed for logical 0 (Merc1) and logical 1 (Merc2) are shown on the K5SO download site referenced above.

Therefore, for dual Mercury boards, the 3,2 GPIO jumper pair should be on both Mercury cards, the first Mercury board is set for Merc_ID = 000 (no jumpers on pins 9-8, 7-6, or 5-4) and the 2nd Mercury card is set for Merc_ID = 001 (a jumper across the 5,4 pair).

See also