| Electronics > Repair |
| HP 3478A: How to read/write cal SRAM |
| << < (28/41) > >> |
| bingo600:
Now i get this output from hp3478util.c (attached) https://github.com/fenugrec/hp3478a_utils --- Code: --- * On lnux link with -lm : gcc -o hp3478util hp3478util.c -lm * And - #define WITH_GPIB 0 --- End code --- --- Code: ---Raspi$ ./hp3478util -d -b hp3478a-cal-raspi3-2022022501.cal ************ hp3478util, (c) 2018-2020 fenugrec ************ entry # offset (rawgain) gain range 00 000484 2FCC4 1.018564 30 mV DC 01 000045 2FE5D 1.018847 300 mV DC 02 000004 2E355 1.018355 3 V DC 03 999996 2E103 1.018103 30 V DC 04 000000 2D544 1.017544 300 V DC 05 000000 00000 1.000000 (Not used) 06 999310 144DD 1.014367 ACV 07 999831 05453 1.005453 30 Ohm 2W/4W 08 999982 1CE0E 1.005798 300 Ohm 2W/4W 09 999999 05210 1.005210 3 KOhm 2W/4W 0A 999999 05034 1.005034 30 KOhm 2W/4W 0B 999998 05F1C 1.004906 300 KOhm 2W/4W 0C 999998 05F55 1.004955 3 MOhm 2W/4W 0D 999998 1C41C 1.006406 30 MOhm 2W/4W 0E 000147 3ED20 1.027720 300 mA DC 0F 000015 3EEEC 1.027776 3A DC 10 000000 00000 1.000000 (Not used) 11 999155 24313 1.024313 300 mA/3A AC 12 000000 00000 1.000000 (Not used) Raspi$ ./hp3478util -t -b hp3478a-cal-raspi3-2022022501.cal ************ 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 ((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 (0x00) (unused entry) --- End code --- |
| djrm:
Hello everyone, I'm a new user of an HP3478A Multimeter, it seems to be working well though I'm keen to service it by changing caps and battery. I have built an AR488, its working with HP3478A.exe in both Windows and Linux under Wine, I also have 'HP 3478A.exe' working in Windows only. When I try to save the calibration using HP3478A.exe it always fails with a couple of checksum errors, the multimeter doesnt show and checksum errors in use. I think the transfer is getting corupted. I have copied the transfered data out of the log window and massaged it to be read with hp3478a_utils to try and understand what could be the problem, with a bit of tinkering I can get all lines to have good chacksums, see diffs below. Here is the dump before editing: --- Code: ---david@I7MINT:~/Github/hp3478a_utils$ ./hp3478util -a djrm-cal.txt -t ************ hp3478util, (c) 2018-2020 fenugrec ************ entry 0x00 (30 mV DC): bad cks (0xFE) entry 0x01: OK (300 mV DC) entry 0x02 (3 V DC): bad cks (0x0C) 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)) --- End code --- diff showing checksum correction, found by guesswork! Here is the test and dump after editing the two dodgy lines. --- Code: ---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)) --- End code --- --- Code: ---david@I7MINT:~/Github/hp3478a_utils$ ./hp3478util -a djrm-cal2.txt -d ************ hp3478util, (c) 2018-2020 fenugrec ************ entry # offset (rawgain) gain range 00 000293 14CD5 1.013575 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 --- My question is what could be the problem?, is it something to do with the AR488 software? I have been looking for another utility to capture the calibration data but have not found anything yet. Any help resolving this will be greatly appreciated. Kind regards, David. |
| Kleinstein:
The AR488 is not fully at the GIPB standard when it comes to the drive strength and detection levels. So with some meters there is a chance to get borderline cases from the hardware side and thus possible bit errors. This is more like a hardware limitation as a softwas fault. In some cases the software side may get a little better result with added delays / reduced speed. I may need tinkering with pull-up resistors and speed settings, maybe the supply voltage. |
| djrm:
--- Quote from: Kleinstein on March 14, 2024, 05:54:13 pm ---.I may need tinkering with pull-up resistors and speed settings, maybe the supply voltage. --- End quote --- Hi & Thanks for answering, I have tried adding delays and reducing the baudrate to 9600 without success, it seems odd to me that the error is always the same whatever I try. i.e. checksum error on first and third cal lines. I tried sending 'W' 0x00 CRLF to see if I could get an individual byte back but never received anything at all. Kind regards, David. |
| Kleinstein:
Getting the error always at the same position is indeed a bit odd. Are other tranfers (e.g. repeated status / version reading) also getting occasional tranfer errors ? The baud rate should be the least problem. The RS232 end of the AR488 should normally work OK - though some of the USB to UART solution can be buggy too. At least for the receive side there should be some buffering and thus not direct link from baud rate to GPIB speed. The weak point are the levels at the GPIB bus - AFAIK the simpel AR488 solution uses the µC pins directly and no extra drivers. This solution is borderline with some instruments. It can be worth looking at the signal levels with a scope. |
| Navigation |
| Message Index |
| Next page |
| Previous page |