Electronics > Repair

HP 3478A: How to read/write cal SRAM

<< < (31/41) > >>

djrm:

--- Quote from: lmester on March 15, 2024, 01:23:53 pm ---
You may want to try a different AR488 firmware version and see if this fixes your problem.

I recently had users of my software getting checksum errors when they tried to read the meter calibration. I found that this was caused by problems with specific AR488 firmware versions. My program works with AR488 0.49.14 but fails with AR488 0.51.18.

--- End quote ---

I'm very happy to report that the problem has gone away using AR488 V0.49.14


--- Code: ---Version 12-29-22
Gain encode/decode algorithm thanks to: Steve1515 (EEVblog) and fenugrec (EEVblog).
Windows XP Service Pack 3 Platform ID 2
Config file loaded.
Arduino COM delay 1100ms
Debug ON.
Command delay = 0ms.
Max COM port = 64.
OC:Open COM33 CheckCom.
CheckCom start COM33
CheckCom end CreateFileA COM33
CheckCom port found
CheckCom end CloseHandle COM33
OC:Open COM33 open port.
OC:Open COM33 OK.
CA:Start CheckAdapter on COM33
CA:Check Prologix GPIB adapter. ProVer =:"GPIB"
QS: Send:"++ver" Reply:""
CA:Prologix not found. ++ver retry for Arduino.
CA:Retry ++ver (Arduino boot delay)
-r CA:Retry: Found Prologix adapter (Arduino retry).
CA:Exit checkAdapter on COM33
COM port set to COM33
IG:Start InitGPIB
IG:Find Prologix GPIB adapter.
IG:ProVer srch:"GPIB"
IG:Found Prologix adapter.
IG:set ++mode 1.
IG:set eot_enable 0.
IG:set read timeout:++read_tmo_ms 3000
IG:SetGPIB Address ++addr 23 success.
IG:set EOI 0.
IG:set EOS 0.
IG:Set auto talk mode off: ++auto 0  success.
IGT:QSB result 1
Instrument address set to GPIB 23
3478A using current instrument settings.
3478A connected.
Instrument start
Instrument stop/local
Instrument stop/local
CF:LogPath: Z:\home\david\Downloads\HP3478A\log\:Z:\home\david\Downloads\HP3478A\cfg\
Reading calibration data.
**********
Verify checksums.
@@@BICADLNELM : CkSum = (205 + 50) Checksum OK.
@@@@BIADLALMF : CkSum = (214 + 41) Checksum OK.
@@@@@@ACCA@OG : CkSum = (247 +  8) Checksum OK.
IIIIIEADOCCKC : CkSum = (179 + 76) Checksum OK.
@@@@@@ADLDNML : CkSum = (220 + 35) Checksum OK.
@@@@@@@@@@@OO : CkSum = (255 +  0) Checksum OK.
IIHI@HAEMCEKI : CkSum = (185 + 70) Checksum OK.
IIIF@CALNCOJN : CkSum = (174 + 81) Checksum OK.
IIIIEHALNBAK@ : CkSum = (176 + 79) Checksum OK.
IIIIIE@EEBDKM : CkSum = (189 + 66) Checksum OK.
IIIIIE@EBB@LD : CkSum = (196 + 59) Checksum OK.
IIIIIF@EABEKO : CkSum = (191 + 64) Checksum OK.
IIIIIF@ECL@KH : CkSum = (184 + 71) Checksum OK.
IIIIIFALOOAJ@ : CkSum = (160 + 95) Checksum OK.
IIIIGDBD@EBLC : CkSum = (195 + 60) Checksum OK.
IIIIIGBD@OOJG : CkSum = (167 + 88) Checksum OK.
@@@@@@@@@@@OO : CkSum = (255 +  0) Checksum OK.
IIHI@HBDOLNJE : CkSum = (165 + 90) Checksum OK.
@@@@@@@@@@@OO : CkSum = (255 +  0) Checksum OK.

Reading calibration data complete.
Calibration data checksum valid.
Calibration data saved to:Z:\home\david\Downloads\HP3478A\cfg\HP3478A.cal
--- End code ---

I'll study the sketch differences to try and identify the problem, but its not too important for me now.
( I was using latest version 0.51.28 before )
update: the AR488 code appears to have been extensively refactored between the non-working and working versions. it will not be trivial to find the cause of the problem.

hp3478a_utils is now happy with the read calibration too:

--- Code: ---david@I7MINT:~/Github/hp3478a_utils$ ./hp3478util
************ hp3478util, (c) 2018-2020 fenugrec ************
some missing args.
usage:
***** file input, if applicable
--ascfile -a <filename> ASCII CAL dump
--binfile -b <filename> binary CAL dump (one byte per nibble)
***** action : specify one
-t  test checksums of every record
-p <outfile> create dump with processed bytes (clear 4 higher bits)
-d  dump raw data for every record
david@I7MINT:~/Github/hp3478a_utils$ ./hp3478util -a HP3478A.cal -t
************ hp3478util, (c) 2018-2020 fenugrec ************
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: OK ((Not used))
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: OK ((Not used))
entry 0x11: OK (300 mA/3A AC)
entry 0x12: OK ((Not used))
david@I7MINT:~/Github/hp3478a_utils$ ./hp3478util -a HP3478A.cal -d
************ hp3478util, (c) 2018-2020 fenugrec ************
entry # offset (rawgain) gain range
00 000293 14CE5 1.013585 30 mV DC
01 000029 14C1C 1.013606 300 mV DC
02 000000 13310 1.013310 3 V DC
03 999995 14F33 1.013933 30 V DC
04 000000 14C4E 1.013638 300 V DC
05 000000 00000 1.000000 (Not used)
06 998908 15D35 1.014735 ACV
07 999603 1CE3F 1.005829 30 Ohm 2W/4W
08 999958 1CE21 1.005821 300 Ohm 2W/4W
09 999995 05524 1.005524 3 KOhm 2W/4W
0A 999995 05220 1.005220 30 KOhm 2W/4W
0B 999996 05125 1.005125 300 KOhm 2W/4W
0C 999996 053C0 1.005260 3 MOhm 2W/4W
0D 999996 1CFF1 1.005891 30 MOhm 2W/4W
0E 999974 24052 1.024052 300 mA DC
0F 999997 240FF 1.023989 3A DC
10 000000 00000 1.000000 (Not used)
11 998908 24FCE 1.023858 300 mA/3A AC
12 000000 00000 1.000000 (Not used)

--- End code ---

Photo shown my adapter.
Thanks everyone for all the help, very much appreciated, David.



Attached image shows difference in read cal using two versions of AR488

lmester:
Here is data from a  user of my program that had the same checksum fail. He also had a checksum fail on the first and third cal entries. That might not be a coincedence. I need to do some more testing and report results to the AR488 author.

djrm:

--- Quote from: lmester on March 16, 2024, 05:04:50 am ---Here is data from a  user of my program that had the same checksum fail. He also had a checksum fail on the first and third cal entries. That might not be a coincedence. .

--- End quote ---
There is a bit of a pattern showing.
The third line has an unusual character in the first position, I would expect to see an '@'
The first line checksum is off by one. possibly caused by the wrong character in the 10th position.
The same character appears in the first position of the third line and the 10th position in the first line.

Possible causes are anybody's guess, maybee bad address sent or memory overwriting of received data...
update, just having a look at the AR88 code structure
 Screenshot from 2024-03-16 09-53-55.png (666.19 kB. 1957x1665 - viewed 136 times.)
Kind regards, David.

lmester:
I just tested with my AR488. Checksum fails on first and third entry when using 0.51.18.


--- Code: ---AR488 GPIB controller, ver. 0.49.14, 02/03/2021
Reading calibration data.
**********
Verify checksums.
@@@CA@BLLLNLG : CkSum = (199 + 56) Checksum OK.
@@@@CABLLCOLO : CkSum = (207 + 48) Checksum OK.
@@@@@DBLLOELM : CkSum = (205 + 50) Checksum OK.
IIIIIDAEBAOKF : CkSum = (182 + 73) Checksum OK.
@@@@@@AEBMNML : CkSum = (220 + 35) Checksum OK.
@@@@@@@@@@@OO : CkSum = (255 +  0) Checksum OK.
IIIE@BADODEL@ : CkSum = (192 + 63) Checksum OK.
IIII@D@E@MNKG : CkSum = (183 + 72) Checksum OK.
IIIIIA@EDNNJL : CkSum = (172 + 83) Checksum OK.
IIIIII@ECDDKI : CkSum = (185 + 70) Checksum OK.
IIIIII@EABLKE : CkSum = (181 + 74) Checksum OK.
IIIIII@EBBOKA : CkSum = (177 + 78) Checksum OK.
IIIIII@EBMAKD : CkSum = (180 + 75) Checksum OK.
IIIIII@EBDOJO : CkSum = (175 + 80) Checksum OK.
@@@BF@CNOE@MB : CkSum = (210 + 45) Checksum OK.
@@@@BECN@@MMJ : CkSum = (218 + 37) Checksum OK.
@@@@@@@@@@@OO : CkSum = (255 +  0) Checksum OK.
IIIE@BCLCOBKJ : CkSum = (186 + 69) Checksum OK.
@@@@@@@@@@@OO : CkSum = (255 +  0) Checksum OK.

Reading calibration data complete.
Calibration data checksum valid.
Calibration data saved to:D:\HP3478A_6\cfg\HP3478A.cal

#################################################

AR488 GPIB controller, ver. 0.51.18, 26/02/2023
Reading calibration data.
**********
Verify checksums.
@@@CA@BLLGNLG : CkSum = (199 + 51) Checksum Fail.
@@@@CABLLCOLO : CkSum = (207 + 48) Checksum OK.
G@@@@DBLLOELM : CkSum = (205 + 57) Checksum Fail.
IIIIIDAEBAOKF : CkSum = (182 + 73) Checksum OK.
@@@@@@AEBMNML : CkSum = (220 + 35) Checksum OK.
@@@@@@@@@@@OO : CkSum = (255 +  0) Checksum OK.
IIIE@BADODEL@ : CkSum = (192 + 63) Checksum OK.
IIII@D@E@MNKG : CkSum = (183 + 72) Checksum OK.
IIIIIA@EDNNJL : CkSum = (172 + 83) Checksum OK.
IIIIII@ECDDKI : CkSum = (185 + 70) Checksum OK.
IIIIII@EABLKE : CkSum = (181 + 74) Checksum OK.
IIIIII@EBBOKA : CkSum = (177 + 78) Checksum OK.
IIIIII@EBMAKD : CkSum = (180 + 75) Checksum OK.
IIIIII@EBDOJO : CkSum = (175 + 80) Checksum OK.
@@@BF@CNOE@MB : CkSum = (210 + 45) Checksum OK.
@@@@BECN@@MMJ : CkSum = (218 + 37) Checksum OK.
@@@@@@@@@@@OO : CkSum = (255 +  0) Checksum OK.
IIIE@BCLCOBKJ : CkSum = (186 + 69) Checksum OK.
@@@@@@@@@@@OO : CkSum = (255 +  0) Checksum OK.

Reading calibration data complete.
Calibration data not saved. Invalid checksum!

--- End code ---

djrm:

--- Quote from: lmester on March 16, 2024, 07:50:05 pm ---I just tested with my AR488. Checksum fails on first and third entry when using 0.51.18.
(note, I changed device ID back to standard 23 from 18 during investigation)

--- End quote ---

Your data has a very similar pattern to what I've seen.

btw, the program HP3478ACalibration.exe failed with a misleading version error with v0.51.18 though reads calibration successfully with v0.49.14

--- Code: ---PS C:\Users\David\Downloads\HP3478ACalibration_20200126> .\HP3478ACalibration.exe -f cal.txt -r 18
Reading calibration data from instrument...
ERROR: Failed while reading calibration data from instrument.

Extended Error Information:
Could not communicate with instrument.
PS C:\Users\David\Downloads\HP3478ACalibration_20200126> .\HP3478ACalibration.exe -f cal.txt -r 18
Reading calibration data from instrument...
ERROR: Failed while reading calibration data from instrument.

Extended Error Information:
Invalid GPIB adapter version string.

--- End code ---

Navigation

[0] Message Index

[#] Next page

[*] Previous page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod