Friday, October 16, 2015

An AD8307 power meter

When I started on the SPECAN spectrum analyzer, I purchased several AD8307 log detectors.
I found several slightly different designs for power meters, but most are basically the same with different output circuitry.  I decided to stay with the circuit used by Farhan in his Sweeperino and Specan.  Only change I made was to use 33uf molded RF chokes instead of resistors to feed the +5v and bring the  output from the detector to the outside of the shielded compartment.
After deciding on that I took a look at the Arduino software used to read the log detector and convert to dB.  There are several different methods used, some very simple and others that require rather complicated calibration schemes.  

The best way  to test these would be to build a simple power meter.  I had the layout for the power meter part of the SPECAM and the Arduino and display that I had done for the Dummy Load Wattmeter.   Removing the dummy load portion of that board I was able to import the AD8307 power meter circuitry with only a little change  in the original layout.  For the Arduino Nano and Pro-Mini projects I use low profile IC sockets.  Since I want to move to more surface mount designs.  I changed the board layout to have solder pads for the Arduino and display sockets instead of using through hole. 

I etched up a double sided board, with the bottom being solid except for an isoleted block under the AD8307 circuitry.  I had a little problem and the board was over etched, with a lot of pin holes in the ground plane area on both sides.  I flowed a layer of solder over the board to cover some of them.  After populating the board, I cut a .25" wide strip of .020" circuit board material to use as a shield around the log detector circuitry.


I was able to use much of the software from the DL Wattmeter.
I tried several of the chunks of code for the AD8307 interface, and finally went back to Farhan's basic code.  It is one of the simplest and gives results that will be more than adequate for most amateur use.  It does not have a calibration routine, so a cal value has to  be put into the source code.  After only a couple tries comparing the readings with that of the wattmeter function in the Chinese SNA I found a cal value that gave readings within 1 dB of the SNA.

I wrote the software to include the numerical value from the log detector and also have a analog bar display.   I find that a bar display is often easier to use when aligning equipment.  I also added a little code to give another bar showing the peak value measured.  By implementing a counter in the main loop I was able to have the peak reset to the current level after 10 seconds from the last highest peak reading.      Next to put it in another Altoids tin. 

Looking around for a way to check the calibration, I found a simple RF power reference circuit on the web site of W1GHZ.  I had room on the same board as the power meter, so added that layout.  Will update after I finish building and test it. 

Added link to dropbox folder containing the Arduino Sketch, Eagle cad file ,toner transfer image, and parts layout for boards.  

https://www.dropbox.com/sh/ooubfjxdvjao8by/AABe6N-vTZjaMSgUAG0jeGSca?dl=0



1 comment:

  1. Hi, I am Helcio from Rio de Janeiro.
    Some time ago I did similar digital RF meter using AD8307 and Microchip PIC.
    Today, to implement frequency response till VHF on the AD8307, I used the same network found on the web ( 51R + 470R //15p + L) , and found some inconsistent measuring with this adaptation with lower level (5MHz for instance), with error around 1.5dB. Without the network, measurement is fine, with 0.5dB error from +17dBm till -60dBm.
    I think this network cause an big mismatch in lower lower level.
    My question is if you did some check with lower level, for instance,
    -10, -20, -30, -40dBm input level?
    Thank you.

    ReplyDelete