scan_module
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
scan_module [2019/01/21 14:26] – gary | scan_module [2019/04/18 19:35] – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== SCAN MODULE MS 2000 Encoder Sync and Scanning Addendum ====== | ||
+ | Raster and Serpentine scanning with the MS 2000 controller has been made simple and flexible with some special firmware and hardware options added to our standard controller. | ||
+ | |||
+ | Users can use just the SYNC line and constant stage speed along with uniform data sampling to achieve Imaging synchronization. | ||
+ | |||
+ | Two firmware options are available that involve how the TTL_IN interrupt is handled. | ||
+ | |||
+ | Controllers running firmware with the EXT_INT interrupt option apply one channel of the stage encoder to the microprocessor' | ||
+ | |||
+ | ===== Raster and Serpentine Scanning ===== | ||
+ | |||
+ | The user can select either //Raster// or // | ||
+ | |||
+ | Raster scanning has the advantage that system backlash will be negligible, since the motion is always in the same direction. | ||
+ | |||
+ | ===== Encoder SYNC Hardware ===== | ||
+ | |||
+ | The encoder sync pulse is obtained directly from the encoder counting chip inside the controller. | ||
+ | |||
+ | Pulses for the pixel clock are derived from a processed signal coming from the controller’s microprocessor (DIVIDE-by-N) on the normal TTL_OUT BNC connector. | ||
+ | |||
+ | [{{ scan_capture.png? | ||
+ | |||
+ | ===== WK2000 Board Jumpers ===== | ||
+ | |||
+ | Either the X or Y-axis can be used as the fast raster axis for scanning. | ||
+ | |||
+ | {{ scan_jumper.png? | ||
+ | |||
+ | ^Function ^Jumper ^Fast Axis ^^ | ||
+ | ^::: ^::: ^X ^Y ^ | ||
+ | |Sync Flag |JP1| 1-2 |2-3| | ||
+ | |Encoder Pulses |JP2| 1-2 |2-3| | ||
+ | |||
+ | The output signals are found on header SV1. SV1 Pin 2 is the Encoder Divide by N output and SV1 Pin 7 is the Line Sync output. | ||
+ | |||
+ | SCAN firmware versions that have the IN0_INT module rather than the ENC_INT module should leave JP2 unconnected since encoder pulse counting is not enabled in these versions. | ||
+ | |||
+ | |||
+ | ===== Using the SCANR, SCANV, and SCAN Commands ===== | ||
+ | |||
+ | To perform a scan, you must first define the scan region, the pixel clock resolution, and the number of scan lines. | ||
+ | |||
+ | Let’s go through an example where we wish to scan a 1 mm × 1 mm region at a resolution of about 0.5 μm on an XY stage. | ||
+ | |||
+ | If we generate a clock pulse every 24 encoder counts (6 full periods of a single encoder signal), then our pixel clock resolution will be 0.022 × 24 = 0.528 μm. To set up the ‘horizontal’ raster, we issue the command: | ||
+ | |||
+ | <wrap cmd> SCANR X=0.0 Y=1.0 Z=24 </ | ||
+ | |||
+ | The command above will generate a scan line with 1891 pixels, determined by multiplying the encoder resolution by the length of the scan and dividing by the encoder_divide parameter. | ||
+ | |||
+ | For the ‘vertical’ direction, if we want square pixels, then we will need 1891 scan lines as well. To set up the ‘vertical’ scan, we issue the command: | ||
+ | |||
+ | <wrap cmd> SCANV X=0.0 Y=1.0 Z=1891 </ | ||
+ | |||
+ | In both commands, parameters “start” and “stop” are measured in millimeters from the current origin (“Home” position), and negative values are allowed. | ||
+ | |||
+ | Next, we need to determine the correct scan speed based upon the processing time for each pixel. | ||
+ | |||
+ | <wrap cmd> SPEED X=0.528 </ | ||
+ | |||
+ | We can specify that the scan mode will be a raster scan using the command: | ||
+ | |||
+ | <wrap cmd> SCAN F=0 </ | ||
+ | |||
+ | Finally, we need to turn on the encoder interrupt with: | ||
+ | |||
+ | <wrap cmd> TTL X=1 </ | ||
+ | |||
+ | Once all of the scan parameters are set up the way we want them, it is possible to save them to non-volatile memory so that we do not need to re-enter them each time we power up. | ||
+ | |||
+ | The command to save settings is: | ||
+ | <wrap cmd> SS Z </ | ||
+ | When ready to initiate the scan, issue the command: | ||
+ | <wrap cmd> SCAN </ | ||
+ | |||
+ | to start the process. | ||
+ | |||
+ | ===== Limitations and Internal Operation of the SCAN module ===== | ||
+ | |||
+ | During set-up for a scan, the number of horizontal pulses (pixels) is calculated. | ||
+ | |||
+ | The internal data size for certain variables limits the acceptable range some parameters. | ||
+ | |||
+ | With the MS2000WK controller, internal jumpers JP1 and JP2 are used to select either the X-axis (jumper positions 1-2) or the Y-axis (jumper positions 2-3) as the fast scanned axis. Controllers are shipped with the X-axis as the default fast raster axis. Please see the SCAN command to change the default axes for the scanning algorithms. | ||
+ | |||
+ | {{tag> |
Address: 29391 W Enid Rd. Eugene, OR 97402, USA | Phone: +1 (541) 461-8181
scan_module.txt · Last modified: 2022/04/08 15:35 by brandon