Author Topic: HP 3478A: How to read/write cal SRAM  (Read 54337 times)

0 Members and 1 Guest are viewing this topic.

Offline WaveyDipole

  • Frequent Contributor
  • **
  • Posts: 851
  • Country: gb
Re: HP 3478A: How to read/write cal SRAM
« Reply #175 on: March 18, 2024, 07:22:11 pm »
Having "slept on it" I concur that Prologix compatibility should be maintained as this was the intention from the start. Since the filter was ineffective in 0.49.14 and earlier and that didn't seem to do any harm, yet when 'fixed', it did cause unexpected problems, it seems the logical choice is to simply remove it. To that end the program statement in question has been simplified to just send the byte to GPIB. I have left the old line commented out in the code with a note to remind me not to re-enable it again! An update has now been published to the Github repository. Hopefully someone can tell me whether the cal data is now retrieved correctly as it was previously without needing to use ++eoi 1 ?
« Last Edit: March 18, 2024, 07:42:13 pm by WaveyDipole »
 
The following users thanked this post: pqass

Offline djrm

  • Contributor
  • Posts: 41
  • Country: gb
Re: HP 3478A: How to read/write cal SRAM
« Reply #176 on: March 18, 2024, 08:29:28 pm »
Having "slept on it" I concur that Prologix compatibility should be maintained as this was the intention from the start. ... Hopefully someone can tell me whether the cal data is now retrieved correctly as it was previously without needing to use ++eoi 1 ?
Greetings,
Seems to work ok now, any particular test I should perform? attached is pulseview trace of successful data transfer from HP3478A.exe using Wine on Linux Mint.
* pulseview-hexdump-rawbytes-HP3478A-read-cal-AR488-v0.51.29.txt (17.18 kB - downloaded 37 times.)
Kind regards, David.
 
The following users thanked this post: WaveyDipole

Offline WaveyDipole

  • Frequent Contributor
  • **
  • Posts: 851
  • Country: gb
Re: HP 3478A: How to read/write cal SRAM
« Reply #177 on: March 18, 2024, 08:40:26 pm »
Thanks for confirming. As regards tests, the only other checks I would do would be to make sure that the correct readings are returned and that the meter can be remote controlled. I doubt however, that the this change will have had any effect on those functions. I would expect them to continue working OK.

 

Offline radar_macgyver

  • Frequent Contributor
  • **
  • Posts: 698
  • Country: us
Re: HP 3478A: How to read/write cal SRAM
« Reply #178 on: March 21, 2024, 04:17:52 am »
I have a 3478A prototype version (at least, I think it's a 3478A, it has no label or serial number). I used a Prologix GPIB to Ethernet adapter and a Python script to read the calibration RAM, and it looks rather different from what others have posted here. Almost looks like it's "partially" calibrated, though it doesn't report an error on startup.

0000: 49 49 49 49 49 49 49 49  49 49 49 49 49 49 49 49 IIIIIIII IIIIIIII
0010: 49 49 49 49 49 49 49 49  49 49 49 49 49 49 49 49 IIIIIIII IIIIIIII
0020: 42 42 44 42 41 4c 4e 48  49 49 49 49 49 41 42 45 BBDBALNH IIIIIABE
0030: 4d 43 42 4b 48 40 40 40  40 40 40 42 44 44 41 44 MCBKH@@@ @@@BDDAD
0040: 4f 40 40 40 40 40 40 40  40 40 40 40 40 40 40 49 O@@@@@@@ @@@@@@@I
0050: 49 47 44 43 46 42 44 41  4c 45 4c 41 49 49 49 44 IGDCFBDA LELAIIID
0060: 42 47 41 4c 45 4c 42 4b  47 49 49 49 49 48 46 41 BGALELBK GIIIIHFA
0070: 4c 4c 42 41 4b 41 49 49  49 49 49 45 40 45 43 49 LLBAKAII IIIE@ECI
0080: 49 49 49 49 49 49 49 49  49 49 49 49 49 49 49 49 IIIIIIII IIIIIIII
0090: 49 49 49 49 49 49 49 49  49 49 49 49 49 49 49 49 IIIIIIII IIIIIIII
00a0: 49 49 49 49 49 49 49 49  49 49 49 49 49 49 49 49 IIIIIIII IIIIIIII
00b0: 49 49 49 49 49 49 49 49  49 49 49 49 49 49 49 49 IIIIIIII IIIIIIII
00c0: 49 49 49 49 49 49 49 49  49 49 49 49 49 49 49 49 IIIIIIII IIIIIIII
00d0: 49 49 49 49 49 49 49 49  49 49 49 49 49 49 49 49 IIIIIIII IIIIIIII
00e0: 49 49 49 49 49 49 49 49  49 49 49 49 49 49 49 49 IIIIIIII IIIIIIII
00f0: 49 49 49 49 49 49 49 49  49 49 49 49 49 49 49 49 IIIIIIII IIIIIIII

Any ideas why it doesn't report an error? Or is this a quirk of the Prologix GPIB-Ethernet adapter? I did escape CR,NL,ESC and '+' (my code is attached).
 

Offline pqass

  • Frequent Contributor
  • **
  • Posts: 726
  • Country: ca
Re: HP 3478A: How to read/write cal SRAM
« Reply #179 on: March 21, 2024, 05:27:47 am »
Radar, most of your cal records fail checksum. 
If it is a prototype then the software probably isn't the final release version; checksum validation likely disabled.
What does the sticker on the U502 ROM say?  Mine says: "03478-65501", next line: "D/C 8841"
However, have you compared it to another meter for each of the ranges?

Note: crc=ff means record passes validation.
Code: [Select]
$ ./verify.sh radar.cal
000001 49 49 49 49 49 49 49 49 49 49 49 49 49  >IIIIIIIIIIIII< 00: raw_offset=999999 raw_gain=99999 offset=-000001 gain=0.922223 crc=fc  30 mV DC
00000e 49 49 49 49 49 49 49 49 49 49 49 49 49  >IIIIIIIIIIIII< 01: raw_offset=999999 raw_gain=99999 offset=-000001 gain=0.922223 crc=fc  300 mV DC
00001b 49 49 49 49 49 42 42 44 42 41 4c 4e 48  >IIIIIBBDBALNH< 02: raw_offset=999992 raw_gain=2421c offset=-000008 gain=1.024206 crc=12c  3 V DC
000028 49 49 49 49 49 41 42 45 4d 43 42 4b 48  >IIIIIABEMCBKH< 03: raw_offset=999991 raw_gain=25d32 offset=-000009 gain=1.024732 crc=ff  30 V DC
000035 40 40 40 40 40 40 42 44 44 41 44 4f 40  >@@@@@@BDDADO@< 04: raw_offset=000000 raw_gain=24414 offset=+000000 gain=1.024414 crc=ff  300 V DC
000042 40 40 40 40 40 40 40 40 40 40 40 40 40  >@@@@@@@@@@@@@< 05: raw_offset=000000 raw_gain=00000 offset=+000000 gain=1.000000 crc=00  <not used>
00004f 49 49 47 44 43 46 42 44 41 4c 45 4c 41  >IIGDCFBDALELA< 06: raw_offset=997436 raw_gain=241c5 offset=-002564 gain=1.024065 crc=ff  AC V
00005c 49 49 49 44 42 47 41 4c 45 4c 42 4b 47  >IIIDBGALELBKG< 07: raw_offset=999427 raw_gain=1c5c2 offset=-000573 gain=1.006462 crc=ff  30 Ohm 2W/4W
000069 49 49 49 49 48 46 41 4c 4c 42 41 4b 41  >IIIIHFALLBAKA< 08: raw_offset=999986 raw_gain=1cc21 offset=-000014 gain=1.005621 crc=ff  300 Ohm 2W/4W
000076 49 49 49 49 49 45 40 45 43 49 49 49 49  >IIIIIE@ECIIII< 09: raw_offset=999995 raw_gain=05399 offset=-000005 gain=1.005223 crc=e5  3 kOhm 2W/4W
000083 49 49 49 49 49 49 49 49 49 49 49 49 49  >IIIIIIIIIIIII< 10: raw_offset=999999 raw_gain=99999 offset=-000001 gain=0.922223 crc=fc  30 kOhm 2W/4W
000090 49 49 49 49 49 49 49 49 49 49 49 49 49  >IIIIIIIIIIIII< 11: raw_offset=999999 raw_gain=99999 offset=-000001 gain=0.922223 crc=fc  300 kOhm 2W/4W
00009d 49 49 49 49 49 49 49 49 49 49 49 49 49  >IIIIIIIIIIIII< 12: raw_offset=999999 raw_gain=99999 offset=-000001 gain=0.922223 crc=fc  3 MOhm 2W/4W
0000aa 49 49 49 49 49 49 49 49 49 49 49 49 49  >IIIIIIIIIIIII< 13: raw_offset=999999 raw_gain=99999 offset=-000001 gain=0.922223 crc=fc  30 MOhm 2W/4W
0000b7 49 49 49 49 49 49 49 49 49 49 49 49 49  >IIIIIIIIIIIII< 14: raw_offset=999999 raw_gain=99999 offset=-000001 gain=0.922223 crc=fc  300 mA DC
0000c4 49 49 49 49 49 49 49 49 49 49 49 49 49  >IIIIIIIIIIIII< 15: raw_offset=999999 raw_gain=99999 offset=-000001 gain=0.922223 crc=fc  3A DC
0000d1 49 49 49 49 49 49 49 49 49 49 49 49 49  >IIIIIIIIIIIII< 16: raw_offset=999999 raw_gain=99999 offset=-000001 gain=0.922223 crc=fc  <not used>
0000de 49 49 49 49 49 49 49 49 49 49 49 49 49  >IIIIIIIIIIIII< 17: raw_offset=999999 raw_gain=99999 offset=-000001 gain=0.922223 crc=fc  300 mA/3A AC
0000eb 49 49 49 49 49 49 49 49 49 49 49 49 49  >IIIIIIIIIIIII< 18: raw_offset=999999 raw_gain=99999 offset=-000001 gain=0.922223 crc=fc  <not used>
0000f8 49 49 49 49 49 49 49 49                 >IIIIIIII< 19: <padding>
Attached is my verify.sh script (slightly updated from my #123 post; added switch to od command to show duplicate lines). 
Remove the .txt ending.
« Last Edit: March 21, 2024, 05:40:42 am by pqass »
 

Offline m k

  • Super Contributor
  • ***
  • Posts: 2009
  • Country: fi
Re: HP 3478A: How to read/write cal SRAM
« Reply #180 on: March 21, 2024, 07:21:33 am »
Data lengths
8, 5, 8, 6, 6, 14, 2, 11, 3, 10, 4, 9, 5, 4

so

8,
5, 8,
6, 6,
14,
2, 11,
3, 10,
4, 9,
5,
4

Last is unknown, but others are ok, one empty.
First is only 8 long starting from 0x20.
Advance-Aneng-Appa-AVO-Beckman-Data Tech-Fluke-General Radio-H. W. Sullivan-Heathkit-HP-Kaise-Kyoritsu-Leeds & Northrup-Mastech-REO-Simpson-Sinclair-Tektronix-Tokyo Rikosha-Triplett-YFE
(plus lesser brands from the work shop of the world)
 

Offline fenugrec

  • Regular Contributor
  • *
  • Posts: 217
  • Country: ca
Re: HP 3478A: How to read/write cal SRAM
« Reply #181 on: March 22, 2024, 12:36:10 am »
I have a 3478A prototype version (at least, I think it's a 3478A, it has no label or serial number).

Interesting... if you have a ROM dump and want to investigate, you're looking for this function :

https://github.com/fenugrec/hp3478a_utils/blob/master/ROM_disasm/dc118.d48#L285

may end up somewhere else but will be similar (a short loop with movx to read the RAM, bitwise 'and' with 0x0F, add every field, then check)
 

Offline radar_macgyver

  • Frequent Contributor
  • **
  • Posts: 698
  • Country: us
Re: HP 3478A: How to read/write cal SRAM
« Reply #182 on: March 22, 2024, 04:41:36 am »
@pqpass, thank you for decoding my hex dump.

U502 is a 24-pin ceramic DIP with no window, and no stickers on it. I guess it must be prototype firmware. I don't have an EPROM reader so I can't do a dump. Maybe I should get one...

When comparing against my 6500, here's what I get:

TestDMM6500HP 3478Notes
30 mV29.7 mV29.7 mVWas very noisy
0.3V0.30030.3003Was very noisy
3V3.00283.0030
30V30.029030.0298
70V70.038570.040The max my PSU could do
100mA100.000124.24
1.0A1.00051.244
100k99.987299.980Using DMMcheck
10k10.0023610.0014Using DMMcheck
1k0.09996260.99955Using DMMcheck
100100.1650100.155Using DMMcheck
5VDC4.999855.0000Using DMMcheck
5VAC4.999184.9998Using DMMcheck

I used my bench power supply for the DC voltage tests except the last two, those are from a DMMcheck. The resistance tests are also from the DMMcheck. Looks like the amps ranges are clearly not calibrated, though the DC volts and ohms show very good results. This leads me to think, combined with the fact that the dump reads back the same '0x49' for all offsets < 0x20 that it may be due to the GPIB interface I'm using (0x20 = 32 = first printable char).
 

Offline m k

  • Super Contributor
  • ***
  • Posts: 2009
  • Country: fi
Re: HP 3478A: How to read/write cal SRAM
« Reply #183 on: March 22, 2024, 07:57:46 am »
combined with the fact that the dump reads back the same '0x49' for all offsets < 0x20 that it may be due to the GPIB interface I'm using (0x20 = 32 = first printable char).

If so then all after 0x7E can be the same, excluded for what ever reason.

You can concentrate to address 0x1F and few before that.
Those missing from first set should be 0x40.

There are two possibilities.
Either the first set is really 8 long, or those first 0 values are missing.
Advance-Aneng-Appa-AVO-Beckman-Data Tech-Fluke-General Radio-H. W. Sullivan-Heathkit-HP-Kaise-Kyoritsu-Leeds & Northrup-Mastech-REO-Simpson-Sinclair-Tektronix-Tokyo Rikosha-Triplett-YFE
(plus lesser brands from the work shop of the world)
 

Offline pqass

  • Frequent Contributor
  • **
  • Posts: 726
  • Country: ca
Re: HP 3478A: How to read/write cal SRAM
« Reply #184 on: March 22, 2024, 12:01:31 pm »
@pqpass, thank you for decoding my hex dump.

U502 is a 24-pin ceramic DIP with no window, and no stickers on it. I guess it must be prototype firmware. I don't have an EPROM reader so I can't do a dump. Maybe I should get one...

When comparing against my 6500, here's what I get:

...snip...

I used my bench power supply for the DC voltage tests except the last two, those are from a DMMcheck. The resistance tests are also from the DMMcheck. Looks like the amps ranges are clearly not calibrated, though the DC volts and ohms show very good results. This leads me to think, combined with the fact that the dump reads back the same '0x49' for all offsets < 0x20 that it may be due to the GPIB interface I'm using (0x20 = 32 = first printable char).

There may be some funny business going on with values at addresses <0x20 and >=0x80.   
Have you seen this (reply #134) version of a python script that corrects for some default string conversions that may be occurring.   Please re-run.

Otherwise, the meter tracks pretty close to the DMM6500 (except for the amps ranges).
« Last Edit: March 22, 2024, 12:06:40 pm by pqass »
 

Offline radar_macgyver

  • Frequent Contributor
  • **
  • Posts: 698
  • Country: us
Re: HP 3478A: How to read/write cal SRAM
« Reply #185 on: March 23, 2024, 04:58:35 am »
It seems like the Python string conversions were messing up both my code as well as the Prologix interface library that I found on github. The solution was to create a tcp socket directly to the converter rather than rely on the library. With that change, I get the following:

0000: 40 40 40 40 42 42 45 42  45 4f 43 4f 4c 4e 40 40 @@@@BBEB EOCOLN@@
0010: 40 40 41 42 42 44 45 41  45 4e 4b 40 40 40 40 40 @@ABBDEA ENK@@@@@
0020: 42 42 44 42 41 4c 4e 48  49 49 49 49 49 41 42 45 BBDBALNH IIIIIABE
0030: 4d 43 42 4b 48 40 40 40  40 40 40 42 44 44 41 44 MCBKH@@@ @@@BDDAD
0040: 4f 40 40 40 40 40 40 40  40 40 40 40 40 40 40 49 O@@@@@@@ @@@@@@@I
0050: 49 47 44 43 46 42 44 41  4c 45 4c 41 49 49 49 44 IGDCFBDA LELAIIID
0060: 42 47 41 4c 45 4c 42 4b  47 49 49 49 49 48 46 41 BGALELBK GIIIIHFA
0070: 4c 4c 42 41 4b 41 49 49  49 49 49 45 40 45 43 42 LLBAKAII IIIE@ECB
0080: 45 4b 4e 40 40 40 40 41  46 40 45 45 42 4f 4d 4d EKN@@@@A F@EEBOMM
0090: 49 49 49 49 49 47 41 4c  4c 4e 43 4a 41 49 49 49 IIIIIGAL LNCJAIII
00a0: 49 49 45 40 45 45 42 4d  4b 44 49 49 49 49 49 48 IIE@EEBM KDIIIIIH
00b0: 41 4d 4d 4e 42 49 4f 49  49 49 49 43 45 41 4d 43 AMMNBIOI IIICEAMC
00c0: 41 4c 4b 45 49 49 49 49  48 49 41 4d 4e 4e 44 49 ALKEIIII HIAMNNDI
00d0: 4c 40 40 40 40 40 40 40  40 40 40 40 40 40 49 49 L@@@@@@@ @@@@@@II
00e0: 47 44 43 46 41 4c 43 44  41 4c 44 40 40 40 40 40 GDCFALCD ALD@@@@@
00f0: 40 40 40 40 40 40 40 48  40 40 40 40 40 40 40 40 @@@@@@@H @@@@@@@@

************ hp3478util, (c) 2018-2020 fenugrec ************
entry#    offset        (rawgain)        gain        range
00        000225        25F3F        1.024929        30 mV DC
01        000012        24515        1.024515        300 mV DC
02        000002        2421C        1.024206        3 V DC
03        999991        25D32        1.024732        30 V DC
04        000000        24414        1.024414        300 V DC
05        000000        00000        1.000000        (Not used)
06        997436        241C5        1.024065        ACV
07        999427        1C5C2        1.006462        30 Ohm 2W/4W
08        999986        1CC21        1.005621        300 Ohm 2W/4W
09        999995        05325        1.005325        3 KOhm 2W/4W
0A        000016        0552F        1.005519        30 KOhm 2W/4W
0B        999997        1CCE3        1.005583        300 KOhm 2W/4W
0C        999995        0552D        1.005517        3 MOhm 2W/4W
0D        999998        1DDE2        1.006682        30 MOhm 2W/4W
0E        999935        1D31C        1.007306        300 mA DC
0F        999989        1DEE4        1.006784        3A DC
10        000000        00000        1.000000        (Not used)
11        997436        1C341        1.006341        300 mA/3A AC
12        000000        00000        1.000000        (Not used)

entry 0x00: OK (30 mV DC)
entry 0x01: OK (300 mV DC)
entry 0x02: OK (3 V DC)
entry 0x03: OK (30 V DC)
entry 0x04: OK (300 V DC)
entry 0x05 ((Not used)): bad cks (0x00) (unused entry)
entry 0x06: OK (ACV)
entry 0x07: OK (30 Ohm 2W/4W)
entry 0x08: OK (300 Ohm 2W/4W)
entry 0x09: OK (3 KOhm 2W/4W)
entry 0x0A: OK (30 KOhm 2W/4W)
entry 0x0B: OK (300 KOhm 2W/4W)
entry 0x0C: OK (3 MOhm 2W/4W)
entry 0x0D: OK (30 MOhm 2W/4W)
entry 0x0E: OK (300 mA DC)
entry 0x0F: OK (3A DC)
entry 0x10 ((Not used)): bad cks (0x00) (unused entry)
entry 0x11: OK (300 mA/3A AC)
entry 0x12 ((Not used)): bad cks (0x08) (unused entry)


There seems to be two 'regimes' for the gains, one for the voltage readings and the other for everything else.

Does this imply that there may be something wrong with the current sense part of the meter, given that it's so far off cal?
 

Offline m k

  • Super Contributor
  • ***
  • Posts: 2009
  • Country: fi
Re: HP 3478A: How to read/write cal SRAM
« Reply #186 on: March 23, 2024, 07:44:35 am »
Much better cal set.

Drain a battery and select a level where both meters remain in one range.
Then you can forget absolute values and concentrate to change.
Advance-Aneng-Appa-AVO-Beckman-Data Tech-Fluke-General Radio-H. W. Sullivan-Heathkit-HP-Kaise-Kyoritsu-Leeds & Northrup-Mastech-REO-Simpson-Sinclair-Tektronix-Tokyo Rikosha-Triplett-YFE
(plus lesser brands from the work shop of the world)
 

Offline pqass

  • Frequent Contributor
  • **
  • Posts: 726
  • Country: ca
Re: HP 3478A: How to read/write cal SRAM
« Reply #187 on: March 23, 2024, 03:04:33 pm »
There seems to be two 'regimes' for the gains, one for the voltage readings and the other for everything else.

Does this imply that there may be something wrong with the current sense part of the meter, given that it's so far off cal?

Good to see all the records pass now.

DCI and ACI just add a shunt and a three-stage amplifier+RMS converter in front of the ADC.  See the service guide schematic 1,2,3; pages 147,149, 152.   So if the DCV parts are fine then all I can think of is that someone over-amp'd it and changed the 0R1 shunt ever so slightly?  I'd check the fuse to confirm it's 3A.

Consider this an opportunity to re-cal just the DCI and ACI records.  See 4-61 DC Current Calibration (page 45) and 4-72 AC Current Calibration (page 46) in the service manual (link above).  The procedures require a calibrator but I'd just use a resistor+power supply then series connect with the 3478A and DMM6500.  You'll need to provide a 100mA and 1A current sources (100R and 10R @10V).  However, for the ACI, you'll need a 300mA 1KHz source; maybe a function generator+amplifier?  The great thing about this meter is that the source doesn't have to be precise since you can [inc|dec]rease the display value to match the DMM6500 reading; it figures out the cal entry from that.

Note: crc=ff means record passes validation.
Code: [Select]
$ ./verify.sh radar2.cal
000001 40 40 40 42 42 45 42 45 4f 43 4f 4c 4e  >@@@BBEBEOCOLN< 00: raw_offset=000225 raw_gain=25f3f offset=+000149 gain=1.024929 crc=ff  30 mV DC
00000e 40 40 40 40 41 42 42 44 45 41 45 4e 4b  >@@@@ABBDEAENK< 01: raw_offset=000012 raw_gain=24515 offset=+000010 gain=1.024515 crc=ff  300 mV DC
00001b 40 40 40 40 40 42 42 44 42 41 4c 4e 48  >@@@@@BBDBALNH< 02: raw_offset=000002 raw_gain=2421c offset=+000002 gain=1.024206 crc=ff  3 V DC
000028 49 49 49 49 49 41 42 45 4d 43 42 4b 48  >IIIIIABEMCBKH< 03: raw_offset=999991 raw_gain=25d32 offset=-000009 gain=1.024732 crc=ff  30 V DC
000035 40 40 40 40 40 40 42 44 44 41 44 4f 40  >@@@@@@BDDADO@< 04: raw_offset=000000 raw_gain=24414 offset=+000000 gain=1.024414 crc=ff  300 V DC
000042 40 40 40 40 40 40 40 40 40 40 40 40 40  >@@@@@@@@@@@@@< 05: raw_offset=000000 raw_gain=00000 offset=+000000 gain=1.000000 crc=00  <not used>
00004f 49 49 47 44 43 46 42 44 41 4c 45 4c 41  >IIGDCFBDALELA< 06: raw_offset=997436 raw_gain=241c5 offset=-002564 gain=1.024065 crc=ff  AC V
00005c 49 49 49 44 42 47 41 4c 45 4c 42 4b 47  >IIIDBGALELBKG< 07: raw_offset=999427 raw_gain=1c5c2 offset=-000573 gain=1.006462 crc=ff  30 Ohm 2W/4W
000069 49 49 49 49 48 46 41 4c 4c 42 41 4b 41  >IIIIHFALLBAKA< 08: raw_offset=999986 raw_gain=1cc21 offset=-000014 gain=1.005621 crc=ff  300 Ohm 2W/4W
000076 49 49 49 49 49 45 40 45 43 42 45 4b 4e  >IIIIIE@ECBEKN< 09: raw_offset=999995 raw_gain=05325 offset=-000005 gain=1.005325 crc=ff  3 kOhm 2W/4W
000083 40 40 40 40 41 46 40 45 45 42 4f 4d 4d  >@@@@AF@EEBOMM< 10: raw_offset=000016 raw_gain=0552f offset=+000014 gain=1.005519 crc=ff  30 kOhm 2W/4W
000090 49 49 49 49 49 47 41 4c 4c 4e 43 4a 41  >IIIIIGALLNCJA< 11: raw_offset=999997 raw_gain=1cce3 offset=-000003 gain=1.005583 crc=ff  300 kOhm 2W/4W
00009d 49 49 49 49 49 45 40 45 45 42 4d 4b 44  >IIIIIE@EEBMKD< 12: raw_offset=999995 raw_gain=0552d offset=-000005 gain=1.005517 crc=ff  3 MOhm 2W/4W
0000aa 49 49 49 49 49 48 41 4d 4d 4e 42 49 4f  >IIIIIHAMMNBIO< 13: raw_offset=999998 raw_gain=1dde2 offset=-000002 gain=1.006682 crc=ff  30 MOhm 2W/4W
0000b7 49 49 49 49 43 45 41 4d 43 41 4c 4b 45  >IIIICEAMCALKE< 14: raw_offset=999935 raw_gain=1d31c offset=-000065 gain=1.007306 crc=ff  300 mA DC
0000c4 49 49 49 49 48 49 41 4d 4e 4e 44 49 4c  >IIIIHIAMNNDIL< 15: raw_offset=999989 raw_gain=1dee4 offset=-000011 gain=1.006784 crc=ff  3A DC
0000d1 40 40 40 40 40 40 40 40 40 40 40 40 40  >@@@@@@@@@@@@@< 16: raw_offset=000000 raw_gain=00000 offset=+000000 gain=1.000000 crc=00  <not used>
0000de 49 49 47 44 43 46 41 4c 43 44 41 4c 44  >IIGDCFALCDALD< 17: raw_offset=997436 raw_gain=1c341 offset=-002564 gain=1.006341 crc=ff  300 mA/3A AC
0000eb 40 40 40 40 40 40 40 40 40 40 40 40 48  >@@@@@@@@@@@@H< 18: raw_offset=000000 raw_gain=00000 offset=+000000 gain=1.000000 crc=08  <not used>
0000f8 40 40 40 40 40 40 40 40                 >@@@@@@@@< 19: <padding>
 

Offline Dan N

  • Contributor
  • Posts: 15
  • Country: us
Re: HP 3478A: How to read/write cal SRAM
« Reply #188 on: April 02, 2024, 04:28:28 am »
Attached is my verify.sh script (slightly updated from my #123 post; added switch to od command to show duplicate lines).
Very clever script.  :-+

I noticed the leading 0 in some positive offsets causes strtonum to interpret it as octal, for example:
Code: [Select]
raw_offset=000611 offset=+000393
Adding a leading "+" to the string at conversion forces decimal interpretation:
Code: [Select]
Change:
  coset = strtonum(oset);
  if (strtonum(oset)>499999) coset -= 1000000;

to:
  coset = strtonum("+" oset);
  if (coset>499999) coset -= 1000000;
 
The following users thanked this post: pqass

Offline pqass

  • Frequent Contributor
  • **
  • Posts: 726
  • Country: ca
Re: HP 3478A: How to read/write cal SRAM
« Reply #189 on: April 02, 2024, 02:16:38 pm »
Thank you Dan N!

See latest version below (remove the .txt ending).
I've taken the opportunity to clean it up, add error checks, and better comments.
« Last Edit: April 02, 2024, 02:47:56 pm by pqass »
 
The following users thanked this post: MarkL, coromonadalix

Offline radar_macgyver

  • Frequent Contributor
  • **
  • Posts: 698
  • Country: us
Re: HP 3478A: How to read/write cal SRAM
« Reply #190 on: April 15, 2024, 04:48:50 am »
I replaced the battery on my 3478A prototype without losing the existing cal. After that, I figured I will try to cal the DCI ranges per the instructions in the service manual, but I found that I was unable to switch the instrument into cal mode even though I moved the front panel cal enable switch to the vertical position. I wanted to test if the signal was making it to the main board (in case there was a bad wiper), and found that the board is somewhat different from the one shown in the service manual. I don't have a U515 anywhere on the board, this is the dual 4-input NAND gate used to gate the WR signal to the CMOS RAM.

It almost looks like the switch is simply not connected to anything on the main board - probing the wiper while turning the switch between its two positions does not change the voltages on either terminal of the switch. Pin 9 Maybe they hadn't implemented the self-calibration routine in the prototype.

How does the firmware know what position the cal enable switch is in (in the non-prototype version)? It seems like S550 enables the microprocessor's WR signal to get connected to U512's R/W pin. Without any direct connection to the switch input, how does the micro know that U512 is not write-enabled and put up the "ENABLE CAL" message?

Edit: removed an incomplete sentence
« Last Edit: April 15, 2024, 01:24:19 pm by radar_macgyver »
 

Offline pqass

  • Frequent Contributor
  • **
  • Posts: 726
  • Country: ca
Re: HP 3478A: How to read/write cal SRAM
« Reply #191 on: April 15, 2024, 06:13:31 am »
How does the firmware know what position the cal enable switch is in (in the non-prototype version)? It seems like S550 enables the microprocessor's WR signal to get connected to U512's R/W pin. Without any direct connection to the switch input, how does the micro know that U512 is not write-enabled and put up the "ENABLE CAL" message?

U515 should be just behind the LCD and in front of the red relays.  See attached photo.

I think it was mentioned earlier in this thread that the meter tries to periodically write alternating values into location 0 of the cal ram. If a new value is written and it sticks, then it's in cal enable mode.  Note, you must be aligned perfectly vertical in the detent; a couple of degrees either way won't close the switch.
 

Offline m k

  • Super Contributor
  • ***
  • Posts: 2009
  • Country: fi
Re: HP 3478A: How to read/write cal SRAM
« Reply #192 on: April 15, 2024, 09:48:12 am »
TP6 is write, active low, cal switch is letting it through.
You can scope RAM pin 20, it goes low for write.

Middle of manual Sep-87 ed. 2 E0987 has another set of schematics.
There figure 6-5 cal uses C and D parts of regular two input NOR U515.
Table 6-10 replaces 7420 to 7402.
Advance-Aneng-Appa-AVO-Beckman-Data Tech-Fluke-General Radio-H. W. Sullivan-Heathkit-HP-Kaise-Kyoritsu-Leeds & Northrup-Mastech-REO-Simpson-Sinclair-Tektronix-Tokyo Rikosha-Triplett-YFE
(plus lesser brands from the work shop of the world)
 

Offline radar_macgyver

  • Frequent Contributor
  • **
  • Posts: 698
  • Country: us
Re: HP 3478A: How to read/write cal SRAM
« Reply #193 on: April 15, 2024, 01:23:38 pm »
See below for a pic of my meter's front end - U515 is not at the location indicated by the assembly drawing in the service guide. Another thing that I had started to type up but forgot to finish is that the schematic indicates pin 9 from the front panel board carries the Cal Enable signal. On my board, this pin is grounded. In the attached picture, you can see the trace from the front panel connection is a thicker one, that connects to the ground plane.

I think I just have the older rev board, referenced by the schematic figure 6-5 that m k mentioned above. The difference is that while that schematic shows the two-input NOR gates as U515, on my board this is labeled U508 (part number is 74LS02). Interestingly, the theory of operation section 7-F-63 specifies U508 as the device that drives the CMOS RAM's R/W pin. They must not have updated the text after the schematic change.

It also turns out the plastic tab that holds the cal enable switch wiper was very brittle and a piece of it broke off while I was probing the wiper so it probably wasn't making good contact. I soldered a small jumper between pin 10 of the front panel cable. When grounded, the display shows an extra 'C' indicating cal mode.

I attempted a calibration of the DCI 300 mA range and while the zero cal worked, the 1/3 scale cal gave a 'value error'. I measured the shunt resistor R107 using the 4-wire mode on my DMM6500 and it showed 0.098 ohm, so about a 2% error. This should not result in the nearly 25% error observed in the readings. The fuse installed is rated 2A.

Just for fun I tried running the cal procedure again and it worked. Not clear why it failed the first time around - maybe because the initial error was so large? Repeated this in DCI 3A and all seems well. I verified the results with my DMMcheck and readings were within 0.001 mA.

The service manual seems to indicate that a separate cal for the AC current is not required since the cal values for AC current are derived from DC current, though mine still showed the same ~25% error it used to. Will attempt an ACI cal, but I need to borrow some equipment from work. Thanks all for the help with this!
 
The following users thanked this post: pqass

Offline m k

  • Super Contributor
  • ***
  • Posts: 2009
  • Country: fi
Re: HP 3478A: How to read/write cal SRAM
« Reply #194 on: April 15, 2024, 03:24:21 pm »
Figure 7-G-5 (03478-66501) is the older schematics.
Figure 6-5 (C3478-66501) is the newer one, with 7402.

So your machine has a newer configuration.

What kind of U502 you have?
Section 6-25 says that revision D changes it to 28 pin chip.
Advance-Aneng-Appa-AVO-Beckman-Data Tech-Fluke-General Radio-H. W. Sullivan-Heathkit-HP-Kaise-Kyoritsu-Leeds & Northrup-Mastech-REO-Simpson-Sinclair-Tektronix-Tokyo Rikosha-Triplett-YFE
(plus lesser brands from the work shop of the world)
 

Offline dietert1

  • Super Contributor
  • ***
  • Posts: 2073
  • Country: br
    • CADT Homepage
Re: HP 3478A: How to read/write cal SRAM
« Reply #195 on: April 16, 2024, 11:47:12 am »
Just managed to save the calibration of our HP 3478A. Thanks to all who contributed!

Code: [Select]
HP 3478A calibration data
cadt.de 2024-04-16

cal[0] O
0 @@@ACC A@LDM MJ 255 000133 10C4D 133 1.09637
1 @@@@AD AOALN LO 255 000014 1F1CE 14 1.09058
2 @@@@@B AO@BO ML 255 000002 1F02F 2 1.09019
3 IIIIIC AOMMN IG 255 999993 1FDDE -7 1.08668
4 IIIIII AONAD JF 255 999999 1FE14 -1 1.08814
5 @@@@@@ @@@@@ @@ 0 000000 00000 0 1.00000
6 IIIAIB AO@OC KF 255 999192 1F0F3 -808 1.08993
7 IIIBAH ANDL@ KJ 255 999218 1E4C0 -782 1.08360
8 IIICBE AMCBB LE 255 999325 1D322 -675 1.07322
9 IIIIC@ AMDLD KF 255 999930 1D4C4 -70 1.07364
10 IIIIIC AMOMM IH 255 999993 1DFDD -7 1.06867
11 @@@@@@ ALMEN MB 255 000000 1CD5E 0 1.05748
12 @@@@@@ AMLEL MD 255 000000 1DC5C 0 1.06646
13 @@@@@@ AMNOE LO 255 000000 1DEF5 0 1.06795
14 IIIHCD BMMML J@ 255 999834 2DDDC -166 1.16666
15 IIIIHD BLMND JB 255 999984 2CDE4 -16 1.15684
16 @@@@@@ @@@@@ @@ 0 000000 00000 0 1.00000
17 IIIAIB AO@OC KF 255 999192 1F0F3 -808 1.08993
18 @@@@@@ @@@@@ @@ 0 000000 00000 0 1.00000
cal[248..] @@@@@@@@

Regards, Dieter
 

Offline radar_macgyver

  • Frequent Contributor
  • **
  • Posts: 698
  • Country: us
Re: HP 3478A: How to read/write cal SRAM
« Reply #196 on: April 16, 2024, 12:35:31 pm »
Figure 7-G-5 (03478-66501) is the older schematics.
Figure 6-5 (C3478-66501) is the newer one, with 7402.

So your machine has a newer configuration.
Got it - however, the documentation is still a bit confusing since the schematics show the NOR gates as U515, while the text(and my board) references U508. In the schematic, U508 is a hex inverter.

What kind of U502 you have?
Section 6-25 says that revision D changes it to 28 pin chip.
Mine is a 20-pin DIP.
 

Offline m k

  • Super Contributor
  • ***
  • Posts: 2009
  • Country: fi
Re: HP 3478A: How to read/write cal SRAM
« Reply #197 on: April 16, 2024, 04:06:39 pm »
Seems that your board is at least partially renumbered.
Few pictures would be nice.

Earlier U502 is a ROM chip, maybe it's missing.
Older versions had two MCUs, there analog side has already embedded its code.
Maybe your version has digital side code embedded also.

Your earlier picture has a chip above C512 and U507 is originally placed.
So I'm assuming your board still has both MCUs.
Advance-Aneng-Appa-AVO-Beckman-Data Tech-Fluke-General Radio-H. W. Sullivan-Heathkit-HP-Kaise-Kyoritsu-Leeds & Northrup-Mastech-REO-Simpson-Sinclair-Tektronix-Tokyo Rikosha-Triplett-YFE
(plus lesser brands from the work shop of the world)
 

Offline radar_macgyver

  • Frequent Contributor
  • **
  • Posts: 698
  • Country: us
Re: HP 3478A: How to read/write cal SRAM
« Reply #198 on: April 17, 2024, 05:39:28 am »
My bad - I thought you were asking about the cal RAM - the program ROM is a 24 pin ceramic DIP, no window and no label. Please see attached image of the board. The battery used is a new one I installed a few days ago, it's a half-AA Lithium cell.
 

Offline m k

  • Super Contributor
  • ***
  • Posts: 2009
  • Country: fi
Re: HP 3478A: How to read/write cal SRAM
« Reply #199 on: April 17, 2024, 04:03:30 pm »
Yes, documentation is still more than a bit confusing.
I've seen rev C with 28 pin ROM and your machine has 7402 for cal.
Maybe 7402 was also the original design.

Normally board info is under rear inputs.
Advance-Aneng-Appa-AVO-Beckman-Data Tech-Fluke-General Radio-H. W. Sullivan-Heathkit-HP-Kaise-Kyoritsu-Leeds & Northrup-Mastech-REO-Simpson-Sinclair-Tektronix-Tokyo Rikosha-Triplett-YFE
(plus lesser brands from the work shop of the world)
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf