External RF Frontend Driver Testing Procedures

Detailed procedures to verify the correct operation of the external RF frontend are described here. Tests will be conducted in this branch.

Comms board initial setup

  • Take photos with EMI shield
  • Remove EMI shield
  • Take photos without shield
  • Place shield and screws in a bag and catalog to inventree
  • Setup the eqm as usual (connect umbilical to adapter board, power supply connection and continuity tests, etc...).
  • Plug the MMCX-SMA cables to both uhf and sband (will be refered as uhf cable and sband cable from now on.
  • Connect only the sband cable to the attenuator. Connect the other end of the attenuator to the spectrum analyzer.
  • Take a photo of the setup
  • Comment out every rf related task, except the RfDebuggingTask. Select the LO_CARRIER_SBAND process and ensure the frequencies are correct (at86rf215config.hpp). Also ensure that there are no externalFrontendEnable() commands in RfDebuggingTask. All the frontends are by default disabled.
  • Flash and ensure we get logs. Record logs from current sensor: bus voltage, shunt current, power (for UHF and SBAND).

Sband Tx Frontend

  • Set spectrum analyzer to 2.425 GHz central frequency
  • With the SBAND frontend closed, we should not be seeing a carrier
  • Enable frontend with ExternalFrontend::externalFrontendUtils.enableSbandTxFrontend(); and re-flash.
  • Power up test: Measure the voltage in TP907 it should be 5V
  • We should be seeing a carrier. Take a photo of the spectrum and record the power. Also record current sensor readings and temp sensor readings for SBAND amp

Note: It is not possible to test the low pass filter, since the transceiver cannot generate a carrier above 2.483 MHz

UHF Tx Frontend

  • Power down eqm. Remove the sband cable completely, connect the uhf cable in the attenuator. Power up eqm
  • Set spectrum analyzer to 436.5 MHz central frequency
  • With the UHF frontend closed, we should not be seeing a carrier
  • Enable frontend with ExternalFrontend::externalFrontendUtils.enableUHFTxFrontend();, select the LO_CARRIER_UHF process and re-flash.
  • We should be seeing a carrier. Take a photo of the spectrum and record the power. Also record current sensor readings and temp sensor readings for UHF amp
  • To test the Low Pass Filter, change the carrier frequency to 800 MHz. We should be seeing more than 20dB power drop.
  • Close the spectrum analyzer. Power down eqm and connect uhf cable. Then connect to the signal generator Note: We cannot test the 3dB cutoff point (theoreticaly around 600 MHz) since the transceiver cannot generate carriers in this frequency

UHF Rx Only Amplfifier test

  • Open signal generator, and set a 436.5MHz carrier. IMPORTANT: set the power to -20dBm and do not exceed it, just to be on safe side. Dont press the RF Output button yet
  • Oscilloscope Channel 1 probe to TP1002 (input signal), and Channel 2 probe to TP1005 (agc control signal). IMPORTANT: set 500 mV/div on Channel 2, the signal can reach up to 2.4V
  • Take a photo of the setup.
  • Set the process to POWER_MEASUREMENT_UHF, and the frequency to 436.5 MHz. Power up eqm, re-flash.
  • Ensure Measured power... logs are displayed periodically
  • We should not be seeing a carrier. Record current sensor readings and power measurements.
  • Enable frontend with ExternalFrontend::externalFrontendUtils.enableUhfRxFrontend(false, 0.9);. This way, the agc is switched off and the amplifier's gain is close to 0dB.
  • We should be seeing the carrier in Channel 1 (oscilloscope: press autoscale and set time scale to 10-20ns/div). Record current sensor readings and signal power to Channel 1 (you can use math mode -> FFT to see the power in dBm easily)
  • Measure voltage in TP1003, to ensure the DAC write is correct (needs to be 0.9V)
  • Compare Channel 1 to power measurement logs. They need to be close (since we have 0 dB gain).
  • Bandpass filter test: Change frequencies to 415 MHz and 460 MHz. The power should be significantly reduced
  • Amplifier test: Revert the frequency back to 436.5MHz and increase the gain to 10dB (ExternalFrontend::externalFrontendUtils.enableUhfRxFrontend(false, 1.1);). Record the power measurent logs and measure TP1003 again.

UHF Rx Frontend AGC test

The purpose of the AGC is to dynamically control the gain of the amplifier, such that the envelope of the signal that reaches the transceiver is constant (essentially, the output power will be constant). This is beneficial for phase modulations, where the envelope is not supposed to change, thus any deviation is caused by noise and therefore, unwanted. Upon detecting a preamble by the FPGA, we need to "freeze" it (in practise, switch it out and set the gain to whatever it was at the moment of the preamble reception). The figure below (ADL530 datasheet) shows how the AGC control signal changes to achieve a constant envelope:

example

A 436.5MHz AM modulated signal with a 20KHz sine tone will be used for testing.

  • Signal generator setup: Press the AM button and use the shown settings. Then, press the AM (On/Off) button (next to RF (On/Off)) Ensure the signal on Channel 1 looks like the picture below. You need to press autoscale, 10us/s timescale, and then on the Channel 1 set 50 0hm impedance and BW limit. The last one is necessary to see the envelope clearly, and might have to be pressed again if the display starts showing nonsense.

AM-settings am-wave

  • AGC temperature test: In RfDebuggingTask set getTemperatureADC to true, in order to get periodic temperature measurements and use: ExternalFrontend::externalFrontendUtils.enableUhfRxFrontend(true, 2.1);. Re-flash
  • Record agc temperature log. If the agc is working, we should be seeing a higher than room temperature value. Also record current sensor logs.
  • AGC functionality test: Inspect Channel 1 and Channel 2 signals. They need to look like the example figure 39
  • Take a photo
  • AGC on/ off: periodically toggle the AGC by enabling toggleADC in RfDebuggingTask
  • Ensure the control signal in Channel 2 becomes constant when AGC is frozen and that any transient phenomenon is minimal in amplitude and very short (significantly shorter than a bit period,for example if the bit rate is 15KHz, the period is 66.6 us).
  • Take a photo

Note: While using the AGC, the accepted setpoint voltages range from 0.5V to 2.1V. The relation ship between the VGA's output power (in dBm) and the setpoint voltage should in theory be linear, as was shown in LSF's measurements (see target level section). It is certain that a higher setpoint voltage reduces the output power, but we need to create a transfer characteristic at some point, by taking a lot of measurements.

Frontend current limiters

Important: The eqm heats up a lot if a lot of frontends are open, so the test should be repeated for every frontend separately

  • Open the frontend
  • Check the frontend alert flags (should be true). For UHF-Tx, SBAND-Tx, TP1009 and TP908 should also be checked with a multimeter (FLAGB pins). They are active low, so we are expecting high.
  • Cut the RF power supply (pin P5V_RF_EN set to low), to simulate an undervoltage fault
  • Check the flags again (they should be true). FLAGB pins should be low

Add a logbook entry.