Tile Beamformer Test
Purpose
This test verifies the operation of the tile beamformer firmware, including calibration and beam pointing. The tile beamformer is the firmware component that forms beams by summing 16 antennas for given course frequency channels. Calibration is used to apply a weighting to each antenna, polarisation and course frequency channel. Beam pointing is achieved by adding a delay and delay rate component for each antenna in a given beam. Single antenna beams are captured, then calibrated to a selected reference antenna and captured again. Once calibrated, full tile beams of 16 antennas are captured and verified to be 16 times the reference antenna. Beam pointing is verified by adding a random delay to each antenna, then pointing the antenna back to a reference point and capturing again. In order to sample the beam data, the software requests the LMC data type “beam data”, and captures this using the DAQ receiver.
NOTE: This test only operates on the first TPM in a station.
NOTE: For data acquisition to function correctly, the network interfaces on the TPM must be working, as well as the link to the LMC destination. The LMC destination must be configured to route traffic to the server running the tests. For all tests the simplest option is for the CSP and LMC destinations to be the same network interface, routing all traffic to the server running the tests.
Methodology
Setup beamformer regions based on the start_frequency (default 50 MHz) and nof_channels_per_beam (default 8) arguments. All beams are setup (8 or 48 depending on firmware support) using the same start frequency and number of channels, so each beam uses the same frequency channels.
DAQ receiver is configured and initialised with the required UDP port and network interface.
All JESD (ADC) channels are disabled ready to use the internal test generator.
The test starts at the first specified frequency channel. This corresponds to frequency channel set in start_frequency.
The frequency of the internal tone generator is calculated to be the centre frequency of the given frequency channel.
Random time delays for each antenna and polarisation are applied to the test generator.
A pseudo-random reference antenna (0-15) and polarisation (0-1) is selected for the test.
All calibration coefficients are reset to a gain of 1 and all pointing delays are reset to 0.
All antennas are disabled except the first antenna, and an LMC snapshot of beam data is requested from the TPM. This is repeated and stored for 16 single antenna beams, each time disabling all other antennas.
For each antenna and polarisation, a calibration coefficient is calculated to scale the captured beam to the selected reference beam identified in step 7. These calibration coefficients are applied to the firmware.
The process in step 9 is repeated again and this time all beams should match the reference beam.
The process in step 9 is repeated again but with all antennas enabled. As the antennas are summed to form the beams, both polarisations should now be 16 times the reference beam.
Next we begin verifying beam pointing. The delays in the test generator are reset to zero.
An unpointed beam of all 16 antennas is captured by requesting an LMC snapshot of beam data from the TPM.
Random time delays for each antenna and polarisation are again applied to the test generator. Step 14 is repeated to capture the beam produced with these random delays applied.
The beams to be tested are now selected based on the argument
nof_beams_tested. The beams to be tested are selected as follows: the first beam tested is always beam 0, and if more than one beam is being tested, the second is always beam N-1 (the last beam). Any additional beams beyond these two are chosen randomly, with no repeats, until the total reachesnof_beams_tested.Pointing delays are calculated to compensate for the random delays and loaded into the firmware. Step 14 is repeated a final time to verify the random delays have been compensated for and the pointed beam is now approximately the same as the unpointed beam captured in step 14. To ensure beam independence, if the beam is not the one under test the pointing delay is set to zero and checked against the unpointed beam captured in step 14. This is then repeated for all different beams under test, which were selected in step 16.
This entire process is repeated (starting again at step 5.) for more course frequency channels up to the number of specified frequency channels. This defaults to channel 8, and the start frequency if 50 MHz so by default this process will be executed for the frequency channels 64-71.