Hi Alberto,
Awesome, that has really helped.
It appears that the files don't contain the full command list, there seems to be missing values at the beginning of read (the first floating point number read from the LCR meter is half way through the saved constants file you gave. It also appears that the write file contains a bit of the checksum calculation process.. as there are only 3 write operations to select words.
I have started to play with what I have found in the file and I have dumped a range of ram from my instrument using the following undocumented commands.
CMD Returned Notes
------------ ---------------- --------------------------------------------
KCx No idea. the command and parameter is accepted for x = 2,3,4,5
This command was in the CAL.exe and perhaps is something about saving the
calibration constants. Perhaps the 2-5 relate to the 100, 1K, 10K, 100K standards?
as it looks a bit like the number of zeros...
?ID 2322,2.00 Needs cal jumber, otherwise Err32.
Firmware version 2.0, Keithley 3322 (not sure about the "2322")
`~1,0xxxxxx 0yyyy Read an integer at HEX address xxxxxx. Note this is used on
2 byte boundaries only.
This seems to be used to read back RAM locations to compute a checksum,
there are many reads in sections, then a single write.
`~1,0xxxxxx,0yyyy Write hex value yyyy to hex address xxxxxx.
This seems to be used by the CAL.exe to store a checksum.
`~3,0xxxxxx floating point number Read an 8 byte floating point number. Note this is used on
8 byte boundaries only
`~2,0xxxxxx floating point number This also works, but appears to give different results to the "3" version.
different format or floating point number size? it is not used in the calibration
sample data.
The type numbers "1, 2, 3" may be related to the NR1, NR2, NR3 formats for the normal GPIP commands as documented in the operation manual.
The read commands don't seem to need the calibration jumper enabled, but I'm guessing the write one will. I don't intend to test writes at this stage as I really don't want to mess up my unit. Also strange that the ?ID command needs the jumper.
The following is a dump of the ram integers and associated floating point numbers from my ram.
0001070: 3F84 9.99978241E-03
0001072: 7AC4
0001074: 1335
0001076: 915E
0001078: 3F10 6.28431473E-05
000107a: 7955
000107c: 0C92
000107e: 6A82
0001080: 3F84 9.99980868E-03
0001082: 7AC7
0001084: 99E3
0001086: 490C
0001088: 3F20 1.25666890E-04
000108a: 78AE
000108c: 5C78
000108e: E249
I tried converting the number into standard double format and dumping bytes but it doesn't quite work. So I'm guessing it isn't the standard PC format. Will look at this later.
More detail coming as I work out more.
Cheers,
Ash.