It would be nice to be able to write the 3458a cal RAM. However, the 3458a is designed to make this hard, to protect the calram against things like power failures and brownouts.
This is my preliminary writeup on the protection circuit. Any thoughts invited and welcome!
The safety circuit, once activated, enables RAM write after about 256us. RAM write remains enabled for about 16ms. It cannot be retriggered, you have to go through the delay cycle.
There is a signal CALWE that indicates that the RAM write is enabled.
So the write process is:
- trigger safety circuit through port write (not sure if there is a port write in HP BASIC, but I don't think so)
- wait until CALWE goes true (CALWE read or 256us)
- write to CALRAM until CALWE goes false (after about 16ms)
Possible approaches:
- see if there is a way to do port writes in 3458a BASIC
- write some 68k code that can trigger a port write
- then load from BASIC
- or do a block write from other memory
- or create a routine that lets us tweak parameters.
Longer notes:
The meter writes bit 7 high to its SRAM control port. (U800, 74HCT273)This write triggers an 8-bit counter that is clocked at 500kHz. (U135 A+B, 74HCT393)When the top bit sets (after 128 cycles, so 256us) the circuit:
- Opens the write gate, which runs for 14 bits = 8192 counts, 16.4ms (U131 74HCT4020)
- Sets a bit indicating that the CALRAM will accept writes
When the write gate is enabled, you have about 16 ms to write to the calram (8192/500kHz).
If you jump the middle pin of JM132 (remove the jumper) to pin 10 of U908C, write enable is connected directly to the CALRAM chip and bypasses the memory protection circuitry. So from there, it should be possible to write a BASIC routine that can write the CALRAM.
This approach might be useful for debug.