12meter IF/LO control

jul23

Some current base locations:

links:



Other shutdown pages:

Intro

     The 12meter IF/LO is used to transport the 12meter RF signal from the dewar down to any backends used. This includes filtering,mixing, attenuating the rf signal.

The user interface to the p12mProg is done through tcl functions/routines written at AO.


if2Prog - control the downstairs if/lo


Name
Purpose
  Notes
if2Prog
Control downstairs
 if/lo
  • source: aosBase/src/vwconvert/if2/if2Prog.c
  • executable:aosBase/src/vwconvert/if2/if2Prog
  • makefile : aosBase/src/vwconvert/if2/Makefile
  • cpu: runs on galfas2  as a daemon
  • started by: /etc/rc.local on galfas2
  • Listens on a socket for ascii commands. port 1426 , tcp
    • added /etc/services as if2prog (displaces sais service)
  • Controls gpib devices in downstairs if/lo via gpib to ethernet switch.
    • hp3488- ttl digital outputs to control switches. 2 devices used.
      • also controls cal multiplexor that maps multiple inputs into  the line that goes up to turn the cal on,off.
    • hp8648- synthesizers to down  convert from 1.5 Ghz to 3.25 Mhz (8 in total)
    • hp442  - power meter in if/lo racks
    • Kronhite filters:  (not used by 12 meter)
    • --> this program does not control the udc or the rf filterbank.
  • multicasts if2ProgState whenever a change is requested, or once a second (whichever is less).
  • Can support up to 5 simultaneous connections.
  • Logs messages via syslog to /var/messages on galfas2
  • Tcl datataking program on galfas2 (startp12m) is normally the source of requests.
key,values

ASCII requests, queries are sent to if2Prog via sockets.
Configuration of devices is done via a setup request using keywords values.

An example of keyword,values read back from the if2Prog

gain 3 0
inpfrq 1500
mixer 1250 1250 1750 1750 1250 1500 1750 1750
syndest 3 3 3 3 3 3 3 3
vlbainp 750
xfnormal TRUE
2a2b30if TRUE
synfrq 749000000 1683000000 1317000000 2251000000 891000000 1175000000 2109000000 2251000000
synamp 14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0
sigsrc gr
alfaamp FALSE
rdrblnk faa
430blnk FALSE
calsrc 6
vis30mhz ch

You'll notice that some of the keywords are left over from the old 305 meter and should be ignored (eg alfaamp, rdrblnk)

if2Prog  Dependencies:

Name
Type
Purpose
if2Prog.h
include
defines structures , prototypes for if2Prog.c
  • source:aosBase/src/vwconvert/if2/if2Prog.h
if2ProgDat.h
include
defines constants used by if2Prog.c
  • source:aosBase/src/vwconvert/if2/if2ProgDat.h
  • holds switch table that maps switch names to hp3488 cards, bits.
if2ProgKeys.h
include
defines keywords and datatype that if2Prog receives from the outside world.
  • source:aosBase/include/if2ProgKeys.h
if2Con.h
include
defines values for some of the setup keywords
  • source:aosBase/include/if2Con.h
if2ProgState.h
include
defines the state information that is in the multi cast packet.
  • source:aosBase/include/if2ProgState.h
hp3488Lib.o object
controls hp3488 digital outputs (mainly for switches).
  • source:aosBase/vwconvert/gpibenet/Dhp3488/hp3488Lib.c
  • object:aosBase/load64/hp348Lib.o
hp8648Lib.o
object
controls the hp8648 hp synthesizers
  • source:aosBase/vwconvert/gpibenet/Dhp8648/hp8648ELib.c
  • object: aosBase/load64/hp8648ELib.o
hp442Lib.o
object
controls the hp442 power meter.
  • hsource:aosBase/vwconvert/gpibenet/Dhp442/hp442Lib.c
  • object: aosBase/load64/hp442Lib.o
aoParse.o
object
parses ascii (keyword value) lines
  • source:aosBase/src/vwconvert/aoparse/aoParse.c
  • object: aosBase/load64/aoParse.o
gpibELib.o
object
sends gpib requests to gpibtoethernet device (via esp.o)
  • source:aosBase/src/vwconvert/gpibenet/gpibELib.c
  • object: aosBase/load64/gpibElib.o
  • gpibenet.cfg - maps gpib addresses to gpibenet device, names
esp.o
object
lets program talk to gpib to ethernet device over ethernet. National instruments source code with
some mods. Holds gpibenet state.
  • source: aosBase/src/vwconvert/gpibenet/esp.c
  • objecdt:aosBase/load64/esp.o
libphil.a
library
lots of utility routines to do things like
  • convert units
  • control queues
  • control threads
  • socket code
  • timers
  • etc...
Loc:aosBase/libs64/

source
source code for libphil. Split into various subdirectories
Loc: aosBase/libsrc/phil/
  • makefile: Makefile  in libsrc/phil will make everything
subdir:
  • conv: conversion routines
  • datatk: datatking routines
  • util: utility routines
system libs

-lrt for realtime clock
-lm   for math routines.

if2Prog miscfiles/requirements.


lock file
Used to guarantee  only one copy of if2Prog is running at a time
  • lock file location defined in if2Prog.h
    • #define LOCKFILE_NAME  "/share/phildat/if2/if2Prog.lok"
dumplog
dumps the program state when in debug mode
  • /share/phildat/if2/dump.log
udcctrl.c
program to control the udc
  • the if2Prog executes the udcctrl program with parameters to update/query the udc
  • see udcctrl below


rf filter bank

    The rf filter bank is located close to the dewar. The rf signals (polA and polB) enter the filter bank, are amplified, split, passed through 6 separate filters, and then into a 6 way to 1 programmable switch.
There is an identical set of components for the polA and polB paths. Programming limits polA and polB to always select the same filter.

Name
Purpose

fbprog.sc
talk to the filterbank
python script to talk to the filter bank
  • source:aosBase/p12m/wbrcvr/fb/fbprog.sc
  • It is an executable script using python3.7
  • it is run on galfas2
  • A  raspberrypi in the filterbank chassis controls the switches selected.
    • An ethernet (over fiber) lets you talk to the raspberry pi.
      • the python  package gpiozero is used
  • The filter requests are sent on the command line call of fbprog.sc
  • fbprog.sc will:
    • parse the input
    • select the requested switch
    • echo back the requested filter
  • The command line options are:
    • fbprog.sc -s {--filt_sel} filt1 filt2 filt3 filt4 filt5 filt6 rst
      • filt1-6 will select filter 1 through 6
      • rst will reset all of the switches to 0 (open)
      • To change a switch, the bit must be held high for 30 ms and brought low.
      • polA and polB switches are both changed with the single request (you can't select different filters on polA and polB)
  • the filter request should be echoed back to the caller (if not it is an error).
    • eg  fbprog.sc -s filt1
      • should echo back
        • filt1
  • the mapping of filter parameters to filtN is done in the tcl function fb.proc
  • the filter bank ip address is 192.168.100.123
  • Note:
    • there is a bug in one of the 6 to 1 switches.
    • normally you should be able to select a single port and things will work.
    • Because of the bug , we always set all switches to 0 before selecting the requested one (done in fbprog.sc)
fb.proc
tcl fucntion to
call fbprog.sc
tcl function to call fbprog.sc to setup the filters in the filterbank
  • source: aosBase/p12m/tcl/gen/fb.proc
  • before executing fbprog.sc
    • fb.proc will ping the ipaddress of the filterbank chassis to ensure there is communications
      • If it times out, it will return an error.
      • excessive network traffic on aonet was causing this to occur
      • we should have put the ip address of the raspberry pi on the dedicated data taking net.

UDC - up down converter.

    The udc is an up/down converter:

more info


Dewar monitoring

    Dewar status is monitored using a labjack data acquisition device inside a huffman box close to the dewar (this box also includes the bias lines for the dewar).

More info

What is monitored:

name
purpose
notes
p12mrcvm.c
monitor dewar
reads the dewar monitor info from the labjack, writes data to disc.
  • source:aosBase/p12m/wbrcvr/monctl/p12mrcvm.c
  • executable: aosBase/bin64/p12mrcvm
  • cpu: galfas2
  • started: galfas2   /etc/rc.local
    • start at boot time.
  • Program reads, averages, and then outputs data every  3 seconds.
    • output directory: /share/phildat/rcvm12m/
      • The data is binary
      • rcvm     current month data output here
      • once a month the data from the previous month is moved to a monthly file:
        • rcvm.yymm
        • this is done with bash/idl scripit: ~phil/admin/monthproc.sc

more info

rcvMon12Get.c
read, output monitor data
reads the file written by p12mrcvm.c and outputs an ascii version of the info.
  • It is normally piped to a tcl/tk routine to give a pretty output window
  • source:aosBase/src/gen/rcvMon12Get.c

idl routines to access data
idl routines to read and plot the dewar monitor data
  • location: /share/megs/phil/svn/idl/rcvmon12
    • also uses idl routines in
      • share/megs/phil/svn/idl/gen/
/share/phildat/p12rcvm/
disc directory
location for dewar monitor files:
  • rcvm
  • rcvm.yymm  ..