Saturday, February 15, 2014

Software Updates

Spent a significant amount of time cleaning up and extending several tools that I've been relying on (non target or Beagle Bone Black).  Consolidated 3 java applications used on PC with BBB to evaluate and configure the boards.

The first is a simple signal generator.  This uses the WB(workbench) server on the BBB to configure the ADF4351's to generate an arbitrary sinusoid up to about 1500MHz.  It uses the standard B to C to A board configuration (same as SDR configuration).  It relies on the unbalanced first LO to produce a small signal value output.  The output level can be varied by locating the first and second LO at different points along the C board SAW filter roll off.  Below is a screen shot of the application (yes, I'm one of * those * people - exhibiting nostalgia for red 7 segment LED displays).  The two LO settings are shown for reference.  The AUX outputs for each board can be enabled/disabled as well as placing both synthesizers in a power down state to evaluate spurious outputs (i.e. the board clocks are all running yet).
The second application is a simple ADC monitoring tool.  This accepts UDP packets from the BBB and plots a power spectra estimate and time series. (I've found the time domain view to be valuable in select cases to figure out what exactly is going on).  Below is a screen shot of that application with the ADF4351's in a power down state and no inputs to the B board RF input.
The above ADC snapshot may not seem interesting but it provides a good baseline with respect to spurious responses, bias, absolute levels, and BBB based digital noise.  The vertical scale is expressed in dB relative to a full scale 16 bit value.  The AD7276 values are used directly (12 bits of signal, 0's in upper two and lower two bits).  This means that a full scale ADC signal is 0..16k or -12dB in a double sided FFT spectra accounting for windowing coherent gain.  The BBB sofware includes a PRU emulation routine that can inject digital data of various signal and noise levels and simple single tone FM and AM modulation.  This was used to test and verify the java ADC application levels.

The basic graph/plot software includes a single memory and an envelope history.  The screen capture below shows the signal generator output at 10.970MHz. (recall that the ADC is operating at 1MSPS so its sub-sampling the IF which means that the right of the X axis is 10.50MHz while the left is 11.0MHz)  Moving to the "lower" end of the ADC window allows the time series to clearly be seen.  The markers are tabulated on the right (X then Y below it).

One of the most useful aspects of the application is that it can export any XY graph to a file as a picture (you don't need to take a screen shot - the PNG version is much smaller) or a CSV file for later use.  The PNG below was exported from the spectrum plot.  In this capture the input is at 10.75MHz (the ADF4351's are configured to use a 25MHz Fref and are in fractional integer mode with a modulus of 4k so the frequencies may be a few kHz from requested value - the LO's in the signal generator application show the exact frequencies output).   The gold line is a memory capture without an antenna attached.  The blue line is with the antenna attached and the green is the running envelope of the input.

The 3rd software tool is a spectral investigation tool but neither the java or BBB software is complete enough to use for real measurements and evaluation. So now I'm back to a good spot with tool integration and testing and can return to accounting for the for spikes and check the expected noise levels.

No comments:

Post a Comment