Author Topic: Some old school instruments showing how it's done (HP 3325A and Fluke 8506a)  (Read 59676 times)

0 Members and 1 Guest are viewing this topic.

Offline garrettm

  • Frequent Contributor
  • **
  • Posts: 319
  • Country: us
Re: Some old school instruments showing how it's done (HP 3325A and Fluke 8506a)
« Reply #225 on: February 09, 2021, 04:29:28 pm »
I think I am running into the some of the same problems as as joeqsmith.

First, when using the ! command, I can't seem to get any data back from the meter when entering into HS mode or after I send the ? command. Pretty strange.

When using command string

S0BT1@<CR>

the meter will start sending binary data automatically with 25 to 26ms between measurements (as measured by the scan advance trigger signal). This is roughly 13 times too slow. The serial side of my bus is configured for 8N1 frames and 57600 baud, so it shouldn't be the limiting factor here.

Using

S0BT@<CR>

gives me 32ms between measurements, and is roughly 8 times too slow.

I've been using PuTTY while learning to use the instrument remotely and for the above tests. My guess is that this is what's killing my performance. I'll try writing something in python to see if I can get better results. Hopefully I can get the ! command to work while I'm at it. Would be neat to use the meter as a 22bit, 500 samples/s digitizer. Though I'm starting to think that might not pan out.
« Last Edit: February 10, 2021, 09:30:31 am by garrettm »
 

Offline SilverSolderTopic starter

  • Super Contributor
  • ***
  • Posts: 6126
  • Country: 00
Re: Some old school instruments showing how it's done (HP 3325A and Fluke 8506a)
« Reply #226 on: February 09, 2021, 04:34:56 pm »

I started a separate thread on disassembling the 8080 code in the EPROM, to avoid this thread going too far into outer space:
https://www.eevblog.com/forum/microcontrollers/old-school-8080-eprom-disassembly-is-it-making-sense/msg3453512/#msg3453512


I also found "Fluke Application Bulletin 25", it appears to be included in the Artek manual for the 8502A:
https://www.ebay.com/itm/FLUKE-8502A-Ops-Service-Manual-App-Note-Options-2/391790405454


An EPROM UV eraser arrived in the post this morning...   

 
The following users thanked this post: dietert1

Offline SilverSolderTopic starter

  • Super Contributor
  • ***
  • Posts: 6126
  • Country: 00
Re: Some old school instruments showing how it's done (HP 3325A and Fluke 8506a)
« Reply #227 on: February 10, 2021, 01:38:11 am »

Perhaps someone here knows...  How long are you supposed to "bake" an EPROM in the eraser, to erase it?  -  and how do you verify that it has been correctly erased when you take it out -  will it read all zeros?
 

Offline joeqsmith

  • Super Contributor
  • ***
  • Posts: 12277
  • Country: us
Re: Some old school instruments showing how it's done (HP 3325A and Fluke 8506a)
« Reply #228 on: February 10, 2021, 03:03:25 am »
From my experience, the more cycles on them the long it can take to erase.   The more they were cycled, they were also more prone to dropping bits.  The lamp strength will play into it.   If you can't erase them after an hour, somethings wrong.   Typically they will read FF's.  The programmer should have a blank check.


Offline SilverSolderTopic starter

  • Super Contributor
  • ***
  • Posts: 6126
  • Country: 00
Re: Some old school instruments showing how it's done (HP 3325A and Fluke 8506a)
« Reply #229 on: February 10, 2021, 03:08:02 am »
From my experience, the more cycles on them the long it can take to erase.   The more they were cycled, they were also more prone to dropping bits.  The lamp strength will play into it.   If you can't erase them after an hour, somethings wrong.   Typically they will read FF's.  The programmer should have a blank check.

Is the erasing process cumulative?  e.g. erase for 1/2 hour, test, if it wasn't enough bake it a little longer etc.?
 

Offline joeqsmith

  • Super Contributor
  • ***
  • Posts: 12277
  • Country: us
Re: Some old school instruments showing how it's done (HP 3325A and Fluke 8506a)
« Reply #230 on: February 10, 2021, 03:25:03 am »
Half hour should be fine.  If not, run another half hour.  If that doesn't clear them, I wonder how strong the lamp is. 

Offline garrettm

  • Frequent Contributor
  • **
  • Posts: 319
  • Country: us
Re: Some old school instruments showing how it's done (HP 3325A and Fluke 8506a)
« Reply #231 on: February 10, 2021, 03:46:20 am »
When in doubt, consult the datasheet:

Erasure is a function of light intensity and exposure time. All bits will be "high" after proper exposure. The datasheet suggests around 20 minutes of exposure using a 253.7nm, 12 mW/cm^2 light source with the light placed 1 inch / 2.54 cm above the quartz window.

Exposure is cumulative, so you can periodically read the chip and put it back in the eraser if it didn't finish the first time without harming anything. Though it’s probably better to just leave it in for 30 or 40 minutes to avoid repeated handling.

One extra cycle on a chip that has only been written to once is unlikely to harm its data retention, any more than that and I would be concerned.
« Last Edit: February 10, 2021, 03:54:58 am by garrettm »
 
The following users thanked this post: SilverSolder

Offline garrettm

  • Frequent Contributor
  • **
  • Posts: 319
  • Country: us
Re: Some old school instruments showing how it's done (HP 3325A and Fluke 8506a)
« Reply #232 on: February 10, 2021, 07:03:48 am »
I think I know why my setup can't do the high speed reading mode.

When I enable "GPIB talk-back on time out" dip switch on my RS-232 to GPIB converter, I can get the first binary reading back. When I send ? and wait, I can get the next reading. So the HS mode works, but requires the GPIB controller to tell the meter to send data after each ? command.

The problem with the Serial488A is that it can only ask the GPIB device to "talk-back" after a serial termination character (<CR>, <LF>, <CR><LF>, or <LF><CR>) is sent or 100ms after the last serial character (i.e., time out). "Talk-back" using a serial termination sends a GPIB <CR><LF> termination and then the DMM is addressed to talk, which causes the HS reading mode to exit before sending data.

I figure I might have to roll my own controller to get this thing to even come close to that 500 samples/s limit.

And now it's time to see if I can get anywhere close to 240 samples/s in the continuous binary mode...


*A quick update:

Using command string

S0F1R1JT1@<CR>

I can get the meter to automatically send ASCII data at 24-25 readings per second, while

S0F1R1JT@<CR>

gives 18 readings per second. And with

S0F1R1JT1@%Q1@<CR>

I can use the rear trigger to take readings and have them sent to the PC. The max speed of this mode was no more than 21 readings/s with T1 and 15 readings/s with T sampling modes. I didn't see any difference between Q and Q1 triggering while testing.

« Last Edit: February 10, 2021, 09:33:56 am by garrettm »
 

Offline garrettm

  • Frequent Contributor
  • **
  • Posts: 319
  • Country: us
Re: Some old school instruments showing how it's done (HP 3325A and Fluke 8506a)
« Reply #233 on: February 10, 2021, 12:40:15 pm »
I found the secret! This may also work for joeqsmith's bit serial interface since he said he received the first binary payload when entering into HS mode.

Since I can't directly put the remote instrument into talk mode, I used the "talk-back on time out" feature of the Serial488A and the Q1 triggering feature to avoid sending ? commands that pull the instrument out of talk mode.

By using an external signal generator I was able to trigger the DMM to 360 samples/s! A new record! However, I have an issue where it pauses on occasion that I need to look into. But I've proven that high speed transfers are possible and might actually achieve the touted 500 samples per second with some massaging.

To test, send

S0JT1@<CR>
%Q1@<CR>
!

and use the external trigger input while monitoring the scan advance.

I assume the serial interface can be tricked into sending binary data using the Q1 trigger as I did with my gimped GPIB bus.

Fast acquisition on the 8505/6A is not a fantasy anymore!
 

Offline joeqsmith

  • Super Contributor
  • ***
  • Posts: 12277
  • Country: us
Re: Some old school instruments showing how it's done (HP 3325A and Fluke 8506a)
« Reply #234 on: February 10, 2021, 12:48:26 pm »
.....
And now it's time to see if I can get anywhere close to 240 samples/s in the continuous binary mode...

*A quick update:

Using command string

S0F1R1JT1@<CR>

I can get the meter to automatically send ASCII data at 24-25 readings per second, while

S0F1R1JT@<CR>

gives 18 readings per second. And with

With the 607 firmware,  the fastest times I have seen using RS232 were using   M M1 W Q J P0 X0 U0 S0 F1 B.   Basically I'm wanting the meter to do as little as possible.  The worse times are around 25ms.  Average is about 16ms.   Close to 60 readings per second.   Graph is showing the time between readings in ms.  Histogram is also showing readings per second.   

I suspect you will see similar or faster times. 

Offline joeqsmith

  • Super Contributor
  • ***
  • Posts: 12277
  • Country: us
Re: Some old school instruments showing how it's done (HP 3325A and Fluke 8506a)
« Reply #235 on: February 10, 2021, 12:56:37 pm »
I found the secret! This may also work for joeqsmith's bit serial interface since he said he received the first binary payload when entering into HS mode.
...
I assume the serial interface can be tricked into sending binary data using the Q1 trigger as I did with my gimped GPIB bus.
...

Thanks.  I'll give it a try.   

Offline garrettm

  • Frequent Contributor
  • **
  • Posts: 319
  • Country: us
Re: Some old school instruments showing how it's done (HP 3325A and Fluke 8506a)
« Reply #236 on: February 10, 2021, 01:26:18 pm »
Thanks.  I'll give it a try.

If that doesn't work, try turning off the display and toggling ! twice (off, and back on) for each reading received. A bit of a hack, but you should see more than 60 samples per second this way.

So

D! 
//save reading

Then loop

!
!
//save reading

Seemed to work okay when I tried it.
 

Offline SilverSolderTopic starter

  • Super Contributor
  • ***
  • Posts: 6126
  • Country: 00
Re: Some old school instruments showing how it's done (HP 3325A and Fluke 8506a)
« Reply #237 on: February 10, 2021, 01:48:52 pm »
I found the secret! This may also work for joeqsmith's bit serial interface since he said he received the first binary payload when entering into HS mode.

Since I can't directly put the remote instrument into talk mode, I used the "talk-back on time out" feature of the Serial488A and the Q1 triggering feature to avoid sending ? commands that pull the instrument out of talk mode.

By using an external signal generator I was able to trigger the DMM to 360 samples/s! A new record! However, I have an issue where it pauses on occasion that I need to look into. But I've proven that high speed transfers are possible and might actually achieve the touted 500 samples per second with some massaging.

To test, send

S0JT1@<CR>
%Q1@<CR>
!

and use the external trigger input while monitoring the scan advance.

I assume the serial interface can be tricked into sending binary data using the Q1 trigger as I did with my gimped GPIB bus.

Fast acquisition on the 8505/6A is not a fantasy anymore!

Nice one - congratulations on cracking the nut!  :)

I only just got my GPIB bus back together last night, hobbling along with a Putty session - more like 1 message per ten minutes than 500 per second!  :D

I also use a serial GPIB adapter, it may also have to be "tricked" like you are doing.
 

Offline garrettm

  • Frequent Contributor
  • **
  • Posts: 319
  • Country: us
Re: Some old school instruments showing how it's done (HP 3325A and Fluke 8506a)
« Reply #238 on: February 10, 2021, 08:36:06 pm »
Been doing a little work on figuring out the 3-byte binary data. Here's what I came up with to turn it into a double using C++ unions and structs. One could do it all with bitwise operations, masking etc. but this looks the cleanest to me. At 500 samples/s max, speed really isn't a concern. Due to floating point denormals, the conversion operations need to be in the order shown, otherwise it's a mess figuring out the exponent and I merged part of the exponent with the mantissa to get the array. The err variable is, what I assume, to be used for determining overflow at the ADC. So it probably should be checked before committing to any further work decoding the binary payload.

Code: [Select]
#include <inttypes.h>

typedef union {
  struct {
uint32_t f;    // b0-b31
        uint8_t  b[3]; // b32-b55
uint8_t  e :7; // b56-b62
bool     s :1; // b63
  };
  double r = 1;        // set FP exponent bits
} adc_t;

typedef union {
  struct {
    uint8_t f :4; // fraction bits
    bool    i :1; // integer bit
    bool    e :1; // error bit
    bool    s :2; // sign bits
  };
  uint8_t b;
} msb_t;

msb_t B1;
adc_t val;
   
        B1.b = 0b00001000;    // 1st binary byte
bool    err  = !B1.s == B1.e; // ADC overflow check
uint8_t B2   = 0b01000000;    // 2nd binary byte
uint8_t B3   = 0b00000001;    // 3rd binary byte

val.b[0]  =  B3;   // fraction bits, b0-b7
val.b[1]  =  B2;   // fraction bits, b8-b15
val.b[2] |=  B1.f; // fraction bits, b16-b19
val.r    -= !B1.i; // integer portion / FP exponent, b20
val.s     =  B1.s; // sign, b21
« Last Edit: February 11, 2021, 03:12:02 pm by garrettm »
 

Offline m k

  • Super Contributor
  • ***
  • Posts: 2648
  • Country: fi
Re: Some old school instruments showing how it's done (HP 3325A and Fluke 8506a)
« Reply #239 on: February 10, 2021, 08:45:12 pm »

By the way, what is the recommended method for pulling and inserting these kinds of chips out of / into their sockets?  It seems a challenge to avoid bending pins...

I've used simple IC crowbar extractor through the decades.
Just a plate that is bent twice, long L and sharp corner on the other side.
Seems to be so simple that my search is failing.

One other thing is that old sockets are bad.
Sometimes their single side spring inserts are coming out with the pin and then it's not good ever again.

Putting them back is without any tools and pins bent against the table if needed.
Extractor and pliers can do the other directions, sharply sideways can be one before the last.
Advance-Aneng-Appa-AVO-Beckman-Danbridge-Data Tech-Fluke-General Radio-H. W. Sullivan-Heathkit-HP-Kaise-Kyoritsu-Leeds & Northrup-Mastech-OR-X-REO-Simpson-Sinclair-Tektronix-Tokyo Rikosha-Topward-Triplett-Tritron-YFE
(plus lesser brands from the work shop of the world)
 
The following users thanked this post: SilverSolder

Offline joeqsmith

  • Super Contributor
  • ***
  • Posts: 12277
  • Country: us
Re: Some old school instruments showing how it's done (HP 3325A and Fluke 8506a)
« Reply #240 on: February 10, 2021, 09:02:57 pm »
When it sends the 3 bytes, are there any other's being sent (CR LF)?   If not, I am interested in how you handle making sure you are in sync?

I had been timing the end of the frame, looking for when there was no data.   It's not not a clean setup so I moved onto just pulling in what ever is on the serial port and placing it into a FIFO.  I assume the first reading is in sync and pull however much data I am expecting (depending on ASCII/Binary and trigger type).  If the converted data is not within bounds, I then index through the FIFO one location at a time, testing each combination for an in-range value.  Once I find it, I consider it back in sync, until the another reading falls out of range.   It's really only a problem in the one mode where there are no CRs ( I always disable the LF).  For these, I just search for the CR to resync.   Once it's locked, it seems fairly reliable.  I was a little concerned after adding the jumper to allow for 19.2K that the error rates may be unreasonable but I've ran the meter for several hours at a time without missing.   

Readings that are found to be in-range are placed into another FIFO that is read by the main thread.   The lowest level FIFO can store about 5 seconds of data.  The second layer after conversion to floating point will hold about 6 seconds.   The main thread runs fairly slow which updates the screen.

****
Just to add to this, the lowest level thread executes every 50ms.  At 19.2K 8,N,1 it's 521us/byte, so every 50ms it can have up to 100 bytes loaded into the FIFO, which is 10,000 bytes deep.  (math is lacking   10K/100samp*50ms, yeah 5 seconds )

I still measure the data rate the same way, measuring how often an in-range reading occurs but you can imagine there is a fair bit of error in the measurement running the threads this slow and letting the hardware / OS buffer things.  So I now also look at the over all data rate as well, seeing over the course of how ever long I run, how much data has been collected.   It just made the code cleaner to architect it  this way.   
« Last Edit: February 10, 2021, 09:21:46 pm by joeqsmith »
 

Offline garrettm

  • Frequent Contributor
  • **
  • Posts: 319
  • Country: us
Re: Some old school instruments showing how it's done (HP 3325A and Fluke 8506a)
« Reply #241 on: February 10, 2021, 09:25:11 pm »
As far as I can tell, binary data does not use termination characters to denote end of payload, so continuous readings probably aren't the best method to use for HS operation. I have a raspberry PI that I want to try using with one of the GPIO pins to trigger the DMM for synching the reading rates. This way I don't need to consider a buffer and the transfer speed should be as fast as the DMM will go.

For the bit serial interface, toggling ! should allow the same thing as I am going to attempt with the rear trigger input. The problem with my serial-GPIB conversion is that I can't control the talk/listen state of the DMM directly, so I can't actually get that first 3-bytes of data from the ! command, and If I send ? the meter will go back to listen mode. The talk-back on time-out setting is what sets my DMM into talk mode for the triggering to work but its worthless for anything else.

Have you tried testing reading rates using the HS mode yet? I'm curious how fast you can get your meter to send data. With 10bit frames and 19200 baud and 3-byte binary data, the bus can handle more than 500 readings/s. I really don't know why Fluke disabled it for that interface when even 9600 baud can handle 320 readings/s.
 

Offline joeqsmith

  • Super Contributor
  • ***
  • Posts: 12277
  • Country: us
Re: Some old school instruments showing how it's done (HP 3325A and Fluke 8506a)
« Reply #242 on: February 10, 2021, 11:09:32 pm »
Are you referring to the 3-byte or all binary data not using terminators?   This isn't what I see is why I ask.  Could be the meter or firmware.

I haven't tried it yet but if it works, I plan to just add it to the code I have.    I did read that section of the 3-byte format.   Looks simple enough.   

Offline SilverSolderTopic starter

  • Super Contributor
  • ***
  • Posts: 6126
  • Country: 00
Re: Some old school instruments showing how it's done (HP 3325A and Fluke 8506a)
« Reply #243 on: February 10, 2021, 11:26:00 pm »
Are you referring to the 3-byte or all binary data not using terminators?   This isn't what I see is why I ask.  Could be the meter or firmware.

I haven't tried it yet but if it works, I plan to just add it to the code I have.    I did read that section of the 3-byte format.   Looks simple enough.   

Perhaps the terminators are added somewhere else along the way, in the interface firmware or in a library looking at the interface?
« Last Edit: February 10, 2021, 11:33:28 pm by SilverSolder »
 

Offline joeqsmith

  • Super Contributor
  • ***
  • Posts: 12277
  • Country: us
Re: Some old school instruments showing how it's done (HP 3325A and Fluke 8506a)
« Reply #244 on: February 11, 2021, 12:41:06 am »
Somewhere else, interface firmware, library?   I have no idea what you are referring to.  I treat the meter as a block box.  The meter w/ 607 firmware spits out the CRs when certain binary modes are selected.  There's nothing between the meter and the PC that is adding these.   

Offline joeqsmith

  • Super Contributor
  • ***
  • Posts: 12277
  • Country: us
Re: Some old school instruments showing how it's done (HP 3325A and Fluke 8506a)
« Reply #245 on: February 11, 2021, 01:31:41 am »
With the 607 firmware, attempting to use the external trigger with high speed commands, it does indeed put out 3 bytes onto the serial port for every trigger.   0x0d,0x30,0x0d.  The pattern repeats.  The sync output does not toggle.   

Sending the G1? to check for errors, the meter returns 19007.   Error code 19, Function Module selected not installed.  7 is function not defined.  I don't think it likes it. 

Offline SilverSolderTopic starter

  • Super Contributor
  • ***
  • Posts: 6126
  • Country: 00
Re: Some old school instruments showing how it's done (HP 3325A and Fluke 8506a)
« Reply #246 on: February 11, 2021, 02:50:51 am »
Somewhere else, interface firmware, library?   I have no idea what you are referring to.  I treat the meter as a block box.  The meter w/ 607 firmware spits out the CRs when certain binary modes are selected.  There's nothing between the meter and the PC that is adding these.   

My GPIB interface adds its own "intelligence" to the flow, I wouldn't put it past it to add CR/LF where there were none from the source.  This kind of thing can definitely cause issues.  Obviously this depends on the interface and its libraries (in the PC).

But, with a direct serial connection, I guess you can just look at it with a terminal program, with nothing in between to potentially interfere?

« Last Edit: February 11, 2021, 02:52:39 am by SilverSolder »
 

Offline joeqsmith

  • Super Contributor
  • ***
  • Posts: 12277
  • Country: us
Re: Some old school instruments showing how it's done (HP 3325A and Fluke 8506a)
« Reply #247 on: February 11, 2021, 03:57:27 am »

My GPIB interface adds its own "intelligence" to the flow, I wouldn't put it past it to add CR/LF where there were none from the source.  This kind of thing can definitely cause issues.

Ok, you think the adapter may possibly be doing it.   I've never seen any type of USB/RS232,TTL,485 adapter that would add characters.  I require them to emulate the old time hardware serial ports.   Of course, the DSO tells the story.    Again, it has to do with the trigger setting. 

Offline garrettm

  • Frequent Contributor
  • **
  • Posts: 319
  • Country: us
Re: Some old school instruments showing how it's done (HP 3325A and Fluke 8506a)
« Reply #248 on: February 11, 2021, 04:19:42 am »
... The meter w/ 607 firmware spits out the CRs when certain binary modes are selected.  There's nothing between the meter and the PC that is adding these.   

I think you are correct about the <CR> terminations.

I believe the differences we are observing has to do with my serial to GPIB conversion.

My "GPIB controller" takes a specific GPIB termination (<CR><LF>) and converts it to a serial termination (<CR>). When the GPIB device sends a termination, the "GPIB controller" places the GPIB device into listen mode immediately after. When the serial device sends a termination, the controller places the GPIB device into talk mode using the "talk-back on termination." Or alternatively, does so without a termination in the "talk-back on time out" mode 100ms after the last serial byte sent to the GPIB device. I have no direct control over the talk and listen modes of the instrument. The "GPIB controller" functions are configured by dip switches only.

Currently I have the GPIB side set to <CR><LF>, if the 8506A is only sending <CR> during binary data then it is ignored and doesn't trigger the serial termination (keeping the GPIB device in talk mode). Otherwise I cannot get the DMM to automatically send data using the continuous triggering commands and I would be required to send a <CR> after each received message. If I don't send a <CR> over serial, the GPIB device will stay in listen mode. This is why I was having trouble getting the HS mode to work. I can send ! and ?, but doing so will place the DMM into listen mode, while sending <CR> will cause a GPIB <CR><LF> which exits the HS mode while the DMM is placed into talk mode immediately after.

With the current dip switch settings, while receiving binary data with PuTTY, I observe no carriage returns or line feeds, it’s just a single line of text. When I use command J, ASCII data is received the same way. Without command J, then a <CR> sets the cursor back to the start of the same line--so no infinitely long, single-line of text.

It has taken me a while to figure all of this out. So sorry about the confusion.

My bus conversion is suboptimal at best. Which is why I had to do the hacks I previously described and the strings I posted are formatted the way they were. I'll need to roll my own controller with an Arduino Micro so I can have full GPIB controller functionality.
« Last Edit: February 11, 2021, 04:22:50 am by garrettm »
 

Offline SilverSolderTopic starter

  • Super Contributor
  • ***
  • Posts: 6126
  • Country: 00
Re: Some old school instruments showing how it's done (HP 3325A and Fluke 8506a)
« Reply #249 on: February 11, 2021, 04:36:13 am »

What exactly is your GPIB adapter, @garretm?

I have a National Instruments GPIB-232CT-A here, which I actually quite like - but I have never attempted anything particularly high speed with it.

 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf