[time-nuts] Re: hp 5061B, power-up sequence, logging

John Miles john at miles.io
Wed Jan 4 18:37:09 UTC 2023


> This is a one-off test, just to have a well documented example of Cs

> oven power-up & locking sequence. But I'd consider leaving it wired in

> so I can collect data long-term as well. Most modern rubidium and cesium

> clocks have computer connections and telemetry already, so in a sense

> this project is to explore retroactively adding similar functionality to

> 5061-era cesium standards.

> 

> Anyway, if anyone has done something similar I'd be interested in

> hearing about it.

 

Having dealt with this on the 5065A recently (
https://www.eevblog.com/forum/metrology/the-hp5065a-and-its-ted-some-info!/m
sg4605040/#msg4605040 ) I'm sure the 5061B can be instrumented the same way.


The meter is a 2000-ohm load, 50-0-50 uA full scale.  So a reading of +/- 50
corresponds to +/- 100 mV at the terminals.  The circuit treats the measured
quantities as voltage sources with series resistances of a few thousand ohms
at most, using the rotary switch to connect one at a time to the meter
through additional series resistances on the A7 card.  These are
factory-selectable parts on the order of 100k.

 

So my strategy was to make the ADC behave like the meter, acting as a
low-resistance load that could be driven through high resistances to avoid
overdriving the ADC or loading down the various sampling points.  Because
the ADCs measure voltage and not current, it made sense to use a higher load
resistance than 2k in order to develop more voltage across it so as not to
waste too many bits.  I used 8.2k to ground on the Arduino analog input
pins, bypassed by 4.7 uF tantalum caps.  For series resistors, I used values
similar to those on the metering card, 220k on A7-6 for the photocell
current and 100k on A7-13 for the 2nd harmonic.  

 

The code used to emulate the meter readings looks like this:

 

float ADC_to_2nd_harmonic(void)     

{

   //

   // OEM meter = 2 mV/uA @ 1940 ohms, FS=+/- 100 mV) driven via 100K, so FS
@ 50 uA is 5.1V @ A7-13

   // ADC load = 8.2K driven via 100K, so 5.1V yields 0.387V at input or
359/1023 on 1.1V scale

   //

 

   S16         A     = analogRead(2);

   const float scale = 50.0F / 359.0F;

 

   return (float) A * scale;

}

 

float ADC_to_photo_I(void)

{

   //

   // OEM meter = 2 mV/uA @ 1940 ohms, FS=+/- 100 mV) driven via 200K, so FS
@ 50 uA is 10.1V @ A7-6

   // ADC load = 8.2K driven via 220K, so 10.1V yields 0.363V at input or
338/1023 on 1.1V scale

   //

   

   S16         A     = analogRead(3);

   const float scale = 50.0F / 338.0F;

 

   return (float) A * scale;

}

 

100k thermistors are connected from 3.3V to two more ADC input pins, each
with 2.7K resistors to ground:

 

float ADC_to_temperature(S16 A)  // Tracks Fluke 51 to within +/- 2C from
0-100C

{

   const float Vref  = 1.1F;     // Full-scale Arduino ADC voltage

   const float Vccth = 3.3F;     // Typical 3.3V rail voltage at thermistor
divider

   const float Rdiv  = 2.7E3;    // Ground leg of voltage divider

   const float Rt1   = 100E3;    // Thermistor nominal resistance at T1

   const float T1    = 298.15;   // 25C in K

   const float B     = 3950.0;   // B-constant for Vishay NTCS0402E3104JHT,
25C to 85C

 

   float VADC = (float) A * Vref / 1023.0F;

 

   float Vth = Vccth - VADC;

   float Ith = VADC / Rdiv;

   float Rt2 = Vth / Ith;

 

   return (1.0F / ((1.0F / T1) - (log(Rt1 / Rt2) / B))) - 273.15F; 

}

 

These are used to read the temperatures at both ends of the physics package,
primarily to serve as overtemp protection but also good for (very)
approximate datalogging purposes.

 

This worked very well, although because the source resistances aren't zero,
there is some slight interaction between the rotary switch and the ADCs.  If
you switch the meter across the lines being monitored  you'll get a small
shift in the recorded levels (and of course the meter readings will be
slightly lower as well.)  Fixing this would require adding voltage
followers, so it's easier to just leave the switch parked at an unmonitored
setting while recording data.

 

-- john

 





More information about the Time-nuts_lists.febo.com mailing list