3421A CAL RAM
03-30-2017, 05:49 AM (This post was last modified: 04-11-2017 05:44 PM by Dave Frederickson.)
Post: #1
 Dave Frederickson Senior Member Posts: 2,118 Joined: Dec 2013
3421A CAL RAM
In the Feb 83 issue of the HP Journal in the article on the 3421A, under Advanced Instruction Set on p.15 it lists:

CAL Calibration RAM (1 if read, 2 if write)

It also states:
The calibration constants can also be read or written to by an HP-IL controller through the instrument's I/O interface.

This could be interesting, but this is the only reference to this command I can find.

If the method for doing so can be determined then it might be possible to clear a CAL RAM error without a costly calibration service. The best I've been able to figure out is that issuing the CAL write with the CAL Enable switch off generates an error. With the switch on no error occurs. Any attempt to read data just gives the reading from the front terminals.

It does say "by an HP-IL controller" so maybe it requires low-level commands. Anybody know how to do this?

Dave
03-30-2017, 09:14 AM
Post: #2
 Hans Brueggemann Member Posts: 229 Joined: Dec 2013
RE: 3421A CAL RAM
currently away from my 3468 and also not in possession of a 3421, but CAL ram error most likely points to a flat CAL ram battery (at least true for 3468), and therefore, it's very likely that the CAL data are already lost. You may want to check that first. you may want to post your question in the eevblog forum's repair section. The folks over there are toying with all kinds of vintage equipment and have already helped me out many times. They can probably provide you with the proper command sequence and a set of CAL data for your 3421. That won't bring back your instrument to factory accuracy level, but would at least allow you to exercise it, before you are doing a full cal & adjustment.
03-30-2017, 03:30 PM (This post was last modified: 03-30-2017 03:50 PM by Dave Frederickson.)
Post: #3
 Dave Frederickson Senior Member Posts: 2,118 Joined: Dec 2013
RE: 3421A CAL RAM
(03-30-2017 09:14 AM)Hans Brueggemann Wrote:  currently away from my 3468 and also not in possession of a 3421, but CAL ram error most likely points to a flat CAL ram battery (at least true for 3468), and therefore, it's very likely that the CAL data are already lost. You may want to check that first. you may want to post your question in the eevblog forum's repair section. The folks over there are toying with all kinds of vintage equipment and have already helped me out many times. They can probably provide you with the proper command sequence and a set of CAL data for your 3421. That won't bring back your instrument to factory accuracy level, but would at least allow you to exercise it, before you are doing a full cal & adjustment.

Yes, the battery was dead and has been replaced on both of my 3421A's along with the 6V SLA battery. I procrastinated and did not order another battery for my 3468 and now it has a CAL RAM checksum error, too. The solution to clearing the error is to perform a complete calibration, that is, write new calibration factors to the CAL RAM. Problem is I don't have the calibration standards necessary. However, nearly half of the steps in the calibration procedure can be performed using a shorting plug.

The other way to write new parameters to the CAL RAM would be to use this undocumented CAL command. I have a pretty good idea of the default parameters.

Excellent idea to consult eevblog. That is where I got the information on replacing the battery, from an HP 3457A post. BTW, the replacement battery for the 3421A and 3468 is a 2/3A 3V lithium, available from Digi-key.
http://www.digikey.com/product-detail/en...6-ND/61161

Dave
03-30-2017, 05:10 PM
Post: #4
 BobVA Senior Member Posts: 382 Joined: Dec 2013
RE: 3421A CAL RAM
(03-30-2017 05:49 AM)Dave Frederickson Wrote:  The calibration constants can also be read or written to by an HP-IL controller through the instrument's I/O interface.

I'm kind of interested in the "read" part, too. The 3468 is a headache to calibrate without specific equipment, so having a backup would be nice.
03-30-2017, 05:50 PM
Post: #5
 Dave Frederickson Senior Member Posts: 2,118 Joined: Dec 2013
RE: 3421A CAL RAM
(03-30-2017 05:10 PM)BobVA Wrote:
(03-30-2017 05:49 AM)Dave Frederickson Wrote:  The calibration constants can also be read or written to by an HP-IL controller through the instrument's I/O interface.

I'm kind of interested in the "read" part, too. The 3468 is a headache to calibrate without specific equipment, so having a backup would be nice.

Simply reading the CAL factors won't clear the checksum error. Writing them should calculate new checksums and then clear the error, but this doesn't calibrate the instrument, it just clears the error.
04-02-2017, 04:20 PM (This post was last modified: 04-02-2017 04:43 PM by Dave Frederickson.)
Post: #6
 Dave Frederickson Senior Member Posts: 2,118 Joined: Dec 2013
RE: 3421A CAL RAM
(03-30-2017 05:10 PM)BobVA Wrote:
(03-30-2017 05:49 AM)Dave Frederickson Wrote:  The calibration constants can also be read or written to by an HP-IL controller through the instrument's I/O interface.

I'm kind of interested in the "read" part, too. The 3468 is a headache to calibrate without specific equipment, so having a backup would be nice.

The 3468 cal data can be read as a 255 character string using the B2 command, per the label on the bottom of the DMM.
04-02-2017, 04:59 PM
Post: #7
 BobVA Senior Member Posts: 382 Joined: Dec 2013
RE: 3421A CAL RAM
(04-02-2017 04:20 PM)Dave Frederickson Wrote:  The 3468 cal data can be read as a 255 character string using the B2 command, per the label on the bottom of the DMM.

Thanks! I'll put that on my to-do list. I wanted to have a copy in case it could be written back after a cal ram error. (And of course if I was so prepared, I'd never *have* a cal ram error!)
04-02-2017, 05:24 PM
Post: #8
 Dave Frederickson Senior Member Posts: 2,118 Joined: Dec 2013
RE: 3421A CAL RAM
(04-02-2017 04:59 PM)BobVA Wrote:
(04-02-2017 04:20 PM)Dave Frederickson Wrote:  The 3468 cal data can be read as a 255 character string using the B2 command, per the label on the bottom of the DMM.

Thanks! I'll put that on my to-do list. I wanted to have a copy in case it could be written back after a cal ram error. (And of course if I was so prepared, I'd never *have* a cal ram error!)

Please share your cal data. Mine's corrupt so I'd like to see what good data looks like.

That reminds me, I need to order another battery.

Thanks, Dave
04-02-2017, 07:53 PM
Post: #9
 J-F Garnier Senior Member Posts: 619 Joined: Dec 2013
RE: 3421A CAL RAM
(04-02-2017 05:24 PM)Dave Frederickson Wrote:  ... The 3468 cal data can be read as a 255 character string using the B2 command, per the label on the bottom of the DMM....

Please share your cal data. Mine's corrupt so I'd like to see what good data looks like.

That reminds me, I need to order another battery.

Thanks, Dave

That for the B2 hint! I just experimented with it, and yes, the HP3468 sends 255 (not 256) characters following the B2 command.
Here is my HP71 program:
10 !
15 DIM A$[256] 20 A=DEVADDR("HP3468") 40 REMOTE 50 OUTPUT :A ;"B2" 60 ENTER :A USING "#,255A";A$
70 DISP A$and the result is: @@@@@@@@@@@@OOOO IIIIII@@BMOKODLH @@@@@@@@BLL@OMML @@@@@@F@BM@OOILO @@@@@@@@BLMNOBM@ @@@AFGC@L@LOOCNK IIIIIIF@NBMDOLLC @@@@BDA@ACCOI@EC @@@@@@@@AA@COLLO @@@@@@@@ABCKODLH @@@@@@@@ANBNOLLC @@@@@@@@ALNKOGM@ IIIIIIDANMMLOH@D @@@@@@@@@@@@OOOO @@@@@@@@@@@@OOOO @@@@@@@@@@@@@@@ I added the line breaks each 16 bytes manually for clarity. Note the missing character is the last line, since there are 255 characters. Observations: all bytes are regular ASCII characters, which makes the manipulation of calibration data easier, the characters are all in the range @-O that is 16 values: each calibration byte holds a 4-bit nibble, there is no visible checksum. It may be that the checksum is held in the 256th location of the calibration RAM and is not transmitted in the B2 response. We can imagine that the B3 command to write calibration data also asks for 255 bytes and automatically adds the checksum. I don't want to try - don't want to risk to corrupt my HP3468 calibration - but maybe Dave can you try ? :-) J-F 04-02-2017, 07:56 PM (This post was last modified: 04-02-2017 07:58 PM by Hans Brueggemann.) Post: #10  Hans Brueggemann Member Posts: 229 Joined: Dec 2013 RE: 3421A CAL RAM here you go... Code:  HP3468B @@@@@@@@ @@@@@@@@ IIIIIHF@ MKADNJLD IIIIIII@ MCDDOHM@ @@@@@@G@ LKCOOCFO @@@@@@@@ LDNKOBN@ @@@AICH@ NKDKDMEC IIIIIII@ @EODOHOH @@@@@@@@ ACD@OIMG @@@@@@@@ AANKOJLC @@@@@@@@ AABBOOLC IIIIIII@ AODCOOMG @@@@@@@@ @AMBOAN@ IIIIIFB@ NMMB@AD@ @@@@@@@@ @@@@@@@@ @@@@@@@@ @@@@@@@@ @@@@@@@@ @@@@@@@ Code:  HP3468A @@@@@@@@ @@@@@@@@ IIIIIFFO BADB@CLC IIIIIIGO BEO@OOEO @@@@@@CO AC@OONML @@@@@@AO BLELOFEO IIIIBA@O OMMALNNL IIIIIHD@ @ONMNGGG IIIIIIH@ @BCNOHFH IIIIIIH@ @AAAOFFC IIIIIII@ @NDOOCNG IIIIIIH@ @N@NOGFH IIIIIII@ @A@OOHNL @@@@@AE@ LNM@NEN@ @@@@@@@@ @@@@@@@@ @@@@@@@@ @@@@@@@@ @@@@@@@@ @@@@@@@ LOL... J-F beats me to the minute! 04-02-2017, 08:43 PM Post: #11  Dave Frederickson Senior Member Posts: 2,118 Joined: Dec 2013 RE: 3421A CAL RAM Excellent! So perhaps the 3421A is sending a string as well. Sure enough! 256 characters in this case. 3421A: O@@@@@@@@@@@@@@@ IIIIIHHOMCADNCED IIIIIIIOMDMBOOLC @@@@@AAONADDNNDG @@@@@@AONB@OOBDL @@@CEDE@AMLDMNLO IIIIIIA@@EMLOJGG IIIIIII@AKAOOBLD IIIIIII@ALNAODM@ IIIIIII@ALMCOEMG IIIIIII@AKDOOGLD IIIIIII@@ANLOENG @@ABAIH@@@@@DGDG IIGIDHG@@@@@MHEC IIGHDIG@@@@@MHDG OOOOOOOOOOOOOOOO A description of electronic calibration can be found in the same issue of the HP Journal in the 3468 article. What is known: * There are two constants per Function/Range. Zero (offset) and Gain. The default value for Zero is zero and Gain is one. * There are a total of 12 sets of calibration constants saved for the 3468 and 14 for the 3421. * The RAM was mapped is such a way that the constants for a each Function/Range would be in a unique row in RAM. This was so that if there was an ESD event while Write (CAL) Enable was true then it would only affect one Function/Range, minimizing the recalibration task. * The RAM device is physically organized in a 32x32 array, so room for 14 sets of 64-bit calibration constants * Each Function/Range constant includes parity. There is also a checksum. If the checksum is in addition to parity or the same as, I don't know. So now the task is to calibrate one constant at a time and then examine the cal data to determine where the constants for each Function/Range are mapped. Then, figure out how the constants are encoded. Any help would be appreciated. Thanks, Dave 04-03-2017, 12:46 AM Post: #12  Paul Berger (Canada) Senior Member Posts: 533 Joined: Dec 2013 RE: 3421A CAL RAM @@@@@@@@@@@@@@@@ IIIIGHE@M@DB@AML IIIIIGI@MOCLAKMK @@@@@D@@MOENKFML @@@@@@F@MNACOHLD IIIIEFI@AMBELMLD IIIIGBB@ABMNJMDL IIIIIGB@A@LLALEH IIIIIGB@AMBBAADG IIIIIGA@AMALAOD@ IIIIIGA@AMNKAGDG IIIIIGB@BLDDACED @@@@AB@@@@BDLIOO @@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@ This is from my 3468A, if you want samples from a 3421A I can dump both of mine for you. I am not surprised that this works on the 3421A, the meter part seems to be pretty much the same as a 3468. 04-03-2017, 12:57 AM (This post was last modified: 04-03-2017 08:54 PM by Dave Frederickson.) Post: #13  Dave Frederickson Senior Member Posts: 2,118 Joined: Dec 2013 RE: 3421A CAL RAM Thanks to MarkL over on EEVBlog Forum for confirming something I suspected. All the bytes are offset by 0x40 to make them displayable characters. Also, there's an undocumented command for the 3478, W(addr), for reading the CAL RAM data. https://www.eevblog.com/forum/repair/hp-...msg1177119 Dave Edit: (04-02-2017 07:53 PM)J-F Garnier Wrote: Observations: all bytes are regular ASCII characters, which makes the manipulation of calibration data easier, the characters are all in the range @-O that is 16 values: each calibration byte holds a 4-bit nibble, there is no visible checksum. Sorry, I didn't see this at first. 04-03-2017, 01:12 AM Post: #14  cruff Member Posts: 223 Joined: Dec 2013 RE: 3421A CAL RAM (04-02-2017 04:20 PM)Dave Frederickson Wrote: The 3468 cal data can be read as a 255 character string using the B2 command, per the label on the bottom of the DMM. Except my 3468 has no external labels on it, I can't even tell what serial number it is! That is very strange, I'd never noticed that until I took it apart to remove the dead battery a couple of days ago. 04-03-2017, 02:17 AM Post: #15  Dave Frederickson Senior Member Posts: 2,118 Joined: Dec 2013 RE: 3421A CAL RAM (04-03-2017 01:12 AM)cruff Wrote: (04-02-2017 04:20 PM)Dave Frederickson Wrote: The 3468 cal data can be read as a 255 character string using the B2 command, per the label on the bottom of the DMM. Except my 3468 has no external labels on it, I can't even tell what serial number it is! That is very strange, I'd never noticed that until I took it apart to remove the dead battery a couple of days ago. Here you go. 04-03-2017, 05:26 PM (This post was last modified: 04-03-2017 05:35 PM by Dave Frederickson.) Post: #16  Dave Frederickson Senior Member Posts: 2,118 Joined: Dec 2013 RE: 3421A CAL RAM Here's a program for the 3468 to print the ASCII data converted to hex nibbles. 10 DIM C$[256]
20 REMOTE :1
30 OUTPUT :1 ;"B2"
40 ENTER :1 ;C$50 FOR K=1 TO 255 60 PRINT DTH$(NUM(C$[K,K])-64)[5,5]; 70 IF K/16=INT(K/16) THEN PRINT 80 NEXT K For the 3421A. 10 DIM C$[256]
20 OUTPUT :2 ;"CAL1"
30 ENTER :2 ;C$40 FOR K=1 TO 256 50 PRINT DTH$(NUM(C$[K,K])-64)[5,5]; 60 IF K/16=INT(K/16) THEN PRINT 70 NEXT K Converted data: F000000000000000 9999988FD314E354 9999999FD4D2FFC3 0000011FE144EE47 0000001FE20FF24C 000354501DC4DECF 9999991005DCFA77 999999901B1FF2C4 999999901CE1F4D0 999999901CD3F5D7 999999901B4FF7C4 9999999001ECF5E7 0012198000004747 997948700000D853 997849700000D847 FFFFFFFFFFFFFFFF 04-04-2017, 04:08 PM (This post was last modified: 04-04-2017 04:10 PM by BobVA.) Post: #17  BobVA Senior Member Posts: 382 Joined: Dec 2013 RE: 3421A CAL RAM I managed to get the cal information out of my 3468A, but only after this hilarious goose chase: - Dig out 82160A HP-IL interface, only to realize HP-41 has packed up. - Fix HP-41, connect to 3468A then realize that 41 only accepts 24 characters in an HPIL response. - Dig out PILBox and set that up on bench computer. Side trip on failed quest looking for second HP-IL cable. Bodge something. - Realize ILCtrl can't issue a "Talk" command, so even though I can send the "B2" command, there's no way to read it. - Consider learning C++ or VB so I can modify it to do this, but then realize I'm not smart enough. - Re-read 82160A manual and realize that the entire string *can* be read by the HP-41 using multiple "INA" commands. Bang head on bench. - Connect printer to HP-41 and use 5 line program to read and print cal data. Done! :-) (Still not sure how I'd write it back if I had to, but perhaps the B3 command followed by the data would work from ILCtrl, since a response isn't needed.) 04-04-2017, 05:16 PM Post: #18  Dave Frederickson Senior Member Posts: 2,118 Joined: Dec 2013 RE: 3421A CAL RAM (04-04-2017 04:08 PM)BobVA Wrote: I managed to get the cal information out of my 3468A, but only after this hilarious goose chase: - Dig out 82160A HP-IL interface, only to realize HP-41 has packed up. - Fix HP-41, connect to 3468A then realize that 41 only accepts 24 characters in an HPIL response. - Dig out PILBox and set that up on bench computer. Side trip on failed quest looking for second HP-IL cable. Bodge something. - Realize ILCtrl can't issue a "Talk" command, so even though I can send the "B2" command, there's no way to read it. - Consider learning C++ or VB so I can modify it to do this, but then realize I'm not smart enough. - Re-read 82160A manual and realize that the entire string *can* be read by the HP-41 using multiple "INA" commands. Bang head on bench. - Connect printer to HP-41 and use 5 line program to read and print cal data. Done! :-) (Still not sure how I'd write it back if I had to, but perhaps the B3 command followed by the data would work from ILCtrl, since a response isn't needed.) Good, glad to see you followed the standard procedure. Here's what I've learned about the cal data for the 3468. First I loaded the CAL RAM with zeros (all @ characters) using the B3 command, then dumped the data after each step in the calibration procedure. This is what changed after each step. Code: .3V Zero, Line 2: 999998500000E5FB .3V Gain, Line 2: 999998902B04EBCF 3V Zero, Line 3: 999999900000F9FF 3V Gain, Line 3: 99999991FCE0FAB7 30V Zero, Line 4: 000000600000F6FF 30V Gain, Line 4: 00000061F2B4FAA3 300V Line 5: ACV? Line 6: 300 Zero, Line 7: 00069500000050FF 3K Zero, Line 8: 000067500000E5FB 30K Zero, Line 9: 000006700000977C 300K Zero, Line 10: 000000700000F77F 3M Zero, Line 11: 000000200000F27F 30M Zero, Line 12: 000000100000F17F 3A Zero, Line 13: 000000500000F5FC It looks like the first 7 nibbles in each row are the Zero, the next 5 the Gain, and the last 4 the checksums. From the HP Journal: Besides ESD, there is also a small chance that an alpha particle or a cosmic ray may alter a single bit of the memory. To protect against this rare occurrence, the two constants for each function and range have parity bits associated with them so that the 3468A's microprocessor can locate singlebit errors and detect double-bit errors. The processor can correct a single-bit error in a calibration constant and the instrument will remain calibrated. If the processor detects more than a single-bit error, the CAL annunciator is displayed and the error bits are set to warn the user that the readings are uncalibrated. When this type of error is detected, the processor uses default values of zero for Y and one for G. What parity/checksum/CRC method can correct single-bit errors and detect double-bit errors? I believe the 3468 and 3421 report CAL RAM errors on a per/range basis. I need to investigate. Dave 04-04-2017, 07:39 PM Post: #19  Paul Berger (Canada) Senior Member Posts: 533 Joined: Dec 2013 RE: 3421A CAL RAM You may want to read up on ECC memory the normal case for that is fix single bit and detect multi-bit 04-04-2017, 08:38 PM (This post was last modified: 04-04-2017 08:45 PM by J-F Garnier.) Post: #20  J-F Garnier Senior Member Posts: 619 Joined: Dec 2013 RE: 3421A CAL RAM (04-04-2017 04:08 PM)BobVA Wrote: - Realize ILCtrl can't issue a "Talk" command, so even though I can send the "B2" command, there's no way to read it. ILCtrl can read data from a device, for sure, using the 'Enter' button. With the 3468, there is no problem to read the measurements. Why doesn't it work with the 'B2' command? Because ILCtrl sends a 'Interface Clear' and re-addresses the loop (kind of 'RESTORE IO') before each action to make sure the HPIL addresses are valid, in case the loop configuration was changed. This is very similar to the way the HP41 operates. This is the 'Interface clear' (IFC) message that interacts with the pending message response, between the 'Send' and 'Enter' actions. It should not but it does, obviously. The HP71 sequence 'OUTPUT 1;"B2" @ RESTORE IO @ ENTER 1;A$' fails too.

I just corrected this aspect in ILCtrl v1.04 on my site. Now the calibration data can be read easily with a couple of keystroke in ILCtrl (ok, this is much less fun than setting a HP41 system up :-)

Quote: (Still not sure how I'd write it back if I had to, but perhaps the B3 command followed by the data would work from ILCtrl, since a response isn't needed.)

ILCtrl should be able to write back the cal data, but I didn't check.

J-F
 « Next Oldest | Next Newest »

User(s) browsing this thread: 1 Guest(s)