The STM program performs data acquisition for the scanning tunneling microscope. PASCAL routines are used for controlling file i/o and handling menus for scan parameters, and ASSEMBLER routines are used for most of the communications with the A/D and D/A converters, parallel ports, and graphics devices.
A/D 0 - (board 1, A/D 0) - topography A/D 1 - (board 1, A/D 1) - tunnel current A/D 2 - (board 1, A/D 2) - conductance (dI/dV) D/A 0 - (board 1, D/A 0) - x scan voltage D/A 1 - (board 1, D/A 1) - y scan voltage D/A 2 - (board 2, D/A 0) - bias voltage (to sample) D/A 3 - (board 2, D/A 1) - z offset voltage parallel port from board 1: bit 0 (out) - inchworm interface bit 1 (out) - inchworm interface bit 2 (out) - tunnel current hold bit 3 (out) - tunnel current shunt bit 4 (out) - inchworm interface bit 5 (out) - inchworm interface bit 0 (in) - xy swap bit 1 (in) - rotation bit 2 (in) - z amplification bit 3 (in) - z amplification bit 4 (in) - z amplification
The A/D and D/A converters used are all 16-bit, with a range of +/- 10 V. Thus, the smallest voltage increment is 20 V/2^16 = 0.305 millV.
Graphics devices include an old Tektronix 4006 terminal for displaying line scans for images and spectra, and a Imagraph card which displays grey-scale images on a 1024x1024 color monitor.
The memory capacity of the old IBM PC-AT used for the data acquisition is approximately 3 megabytes. This represents a limit on the amount of data which may be stored in a single data acquistion event. For example, when storing images, a 1024x1024 image will require 1 megaword = 2 megabytes (1 16-bit word = 2 bytes), which is no problem to acquire and store. However, acquiring two such images simultaneously would exceed the storage capacacity of the machine. In that case the user must use a smaller image size; about 1024x700, with two images (channels), can be acquired with the current memory limitation.
type 1 data file format: 20 integers followed by integer data of image header: ======================================================================================= | 1 | n_row | n_col | X_start | dX | Y_start | dY | Z_gain | speed | scan_cal | | | | | bits | bits | bits | bits | | | pm/bit | ======================================================================================= ============================================================================================ | i_cal | z_cal | direction | orientation | vbias | v_cal | nchan | nv | image | iexp | | fA/bit | pm/bit | 1=bi,2=uni | 1=xy,2=rot | bit | uv/bit | | | | | ============================================================================================ z_cal = displacement of z piezo for gain of 100 on KEPCO / voltage into KEPCO as read by a 16 bit, 10 V bipolar A/D image type = 0 standard image 1 conductance image 10 first double image 11 second double image 20 topography for multiple i/v's 30 fast scan image 40+i multiple images, i=image number type 2 data file format: 20 integers followed by integer data of i/v curve including scans up and scans down header: ================================================================================ | 2 | nv | 2 | vstart | vstep | speed | v_cal | i_exp | i_cal | nav | | | | | bits | bits | | uv/bit | | fA/bit | | ================================================================================ ============================================================== | vbias | delay | z offset | niv | zcal | nchan | admax | | | ms | | | pm/bit | | | ============================================================== type 3 data file format: 20 integers followed by integer data of s/v curve including scans up and scans down header: ================================================================================ | 3 | nv | 2 | vstart | vstep | speed | v_cal | z_cal | z_gain | nav | | | | | bits | bits | | uv/bit | pm/bit | | | ================================================================================ ========================== | vbias | delay | i_cal | | | ms | fA/bit | ========================== type 4 data file format: 20 integers followed by integer data of i/z curve including scans up and scans down header: ================================================================================= | 4 | nz | 2 | zstart | zstep | speed | z_cal | i_exp | i_cal | nav | | | | | bits | bits | | pm/bit | | fA/bit | | =========================================================================== ===== ======================================= | vbias | delay | v1 | v_cal | sens | | | ms | | uv/bit | | ======================================= type 5 data file format: 20 integers followed by integer data of dIdV/v curve including scans up and scans down header: ================================================================================ | 5 | nv | 2 | vstart | vstep | speed | v_cal | i_exp | i_cal | sens | | | | | bits | bits | | uv/bit | | fA/bit | | ================================================================================ ================================================================================ | vbias | delz2 | zstart | delz1 | zcal | del | admax | nav | nchan | zgain | | | | | | pm/bit | | | | | | ================================================================================ type 6 data file format: 20 integers followed by integer data of dIdV/z curve including scans up and scans down header: ============================================================================= | 6 | nz | 2 | zstart | zstep | speed | z_cal | i_exp | i_cal | | | | | bits | bits | | pm/bit | | fA/bit | ============================================================================= ============================================= | nav | vbias | delay | v1 | v_cal | sens | | | | ms | | uv/bit | | ============================================= type 7 data file format: 20 integers followed by current image header: ======================================================================================= | 7 | n_row | n_col | X_start | dX | Y_start | dY | Z_gain | speed | scan_cal | | | | | bits | bits | bits | bits | | | pm/bit | ======================================================================================= =========================================================================================== | i_cal | z_cal | direction | orientation | vbias | v_cal | nv | ... | image | iexp | | fA/bit | pm/bit | 1=bi,2=uni | 1=xy,2=rot | bit | uv/bit | | | | | =========================================================================================== type 8 data file format: 20 integers followed by conductivity image header: ===================================================================================== | 8 | n_row | n_col | X_start | dX | Y_start | dY | sens | speed | scan_cal | | | | | bits | bits | bits | bits | | | pm/bit | ===================================================================================== =========================================================================================== | i_cal | z_cal | direction | orientation | vbias | v_cal | nv | ... | image | iexp | | fA/bit | pm/bit | 1=bi,2=uni | 1=xy,2=rot | bit | uv/bit | | | | | ===========================================================================================