commands:ttl
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| commands:ttl [2025/04/09 18:35] – add link to serial position reporting brandon | commands:ttl [2026/06/19 19:35] (current) – add space to bottom of page brandon | ||
|---|---|---|---|
| Line 3: | Line 3: | ||
| TTL functionality differs based on whether the controller is a Tiger (TG-1000) or MS2000/ | TTL functionality differs based on whether the controller is a Tiger (TG-1000) or MS2000/ | ||
| - | The Tiger (TG-1000) and MS2000 controller electronics have a buffered TTL input ('' | + | The Tiger (TG-1000) and MS2000 controller electronics have a buffered TTL input ('' |
| <WRAP center round important 60%> | <WRAP center round important 60%> | ||
| Line 36: | Line 36: | ||
| __// | __// | ||
| + | |||
| + | ---- | ||
| **0** - Turns off TTL IN0 controlled functions; TTL interrupt DISABLED. | **0** - Turns off TTL IN0 controlled functions; TTL interrupt DISABLED. | ||
| - | **1** - TTL IN0 initiates a Move-to-Next-Position of the stored positions in the ring buffer pointed to by the buffer_pointer. | + | ---- |
| - | **2** - TTL IN0 repeats most recent relative move (see '' | + | **1** - TTL IN0 initiates a Move-to-Next-Position of the stored positions in the ring buffer pointed to by the '' |
| + | |||
| + | ---- | ||
| + | |||
| + | **2** - TTL IN0 repeats most recent relative move (see [[commands: | ||
| As of '' | As of '' | ||
| + | |||
| + | ---- | ||
| **3** - TTL IN0 initiates an autofocus operation on systems with autofocus installed. | **3** - TTL IN0 initiates an autofocus operation on systems with autofocus installed. | ||
| - | **4** - Enables TTL IN0 controlled Z-stacks. (See '' | + | ---- |
| - | **5** - Enables TTL IN0-started [[: | + | **4** - Enables TTL IN0 controlled Z-stacks |
| - | **6** - On the rising edge of a TTL pulse, initiate a stage scan if the scan state is '' | + | ---- |
| - | **7** - TTL commanded | + | **5** - Enables |
| - | **9** - Used with CRISP focus lock. TTL IN0 HIGH engages lock if the system is in the READY state. | + | ---- |
| - | **10** - Toggle | + | **6** - On the rising edge of a TTL pulse, initiate a stage scan if the scan state is '' |
| - | **11** | + | ---- |
| - | **12** - Behavior is exactly the same as mode 1 above except the moves are relative rather than absolute. | + | **7** - TTL commanded [[commands: |
| - | > **CAUTION: | + | ---- |
| - | Added in v3.24 for Tiger and version 9.52 for MS2000/RM2000. | + | <wrap lo> |
| + | **8** - TTL commanded [[commands: | ||
| - | **20** | + | ---- |
| - | Can be used with a LED illumination to act as a flash of defined duration. | + | **9** - Used with [[:crisp_manual|CRISP]] focus lock. TTL IN0 HIGH engages lock if the system is in the READY state. |
| - | Added in v3.14 for Tiger and version 9.2l for MS2000/ | + | ---- |
| + | **10** - Toggle TTL OUT0. If TTL OUT0 is set either LOW or HIGH, an input pulse on the TTL IN0 will cause the output to toggle to the other state. | ||
| - | **21** | + | ---- |
| - | For Tiger v3.24 and later, when '' | + | <wrap lo>Tiger v3.31 required</ |
| + | **11** - '' | ||
| - | Added in v3.14 for Tiger and version 9.2l for MS2000/RM2000. | + | Not yet implemented |
| + | ---- | ||
| - | **22** - Similar | + | <wrap lo> |
| + | **12** - Behavior is exactly the same as mode 1 above except the moves are relative rather than absolute. | ||
| - | Added in v3.30 for Tiger and version 9.2n for MS2000/ | + | > **CAUTION: |
| + | ---- | ||
| - | **23** - Same as mode 21 except waits for TTL pulse to go low before turning off the LED. Setting | + | <wrap lo> |
| + | **20** - The TTL IN0 pulse turns on the TTL OUT0 for a fixed duration set by the [[commands: | ||
| - | Added in v3.30 for Tiger and version 9.2n for MS2000/ | + | Can be used with a LED illumination to act as a flash of defined duration. For the TGLED card and MS2000/ |
| + | ---- | ||
| + | <wrap lo> | ||
| + | **21** - Similar to mode 20 except TTL pulses cycle through the channels of the TGLED card or Dual LED card. On each TTL pulse, only ONE LED channel turns ON for a fixed time. The next TTL pulse turns on the next LED channel for a fixed time, and so on. | ||
| + | |||
| + | For Tiger v3.24 and later, when [[commands: | ||
| + | |||
| + | ---- | ||
| + | |||
| + | <wrap lo> | ||
| + | **22** - Similar as mode 20 except waits for TTL pulse to go low before turning off the LED. Setting '' | ||
| + | |||
| + | ---- | ||
| + | |||
| + | <wrap lo> | ||
| + | **23** - Same as mode 21 except waits for TTL pulse to go low before turning off the LED. Setting '' | ||
| + | |||
| + | ---- | ||
| + | |||
| + | <wrap lo>Tiger v3.30 required</ | ||
| **30** - Used with Single Axis Modes 2 and 4, see the [[commands: | **30** - Used with Single Axis Modes 2 and 4, see the [[commands: | ||
| Line 96: | Line 130: | ||
| Mode 4: On the rising edge of a TTL pulse, the routine runs continuously. | Mode 4: On the rising edge of a TTL pulse, the routine runs continuously. | ||
| - | Available in Tiger firmware 3.30 and above; not yet implemented for MS2000/RM2000. | + | Not yet implemented for MS2000. |
| + | |||
| + | ---- | ||
| + | |||
| + | <wrap lo> | ||
| + | **103** - Repeating Autofocus. This mode does not use TTL IN. When set, the controller will automatically attempt an autofocus routine every //K// milliseconds indefinitely until TTL X is changed. The repetition time, //K//, is set using [[commands: | ||
| - | <wrap lo>MS-2000 9.2n required</ | + | ---- |
| - | **103** | + | |
| ===== TTL Output Mode ===== | ===== TTL Output Mode ===== | ||
| __// | __// | ||
| + | |||
| + | ---- | ||
| **0** - TTL OUT0 unconditionally set LOW. | **0** - TTL OUT0 unconditionally set LOW. | ||
| + | |||
| + | ---- | ||
| **1** - TTL OUT0 unconditionally set HIGH. | **1** - TTL OUT0 unconditionally set HIGH. | ||
| + | |||
| + | ---- | ||
| **2** - generates TTL pulse at end of a commanded move ('' | **2** - generates TTL pulse at end of a commanded move ('' | ||
| - | **3** - < | + | ---- |
| - | **4** - < | + | **3** - < |
| - | **5** - < | + | ---- |
| + | |||
| + | **4** - < | ||
| + | |||
| + | ---- | ||
| + | |||
| + | **5** - < | ||
| + | |||
| + | ---- | ||
| **8** - TTL OUT0 timed arrival pre-pulse output. | **8** - TTL OUT0 timed arrival pre-pulse output. | ||
| + | |||
| + | ---- | ||
| **9** - TTL OUT0 PWM and MicroServo or Solenoid output. | **9** - TTL OUT0 PWM and MicroServo or Solenoid output. | ||
| + | |||
| + | ---- | ||
| **10** - Output TTL OUT0 gated HIGH upon completion of video AUTOFOCUS function. | **10** - Output TTL OUT0 gated HIGH upon completion of video AUTOFOCUS function. | ||
| + | |||
| + | ---- | ||
| **11** - Generates TTL OUT0 pulse at end of commanded move providing CRISP is in ‘F’ state (active and within tolerance). | **11** - Generates TTL OUT0 pulse at end of commanded move providing CRISP is in ‘F’ state (active and within tolerance). | ||
| + | ---- | ||
| - | **12** - TTL OUT0 high when CRISP is ‘F’ state, low otherwise. | + | **12** - TTL OUT0 high when CRISP is in the '' |
| + | |||
| + | ---- | ||
| **20** - TTL OUT0 set during SPIM state machine operation. | **20** - TTL OUT0 set during SPIM state machine operation. | ||
| + | |||
| + | ---- | ||
| **21** - TTL1 backplane signal (PLC address 42) set high at the end of a ring buffer move or AIJ-initiated move (for laser trigger). | **21** - TTL1 backplane signal (PLC address 42) set high at the end of a ring buffer move or AIJ-initiated move (for laser trigger). | ||
| - | **22** | + | ---- |
| - | **30** - TTL OUT1 high when the position of first axis is more than the PC setting away from its target position. Tiger v3.38 and above (not yet in MS2000 but could be.) | + | <wrap lo>Tiger v3.17 required</ |
| + | **22** - In this mode, TTL OUT0 is controlled by the [[: | ||
| - | **31** | + | ---- |
| - | **32** - TTL OUT1 high when the position of third axis is more than the PC setting away from its target position. | + | <wrap lo>Tiger v3.38 required</ |
| + | **30** - TTL OUT1 high when the position of first axis is more than the PC setting away from its target position. | ||
| - | **33** | + | ---- |
| + | <wrap lo>Tiger v3.38 required</ | ||
| + | **31** - TTL OUT1 high when the position of second axis is more than the PC setting away from its target position. | ||
| + | |||
| + | ---- | ||
| + | |||
| + | <wrap lo>Tiger v3.38 required</ | ||
| + | **32** - TTL OUT1 high when the position of third axis is more than the PC setting away from its target position. | ||
| + | |||
| + | ---- | ||
| + | |||
| + | <wrap lo>Tiger v3.38 required</ | ||
| + | **33** - TTL OUT1 high when the position of fourth axis is more than the PC setting away from its target position. | ||
| + | |||
| + | ---- | ||
| ===== TTL Output Polarity ===== | ===== TTL Output Polarity ===== | ||
| Line 147: | Line 226: | ||
| __// | __// | ||
| - | **1** - default | + | **1** - Default |
| - | **-1** - inverts | + | **-1** - Invert |
| ===== TTL Auxiliary (Tiger Only) ===== | ===== TTL Auxiliary (Tiger Only) ===== | ||
| Line 177: | Line 256: | ||
| ===== Report Mode (MS-2000 Only) ===== | ===== Report Mode (MS-2000 Only) ===== | ||
| - | __// | + | __// |
| + | <wrap lo> | ||
| **T** - Enables serial reporting on every output TTL pulse when set to be non-zero. | **T** - Enables serial reporting on every output TTL pulse when set to be non-zero. | ||
| Line 188: | Line 268: | ||
| * X array index as 16-bit unsigned int (AIJ X? equivalent) | * X array index as 16-bit unsigned int (AIJ X? equivalent) | ||
| * Y array index as 16-bit unsigned int (AIJ Y? equivalent) | * Y array index as 16-bit unsigned int (AIJ Y? equivalent) | ||
| + | |||
| + | \\ | ||
| + | The next value is the Z-stack index (ZS T? equivalent, related to the ZS command) | ||
| Next the encoder value for all axes in order as 32-bit signed integer in twos-complement, | Next the encoder value for all axes in order as 32-bit signed integer in twos-complement, | ||
| Line 205: | Line 288: | ||
| * To validate the checksum repeat the same steps but include the 16-bit checksum value in the running sum. The computed checksum should be 0000. If not there was an error in checksum generation or transmission of the data. | * To validate the checksum repeat the same steps but include the 16-bit checksum value in the running sum. The computed checksum should be 0000. If not there was an error in checksum generation or transmission of the data. | ||
| - | Example: firmware includes '' | + | Example: firmware includes '' |
| - | 0002 0001 0003 1E00 FFFF FFFF FFFF FFEE FC81 0679 0D DF0F 0D | + | '' |
| where coordinate is (2,1) in the array, the X encoder value is 3268608 in decimal (corresponding to almost exactly 9mm position with 2 TPI rotary stage), Y encoder value is -1 in decimal, Z encoder value is -18 in decimal, CRISP error value is -895 in decimal, CRISP sum value is 1657 decimal, and the checksum is hex DF0F. To validate the checksum add each of these 16-bit unsigned numbers (excluding the 0D delimeters) which results in 5FFFA in hex. FFFA plus 5 is FFFF, and upon bitwise inversion the value becomes 0 as expected. | where coordinate is (2,1) in the array, the X encoder value is 3268608 in decimal (corresponding to almost exactly 9mm position with 2 TPI rotary stage), Y encoder value is -1 in decimal, Z encoder value is -18 in decimal, CRISP error value is -895 in decimal, CRISP sum value is 1657 decimal, and the checksum is hex DF0F. To validate the checksum add each of these 16-bit unsigned numbers (excluding the 0D delimeters) which results in 5FFFA in hex. FFFA plus 5 is FFFF, and upon bitwise inversion the value becomes 0 as expected. | ||
| Line 220: | Line 303: | ||
| For MS2000/ | For MS2000/ | ||
| + | \\ | ||
| {{tag> | {{tag> | ||
Address: 29391 W Enid Rd. Eugene, OR 97402, USA | Phone: +1 (541) 461-8181
commands/ttl.1744238152.txt.gz · Last modified: by brandon
