Teledyne DALSA • 880 McCaffrey • St-Laurent, Quebec, H4T 2C7 • Canada http://www.teledynedalsa.com/imaging/

X64-CL Express™

User's Manual Edition 1.23

Part number OC-X1CM-USER0

*OC-X1CM-USER0*

NOTICE

© 2001-2016 Teledyne DALSA All rights reserved. This document may not be reproduced nor transmitted in any form or by any means, either electronic or mechanical, without the express written permission of Teledyne DALSA. Every effort is made to ensure the information in this manual is accurate and reliable. Use of the products described herein is understood to be at the user's risk. Teledyne DALSA assumes no liability whatsoever for the use of the products detailed in this document and reserves the right to make changes in specifications at any time and without notice.

Microsoft is a registered trademark; Windows®, Windows® XP, Windows® Vista, and Windows® 7 are trademarks of Microsoft® Corporation. All other trademarks or intellectual property mentioned herein belong to their respective owners.

Edition 1.23 released on February 26, 2016

Document Number: OC-X1CM-USER0

Printed in Canada

About Teledyne DALSA Teledyne DALSA is an international high performance semiconductor and electronics company that designs, develops, manufactures, and markets digital imaging products and solutions, in addition to providing wafer foundry services. Teledyne DALSA Digital Imaging offers the widest range of machine vision components in the world. From industry-leading image sensors through powerful and sophisticated cameras, frame grabbers, vision processors and software to easy-to-use vision appliances and custom vision modules.

Contents

INTRODUCTION ______1 OVERVIEW OF THE MANUAL ...... 1 ABOUT THE MANUAL ...... 2 USING THE MANUAL ...... 2

OVERVIEW OF THE X64-CL EXPRESS ______3 PRODUCT PART NUMBERS ...... 3 ABOUT THE X64-CL EXPRESS FRAME GRABBER ...... 4 X64-CL Express Series Key Features ...... 4 X64-CL Express User Programmable Configurations ...... 5 ACUPlus: Acquisition Control Unit ...... 5 DTE: Intelligent Data Transfer Engine ...... 6 PCI Express x1 Interface ...... 6 Advanced Controls Overview...... 7 ABOUT THE OPTIONAL X-I/O MODULE ...... 7 DEVELOPMENT SOFTWARE OVERVIEW ...... 8 Sapera LT Library ...... 8 Sapera Processing Library ...... 8

INSTALLING THE X64-CL EXPRESS ______9 WARNING! (GROUNDING INSTRUCTIONS) ...... 9 UPGRADING SAPERA OR ANY TELEDYNE DALSA BOARD DRIVER ...... 9 Board Driver Upgrade Only ...... 9 Sapera and Board Driver Upgrades ...... 10 SAPERA LT LIBRARY INSTALLATION ...... 11 INSTALLING X64-CL EXPRESS HARDWARE AND DRIVER ...... 12 In a Windows XP, Windows Vista, or Windows 7 System ...... 12 X64-CL Express Firmware Loader ...... 13 ENABLING THE CAMERA LINK SERIAL CONTROL PORT ...... 15 COM Port Assignment ...... 15 Setup Example with Windows HyperTerminal ...... 16 DISPLAYING X64-CL EXPRESS BOARD INFORMATION ...... 18 Device Manager – Board Viewer ...... 18 CAMERA TO CAMERA LINK CONNECTIONS ...... 19 CONFIGURING SAPERA ...... 20 Viewing Installed Sapera Servers ...... 20

X64-CL Express User's Manual Contents • i

Increasing Contiguous Memory for Sapera Resources ...... 20 Contiguous Memory for Sapera Messaging...... 21 TROUBLESHOOTING INSTALLATION PROBLEMS ...... 21 Recovering from a Firmware Update Error ...... 21 Windows Event Viewer ...... 22 Device Manager Program ...... 22 PCI Configuration ...... 24 Sapera and Hardware Windows Drivers ...... 25 Log Viewer ...... 25 Windows Device Manager ...... 26 Memory Requirements with Area Scan Acquisitions ...... 26 Symptoms: CamExpert Detects no Boards ...... 27 Symptoms: X64-CL Express Does Not Grab ...... 27 Symptoms: Card grabs black ...... 28 Symptoms: Card acquisition bandwidth is less than expected ...... 28

CAMEXPERT QUICK START FOR THE X64-CL EXPRESS ______29 INTERFACING CAMERAS WITH CAMEXPERT ...... 29 CamExpert Example with a Monochrome Camera ...... 29 CAMEXPERT DEMONSTRATION AND TEST TOOLS ...... 31 CAMERA TYPES & FILES APPLICABLE TO THE X64-CL EXPRESS ...... 31 CamExpert Memory Errors when Loading Camera Configuration Files ...... 32 Overview of Sapera Acquisition Parameter Files (*.ccf or *.cca/*.cvi) ...... 32 Camera Interfacing Check List ...... 33 USING THE FLAT FIELD CORRECTION TOOL ...... 34 X64-CL Express Flat Field Support ...... 34 Flat Field Correction Calibration Procedure ...... 34 Using Flat Field Correction ...... 36 USING THE BAYER FILTER TOOL ...... 36 Bayer Filter White Balance Calibration Procedure ...... 36 Using the Bayer Filter ...... 37

SAPERA DEMO APPLICATIONS ______39 GRAB DEMO OVERVIEW ...... 39 Using the Grab Demo ...... 39 FLAT-FIELD DEMO OVERVIEW ...... 40 Using the Flat Field Demo ...... 40

X64-CL EXPRESS REFERENCE ______41 X64-CL EXPRESS MEDIUM BLOCK DIAGRAM ...... 41 X64-CL EXPRESS DUAL BASE BLOCK DIAGRAM ...... 42 X64-CL EXPRESS ACQUISITION TIMING ...... 43 LINE TRIGGER SOURCE SELECTION FOR LINESCAN APPLICATIONS ...... 44 CORACQ_PRM_EXT_LINE_TRIGGER_SOURCE – Parameter Values Specific to the X64- CL series ...... 44 SHAFT ENCODER INTERFACE TIMING ...... 46 ii • Contents X64-CL Express User's Manual

VIRTUAL FRAME TRIGGER FOR LINESCAN CAMERAS ...... 47 ACQUISITION METHODS...... 49 X64-CL EXPRESS LUT AVAILABILITY ...... 49 TRIGGER TO IMAGE RELIABILITY ...... 50 Supported Events and Transfer Methods ...... 50 X64-CL EXPRESS SAPERA PARAMETERS ...... 53 Camera Related Parameters ...... 53 VIC Related Parameters ...... 58 ACQ Related Parameters ...... 62 X64-CL EXPRESS MEMORY ERROR WITH AREA SCAN FRAME BUFFER ALLOCATION...... 63

X64-CL EXPRESS SAPERA SERVERS & RESOURCES ______65 SERVERS AND RESOURCES ...... 65 TRANSFER RESOURCE LOCATIONS...... 66

TECHNICAL SPECIFICATIONS ______67 X64-CL EXPRESS BOARD SPECIFICATIONS ...... 67 HOST SYSTEM REQUIREMENTS ...... 68 EMI CERTIFICATIONS ...... 69 CONNECTOR AND SWITCH LOCATIONS ...... 70 X64-CL Express Board Layout Drawings...... 70 Connector Description List ...... 70 CONNECTOR AND SWITCH SPECIFICATIONS ...... 71 X64-CL Express End Bracket ...... 71 Status LEDs Functional Description ...... 72 J1: Camera Link Connector 1 ...... 73 J2: Camera Link Connector 2 (on X64-CL Express with Dual Base Configuration) ...... 73 J2: Camera Link Connector 2 (on X64-CL Express in Medium Configuration) ...... 74 Camera Link Camera Control Signal Overview ...... 75 Critical Information when Connecting External Control Devices ...... 76 J4: External Signals Connector ...... 77 X64-CL Express: External Signals Connector Bracket Assembly ...... 80 Connecting a TTL Shaft Encoder Signal to the LVDS/RS422 Input ...... 81 External Trigger TTL Input Electrical Specification ...... 83 Strobe TTL Output Electrical Specification ...... 83 J7: Board Sync ...... 84 J8: Power to Camera Voltage Selector ...... 84 J9: PC Power to Camera Interface ...... 85 J11: Start Mode ...... 85 J3, J7A1 J12: Reserved ...... 85 Brief Description of Standards RS-232, RS-422, & RS-644 (LVDS) ...... 86

CAMERA LINK INTERFACE ______87 CAMERA LINK OVERVIEW ...... 87 Rights and Trademarks ...... 87 DATA PORT SUMMARY ...... 88

X64-CL Express User's Manual Contents • iii

CAMERA SIGNAL SUMMARY ...... 88 CAMERA LINK CABLES ...... 89

APPENDIX: X-I/O MODULE OPTION ______91 X-I/O MODULE OVERVIEW ...... 91 X-I/O Module Connector List & Locations...... 92 X-I/O MODULE INSTALLATION...... 92 Board Installation ...... 93 X64-CL Express and X-I/O Driver Update ...... 93 X-I/O MODULE EXTERNAL CONNECTIONS TO THE DB37 ...... 93 DB37 Pinout Description...... 94 TTL Output in NPN Mode: Electrical Details ...... 95 TTL Output in PNP Mode: Electrical Details ...... 96 Opto-coupled Input: Electrical Details ...... 97 TTL Input Electrical Details ...... 97 X-I/O MODULE SAPERA INTERFACE ...... 98 Configuring User Defined Power-up I/O States ...... 98 Using Sapera LT General I/O Demo ...... 100 Sapera LT General I/O Demo Code Samples ...... 102

TELEDYNE DALSA CONTACT INFORMATION ______107 SALES INFORMATION ...... 107 TECHNICAL SUPPORT ...... 108

GLOSSARY OF TERMS ______109

INDEX ______111

iv • Contents X64-CL Express User's Manual

Introduction

Overview of the Manual

The X64-CL Express User's Manual covers the following topics: • Overview of the X64-CL Express Description of the X64-CL Express product and a brief summary of its capabilities. • Installing the X64-CL Express Installation procedures for the X64-CL Express board and driver under Windows XP, Windows Vista or Windows 7, as well as information on camera connectivity. • CamExpert Quick Start for the X64-CL Express User's guide to interfacing cameras with CamExpert and using the CamExpert demo tools. • The Sapera Demo Applications Overview of the Sapera demo programs which can test the X64-CL Express installation. • X64-CL Express Reference Descriptions of X64-CL Express hardware, block diagram, capabilities, and acquisition modes supported. • X64-CL Express Sapera Servers & Resources Specifications specific to the Sapera Imaging Library. • Technical Specifications X64-CL Express connector locations and pin-out descriptions. • Camera Link Interface Overview of the Camera Link specification. • X-I/O Module Option Describes the X-I/O module, its configuration, cabling, and usage. • Teledyne DALSA Contact Information Phone numbers, web site, and important email addresses.

X64-CL Express User's Manual Introduction • 1

About the Manual

This manual exists in printed, and Adobe® Acrobat (PDF) formats. The PDF format make full use of hypertext cross-references and include links to the Teledyne DALSA home page on the Internet. For information specific to the X64-CL Express, visit http://www.teledynedalsa.com/imaging/.

Using the Manual

File names, directories, and Internet sites will be in bold text (e.g., image2.bmp, c:\sapera, http://www.imaging.com). Text that must be entered using the keyboard will be in typewriter-style text (e.g., c:\temp). Menu and dialog actions will be indicated in bold text in the order of the instructions to be executed, with each instruction separated by bullets. For example, going to the File menu and choosing Save would be written as File•Save.

2 • Introduction X64-CL Express User's Manual Overview of the X64-CL Express

Product Part Numbers

X64-CL Express Board Item Product Number All models have 85MHz Pixel Clock X64-CL Express with 32 MB of memory ( requires driver version 1.30 or later ) OR-X1C0-XPD10

X-I/O Module (optional): provides 8 input & 8 output general I/Os OC-IO01-STD00 (see "Appendix: X-I/O Module Option" on page 91) This manual in printed form, is available on request OC-X1CM-USER0

Legacy Part Number(s) Retired P/N X64-CL Express with 32 MB of memory OR-X1C0-XPD00

X64-CL Express Software Item Product Number Sapera LT version 5.30 or later (required but sold separately) OC-SL00-0000000 1. Sapera LT: Provides everything you will need to build your imaging application 2. Current Sapera compliant board hardware drivers 3. Board and Sapera documentation (compiled HTML help, and Adobe Acrobat® (PDF) formats)

(optional) Contact Sales at Sapera Processing Imaging Development Library includes over 600 optimized image processing Teledyne DALSA routines.

X64-CL Express User's Manual Overview of the X64-CL Express • 3

X64-CL Express Cables & Accessories Item Product Number External Signals Connector Bracket Assembly supplied with each X64-CL Express (connects to OC-64CC-0TIO1 J4 – see “X64-CL Express: External Signals Connector Bracket Assembly” on page 80) Note: not used when the X-I/O Module is installed. (optional) Power interface cable required when supplying power to cameras OR-COMC-POW03 (optional) Camera Link Video Input Cable: 1 meter OC-COMC-CLNK0 2 meter OC-COMC-CLNK6

(optional) DB25 male to color coded blunt end cable – 6 foot (1.82 meter) length OC-COMC-XEND1

About the X64-CL Express Frame Grabber

X64-CL Express Series Key Features • Supports Medium Monochrome Camera Link with Flat Field Correction • Supports Medium RGB Camera Link • Supports Base Camera Link with Bayer Filter Decoding • Supports 2 Base Monochrome Camera Link with Flat Field Correction • Supports 2 Base RGB Camera Link • Input lookup tables available for each mode See “"Technical Specifications" on page 67” for detailed information.

4 • Overview of the X64-CL Express X64-CL Express User's Manual

X64-CL Express User Programmable Configurations Using the X64-CL Express firmware loader utility, firmware for one of the supported modes is easily selected, either during driver installation or manually later on (see "Firmware Update: Manual Mode" on page 14). For the X64-CL Express board the firmware choices are: • One Medium Camera Link Input with Flat Field Correction (installation default selection) Support for one Base or one Medium Camera Link port. Flat Field Correction (FFC) includes Fixed Pattern Noise (FPN), Pixel Replacement, Photo Response Non Uniformity (PRNU), and Shading Correction. • Two Base Camera Link Inputs with Flat Field Correction Support for two independent Base Camera Link ports. Flat Field Correction (FFC) includes Fixed Pattern Noise (FPN), Pixel Replacement, Photo Response Non Uniformity (PRNU), and Shading Correction. • One Base Camera Link Input with Bayer Decoder Support for one Base Camera Link port with Hardware Bayer CFA (Color Filter Array) Decoder. No Flat Field Correction is available.

ACUPlus: Acquisition Control Unit ACUPlus consists of two sets of independent grab controllers, one pixel packer, and one time base generator. ACUPlus delivers a flexible acquisition front end plus it supports pixel clock rates of up to 85MHz. ACUPlus acquires variable frame sizes up to 256KB per horizontal line and up to 16 million lines per frame. ACUPlus can also capture an infinite number of lines from a linescan camera without losing a single line of data. ACUPlus supports standard Camera Link multi-tap configurations from 8 to 24-bit/pixels. Additionally, alternate tap configurations can support up to 8 taps of 8-bits each. The X64-CL Express model can support two cameras with different tap configurations simultaneously with the Dual Base firmware loaded.

X64-CL Express User's Manual Overview of the X64-CL Express • 5

Camera Link Maximum Acquisition Rates: This table specifies the X64-CL Express acquisition hardware maximums, not the maximum data transfer rate through the PCI Express x1 to system memory.

Cameras Camera Link Maximum Acquisition rate Maximum PCIe x1 connected standard 85 MHz components transfer rate (including overhead) 2 Base 300 Mbytes/sec 160 Mbytes/sec 1 Medium 300 Mbytes/sec 160 Mbytes/sec

DTE: Intelligent Data Transfer Engine The X64-CL Express intelligent Data Transfer Engine ensures fast image data transfers between the board and the host computer with zero CPU usage. The DTE provides a high degree of data integrity during continuous image acquisition in a non-real time operating system like Windows. DTE consists of multiple independent DMA units, Tap Descriptor Tables, and Auto-loading Scatter-Gather tables. PCI Express x1 Interface The X64-CL Express is a universal PCI Express x1 board, compliant with the PCI Express 1.0 specification. The PCI Express x1 interface supports maximum transfer rates up to 250 Mbytes/sec, while the X64-CL Express board can achieve transfer rates around 160 Mbytes/sec due to memory management overhead. The X64-CL Express board occupies one computer expansion slot and one chassis opening (two slots with the optional X-I/O Module Option).

6 • Overview of the X64-CL Express X64-CL Express User's Manual

Advanced Controls Overview Visual Indicators X64-CL Express features a LED indicator to facilitate system installation and setup. This provides visual feedback indicating when the camera is connected properly and sending data. External Event Synchronization Two sets of dedicated trigger inputs and strobe signals are provided to synchronize precisely image captures with external events. Camera Link Communications ports Two PC independent communication ports provide Camera Link controls for camera configurations. These ports do not require addition PC resources like free interrupts or I/O address space. Accessible via the board device driver, the communication ports preset a seamless interface to Windows-based standard communication applications like HyperTerminal, etc. The communication ports are accessible directly from the Camera Link connectors. Quadrature Shaft Encoder Important feature for web scanning applications, the Quadrature-Shaft-Encoder inputs allow synchronized line captures from external web encoders.

About the Optional X-I/O Module

The optional X-I/O module adds general purpose software controllable I/O signals to the X64-CL Express. The X-I/O module provides 2 opto-coupled inputs, 6 logic signal inputs (5V or 24V), and 8 TTL outputs (NPN or PNP type selectable). The module also makes available 5V or 12V dc power from the host system. The X-I/O module can be either purchased with the X64-CL Express board or installed into the computer system at a later time. The module occupies one adjacent PCI slot and connects to the X64-CL Express via a ribbon cable. X-I/O Module external connections are made via the DB37 connector on the module bracket. X-I/O requires X64-CL Express board driver version 1.00 or later and Sapera LT version 5.30 or later. See "Appendix: X-I/O Module Option" on page 91 for details and specifications.

X64-CL Express User's Manual Overview of the X64-CL Express • 7

Development Software Overview

Sapera LT Library Sapera LT is a powerful development library for image acquisition and control. Sapera LT provides a single API across all current and future Teledyne DALSA hardware. Sapera LT delivers a comprehensive feature set including program portability, versatile camera controls, flexible display functionality and management, plus easy to use application development wizards. Sapera LT comes bundled with CamExpert, an easy to use camera configuration utility to create new, or modify existing camera configuration files. Sapera Processing Library Sapera Processing is a comprehensive set of C++ classes for image processing and analysis. Sapera Processing offers highly optimized tools for image processing, blob analysis, search (pattern recognition), OCR and barcode decoding.

8 • Overview of the X64-CL Express X64-CL Express User's Manual Installing the X64-CL Express

Warning! (Grounding Instructions)

Static electricity can damage electronic components. Please discharge any static electrical charge by touching a grounded surface, such as the metal computer chassis, before performing any hardware installation. If you do not feel comfortable performing the installation, please consult a qualified computer technician. Important: Never remove or install any hardware component with the computer power on. Disconnect the power cord from the computer to disable the power standby mode. This prevents the case where some computers unexpectedly power up on installation of a board. See Critical Information when Connecting External Control Devices on page 76 for details about connecting external control devices to the X64 hardware.

Upgrading Sapera or any Teledyne DALSA Board Driver

When installing a new version of Sapera or a Teledyne DALSA acquisition board driver in a computer with a previous installation, the current version must be un-installed first. Upgrade scenarios are described below. Board Driver Upgrade Only Minor upgrades to acquisition board drivers are typically distributed as ZIP files available in the Teledyne DALSA web site http://www.teledynedalsa.com/imaging/. Board driver revisions are also available on the next release of the Sapera CD-ROM. Often minor board driver upgrades do not require a new revision of Sapera. To confirm that the current Sapera version will work with the new board driver: • Check the new board driver ReadMe file before installing, for information on the minimum Sapera version required. • If the ReadMe file does not specify the Sapera version, contact Teledyne DALSA Technical Support (see "Technical Support" on page 108 ).

X64-CL Express User's Manual Installing the X64-CL Express • 9

To upgrade the board driver only: • Logon the computer as an administrator or with an account that has administrator privileges. • In Windows XP, from the start menu select Start • Control Panel • Add or Remove Programs. Select the X64-CL board driver and click Remove. • Windows XP only: • When the driver un-install is complete, reboot the computer. • Logon the computer as an administrator again. • In Windows Vista and Windows 7, from the start menu select Start • Control Panel • Programs and Features. Double-click the X64-CL Express board driver and click Remove. • Install the new board driver. Run Setup.exe if installing manually from a downloaded driver file. • If the new driver is on a Sapera CD-ROM follow the installation procedure described in "Installing X64-CL Express Hardware and Driver" on page 12. • Note that you can not install a Teledyne DALSA board driver without Sapera LT installed on the computer. Sapera and Board Driver Upgrades When both Sapera and the Teledyne DALSA acquisition board driver are upgraded, follow the procedure described below. • Logon the computer as an administrator or with an account that has administrator privileges. • In Windows XP, from the start menu select Start • Control Panel • Add or Remove Programs. Select the X64-CL Express board driver and click Remove. Follow by also removing the older version of Sapera LT. • In Windows Vista and Windows 7, from the start menu select Start • Control Panel • Programs and Features. Double-click the X64-CL Express board driver and click Remove. Follow by also removing the older version of Sapera LT. • Reboot the computer and logon the computer as an administrator again. • Install the new versions of Sapera and the board driver as if this was a first time installation. See "Sapera LT Library Installation" on page 11 and “Installing X64-CL Express Hardware and Driver” on page 12 for installation procedures.

10 • Installing the X64-CL Express X64-CL Express User's Manual

Sapera LT Library Installation

Note: to install Sapera LT and the X64-CL Express device driver, logon to the workstation as an administrator or with an account that has administrator privileges.

The Sapera LT Development Library (or ‘runtime library’ if application execution without development is preferred) must be installed before the X64-CL device driver. • Insert the Sapera CD-ROM. If AUTORUN is enabled on your computer, the Teledyne DALSA installation menu is presented. • If AUTORUN is not enabled, use Windows Explorer and browse to the root directory of the CD- ROM. Execute launch.exe to start the installation menu and install the required Sapera components. • The installation program will prompt you to reboot the computer. Refer to Sapera LT User’s Manual for additional details about Sapera LT.

X64-CL Express User's Manual Installing the X64-CL Express • 11

Installing X64-CL Express Hardware and Driver

In a Windows XP, Windows Vista, or Windows 7 System • Turn the computer off, disconnect the power cord (disables power standby mode), and open the computer chassis to allow access to the expansion slot area. • Install the X64-CL Express into a free PCI Express x1 expansion slot. The X64-CL Express could also be installed in a PCI Express x4 or x16 slot if that is the free choice. • Close the computer chassis and turn the computer on. Driver installation requires administrator rights for the current user of the computer. • Windows will find the X64-CL Express and start its Found New Hardware Wizard. Click on the Cancel button to close the Wizard Application. • Insert the Teledyne DALSA Sapera CD-ROM. If AUTORUN is enabled on your computer, the installation menu is presented. Install the X64-CL Express driver. • If AUTORUN is not enabled, use Windows Explorer and browse to the root directory of the CD- ROM. Execute launch.exe to start the installation menu and install the X64-CL Express driver. Note, if you are using Windows Vista or Windows 7 with the User Account Control feature enabled, a dialog is displayed when you execute launch.exe; click Allow to continue with the driver installation. • Choose the device driver setup type, full installation (required for application development) or runtime installation (supports application execution only). • When using Windows XP, if a message stating that the X64-CL Express software has not passed Windows Logo testing is displayed, click on Continue Anyway to finish the X64-CL Express driver installation. Reboot the computer when prompted. • When using Windows Vista or Windows 7, a message asking to install the Teledyne DALSA device software is displayed. Click Install.

12 • Installing the X64-CL Express X64-CL Express User's Manual

• During the installation the X64-CL Express Device Manager firmware loader application starts. Click Update All. For more information on the Device Manager application, see "Displaying X64- CL Express Board Information" on page 18. • A dialog box will state when the installation is complete. X64-CL Express Firmware Loader After Windows boots, the Device Manager-Firmware Loader program automatically executes. If it determines that the X64-CL Express board requires a firmware update, a message is displayed asking to accept an update. Click YES to start the Device Manager and update the board firmware. As described below, choose automatic mode for the default board configuration or manual mode to select an alternative. Important: In the vary rare case of firmware loader errors please see "Recovering from a Firmware Update Error" on page 21.

Firmware Update: Automatic Mode Click Automatic to update the X64-CL Express firmware. The X64-CL Express board supports three firmware configurations with the default being 2 x Base Camera Link cameras with Flat Field correction mode. See “X64-CL Express Series Key Features” on page 4 and “X64-CL Express User Programmable Configurations” on page 5 for details on all supported modes, which can be selected via a manual firmware update. If there are multiple X64-CL Express boards in the system, all boards will be updated with new firmware. If any installed X64-CL Express boards installed in a system already have the correct firmware version, an update is not required. In the following screen shot, a single X64-CL Express board is installed in the system and the default Medium configuration is ready to be programmed.

X64-CL Express User's Manual Installing the X64-CL Express • 13

Firmware Update: Manual Mode Select Manual mode to load firmware other then the default version or when, in the case of multiple X64-CL Express boards in the same system, each requires different firmware. The figure below shows the Device Manager manual firmware screen. Information on all installed X64- CL Express boards, their serial numbers, and their firmware components are shown. A manual firmware update is as follows: • Select the X64-CL Express via the board selection box (if there are multiple boards in the system) • From the Configuration field drop menu select the firmware version required • Click on the Start Update button • Observe the firmware update progress in the message output window • Close the Device manager program when the X64-CL Express board reset complete message is shown.

Executing the Firmware Loader from the Start Menu If required, the X64-CL Firmware Loader program is executed via the Windows Start Menu shortcut Start • Programs • Teledyne DALSA • X64-CL Express Device Driver •Firmware Update. A firmware change after installation is required to select a different Camera Link mode. See "X64-CL Express User Programmable Configurations" on page 5.

14 • Installing the X64-CL Express X64-CL Express User's Manual

Enabling the Camera Link Serial Control Port

The Camera Link cabling specification includes a port for direct camera control by the frame grabber (see "J1: Camera Link Connector 1 " on page 73). The X64-CL Express driver supports this serial communication port either directly or by mapping it to a host computer COM port. Any serial port communication program, such as Windows HyperTerminal, can connect to the camera in use and modify its function modes via its serial port controls. The X64-CL Express serial port supports communication speeds from 9600 to 115 kbps.

Note: if your serial communication program can directly select the X64-CL Express serial port then mapping to a system COM port is not necessary.

The X64-CL Express serial port is mapped to an available COM port by using the Sapera Configuration tool. Run the program from the Windows start menu: Start•Programs•Teledyne DALSA•Sapera LT•Sapera Configuration. COM Port Assignment The lower section of the Sapera Configuration program screen contains the serial port configuration menu. Configure as follows: • Use the Physical Port drop menu to select the Sapera board device from all available Sapera boards with serial ports (when more then one board is in the system). • Use the Maps to drop menu to assign an available COM number to that Sapera board serial port. • Click on the Save Settings Now button then the Close button. You are prompted to reboot your computer to enable the serial port mapping. • The X64-CL Express serial port, now mapped to COM3 in this example, is available as a serial port to any serial port application for camera control. Note that this serial port is not listed in the Windows Control Panel•System Properties•Device Manager because it is a logical serial port mapping. • An example setup using Windows HyperTerminal follows (see "Setup Example with Windows HyperTerminal" on page 16).

X64-CL Express User's Manual Installing the X64-CL Express • 15

Setup Example with Windows HyperTerminal • Run HyperTerminal and type a name for the new connection when prompted. Then click OK. • On the following dialog screen select the COM port to connect with. In this example the X64-CL Express serial port was previously mapped to COM3 by the Sapera Configuration program.

16 • Installing the X64-CL Express X64-CL Express User's Manual

• HyperTerminal now presents a dialog to configure the COM port properties. Change settings as required by the camera you are connecting to. Note that the X64-CL Express serial port does not support hardware flow control.

X64-CL Express User's Manual Installing the X64-CL Express • 17

Displaying X64-CL Express Board Information

The Device Manager program also displays information about the X64-CL Express boards installed in the system. To view board information run the program via the Windows Start Menu shortcut Start • Programs • Teledyne DALSA • X64-CL Express Device Driver • Device Manager. Device Manager – Board Viewer The following screen image shows the Device Manager program with the Information/Firmware tab active. The left window displays all X64-CL Express boards in the system and their individual device components. The right window displays the information stored in the selected board device. This example screen shows the X64-CL Express information contained in the EEProm component. The X64-CL Express device manager report file (BoardInfo.txt) is generated by clicking File • Save Device Info. This report file may be requested by Teledyne DALSA Technical Support to aid in troubleshooting installation or operational problems.

18 • Installing the X64-CL Express X64-CL Express User's Manual

Camera to Camera Link Connections X64-CL Express End Bracket

X64-CL Express

13 1 13 1 26 14 26 14

J1 LED LED J2 3M MDR 26 pin 3M MDR 26 pin female connector female connector The hardware installation process is completed with the connection of a supported camera to the X64-CL Express board using Camera Link cables (see “Camera Link Cables” on page 89). • The X64-CL Express board supports a camera with one or two Camera Link MDR-26 connectors (two Base or one Medium – see “Data Port Summary” on page 88 for information on Camera Link configurations). • Connect the camera to the J1 connector with a Camera Link cable. When using a Medium camera, connect the second camera connector to J2. Refer to section "Connector and Switch Specifications" on page 71 for details on the Camera Link connectors.

Caution: If the camera is powered by the X64-CL Express, it is very important that the correct power supply voltage is selected correctly. Refer to "J8: Power to Camera Voltage Selector" on page 84 for information on the selection jumper.

Contact Teledyne DALSA or browse our web site http://www.teledynedalsa.com/imaging/ for the latest information on X64-CL Express supported cameras.

X64-CL Express User's Manual Installing the X64-CL Express • 19

Configuring Sapera

Viewing Installed Sapera Servers The Sapera configuration program (Start • Programs • Teledyne DALSA • Sapera LT • Sapera Configuration) allows the user to see all available Sapera servers for the installed Sapera-compatible boards. The System entry represents the system server. It corresponds to the host machine (your computer) and is the only server that should always be present. Increasing Contiguous Memory for Sapera Resources The Contiguous Memory section lets the user specify the total amount of contiguous memory (a block of physical memory, occupying consecutive addresses) reserved for the resources needed for Sapera buffers allocation and Sapera messaging. For both items, the Requested value dialog box shows the driver default memory setting while the Allocated value displays the amount of contiguous memory that has been allocated successfully. The default values will generally satisfy the needs of most applications. The Sapera buffers value determines the total amount of contiguous memory reserved at boot time for the allocation of dynamic resources used for host frame buffer management such as DMA descriptor tables plus other kernel needs. Adjust this value higher if your application generates any out-of-memory error while allocating host frame buffers. You can approximate the amount of contiguous memory required as follows: • Calculate the total amount of host memory used for frame buffers [ number of frame buffers • number of pixels per line • number of lines • (2 - if buffer is 10 or 12 bits) ]. • Provide 1MB for every 256 MB of host frame buffer memory required. • Add an additional 1 MB if the frame buffers have a short line length, say 1k or less ( the increased number of individual frame buffers requires more resources ). • Add an additional 2 MB for various static and dynamic Sapera resources. • Test for any memory error when allocating host buffers. Simply use the Buffer menu of the Sapera Grab demo program (see "Using the Grab Demo" on page 39) to allocate the number of host buffers required for your acquisition source. Feel free to test the maximum limit of host buffers possible on your host system – the Sapera Grab demo will not crash when the requested number of host frame buffers cannot be allocated.

20 • Installing the X64-CL Express X64-CL Express User's Manual

Host Computer Frame Buffer Memory Limitations When planning a Sapera application and its host frame buffers used, plus other Sapera memory resources, do not forget the Windows operating system memory needs. Window XP as an example, should always have a minimum of 128 MB for itself. A Sapera application using scatter gather buffers could consume most of the remaining system memory. When using frame buffers allocated as a single contiguous memory block, typical limitations are one third of the total system memory with a maximum limit of approximately 100 MB. See the Buffer menu of the Sapera Grab demo program for information on selecting the type of host buffer memory allocation. Contiguous Memory for Sapera Messaging The current value for Sapera messaging determines the total amount of contiguous memory reserved at boot time for messages allocation. This memory space is used to store arguments when a Sapera function is called. Increase this value if you are using functions with large arguments, such as arrays and experience any memory errors.

Troubleshooting Installation Problems

The X64-CL Express (and the X64 family of products) has been tested by Teledyne DALSA in a variety of computers. Although unlikely, installation problems may occur due to the constant changing nature of computer equipment and operating systems. This section describes what the user can verify to determine the problem or the checks to make before contacting Technical Support. Note that information provided within this section will be updated with the latest information Teledyne DALSA can provide for each manual version released. If you require help and need to contact Teledyne DALSA Technical Support, make detailed notes on your installation and/or test results for our technical support to review. See "Technical Support" on page 108 for contact information. Recovering from a Firmware Update Error This procedure is required if any failure occurred while updating the X64-CL Express firmware on installation or during a manual firmware upgrade. On the rare occasion the board has corrupted firmware, any Sapera application such as CamExpert or the grab demo program will not find an installed board to control. Possible reasons for firmware loading errors or corruption are: • Computer system mains power failure or deep brown-out. • PCI bus or checksum errors. • PCI bus timeout conditions due to other devices. • User forcing a partial firmware upload using an invalid firmware source file.

X64-CL Express User's Manual Installing the X64-CL Express • 21

When the X64-CL Express firmware is corrupted, executing a manual firmware upload will not work because the firmware loader can not communicate with the board. In an extreme case, corrupted firmware may even prevent Windows from booting. Solution: The user manually forces the board to initialize from write protected firmware designed only to allow driver firmware uploads. When the firmware upload is complete, the board is then rebooted to initialize in its normal operational mode. • This procedure requires removing the X64-CL Express board several times from the computer. • Important: Referring to the board's user manual (in the connectors and jumpers reference section), identify the configuration jumper location. The Boot Recovery Mode jumper for the X64-CL Express is J11 (see "J11: Start Mode" on page 85). • Shut down Windows and power OFF the computer. • Remove the shorting jumper installed on J11. The default position is J11 installed for normal operation, while the jumper removed is for the boot recovery mode position. • Power on the computer. Windows will boot normally. • When Windows has started, do a manual firmware update procedure to update the firmware again (see "Executing the Firmware Loader from the Start Menu" on page 14). • When the update is complete, shut down Windows and power off the computer. • Set the shorting jumper back onto J11 (i.e. default position) and power on the computer once again. • Verify that the frame grabber is functioning by running a Sapera application such as CamExpert. The Sapera application will now be able to communicate with the X64-CL Express board. Windows Event Viewer Windows Event Viewer (Computer Management • System Tools • Event Viewer), lists various events that have taken place during the Operating System boot sequence. If a driver generates an error, it will normally log an entry in the event list. Device Manager Program The Device Manager program provides a convenient method of collecting information about the installed X64-CL Express. System information such as operating system, computer CPU, system memory, PCI configuration space, plus X64-CL Express firmware information can be displayed or written to a text file (default file name – BoardInfo.txt). Note that this is a second function mode of the same program used to manually upload firmware to the X64-CL Express. Execute the program via the Windows Start Menu shortcut Start • Programs • Teledyne DALSA • X64- CL Express Device Driver • Device Manager. If the Device Manager program does not run, it will exit with a message that the board was not found. Since the X64-CL Express board must have been in the system to install the board driver, possible reasons for an error are: • Board was removed • Board driver did not start or was terminated • PCI conflict after some other device was installed

22 • Installing the X64-CL Express X64-CL Express User's Manual

Information Window The following figure shows the Device Manager information screen. Click to highlight one of the board components and the information for that item is shown on the right hand window, as described below.

• Select Information to display identification and information stored in the X64-CL Express firmware. • Select Firmware to display version information for the firmware components. • Select one of the firmware components to load custom firmware when supplied by Teledyne DALSA engineering for a future feature. • Click on File • Save Device Info to save all information to a text file. Email this file when requested by Technical Support.

X64-CL Express User's Manual Installing the X64-CL Express • 23

PCI Configuration One of the first items to check when there is a problem with any PCI board is to examine the system PCI configuration and ensure that there are no conflicts with other PCI or system devices. The PCI Diagnostic program (cpcidiag.exe) allows examination of the PCI configuration registers and can save this information to a text file. Run the program via the Windows Start Menu shortcut Start • Programs • Teledyne DALSA • Sapera LT • Tools • PCI Diagnostics. As shown in the following screen image, use the first drop menu to select the PCI device to examine. Select the device from DALSA. Note the bus and slot number of the installed board (this will be unique for each system unless systems are setup identically). Click on the Diagnostic button to view an analysis of the system PCI configuration space.

Clicking on the Diagnostic button opens a new window with the diagnostic report. From the PCI Bus Number drop menu select the bus number that the X64-CL Express is installed in—in this example the slot is bus 1. The window now shows the I/O and memory ranges used by each device on the selected PCI bus. The information display box will detail any PCI conflicts. If there is a problem, click on the Save button. A file named ‘pcidiag.txt’ is created (in the Sapera\bin directory) with a full dump of the PCI configuration registers. Email this file when requested by the Teledyne DALSA Technical Support group along with a full description of your computer.

24 • Installing the X64-CL Express X64-CL Express User's Manual

Sapera and Hardware Windows Drivers The next step is to make certain the appropriate drivers have started successfully during the boot sequence. Example, click on the Start • Programs • Accessories • System Tools • System Information • Software Environment. Click on System Drivers (Windows XP). Make certain the following drivers have started for the X64-CL Express .

Device Description Type Started CorX64Expr X64-CL Express driver Kernel Driver Yes CorLog Sapera Log viewer Kernel Driver Yes CorMem Sapera Memory manager Kernel Driver Yes CorPci Sapera PCI configuration Kernel Driver Yes CorSerial Sapera Serial Port manager Kernel Driver Yes Teledyne DALSA Technical Support may request that you check the status of these drivers as part of the troubleshooting process. Log Viewer The third step in the verification process is to save in a text file the information collected by the Log Viewer program. Run the program via the Windows Start Menu shortcut Start • Programs • Teledyne DALSA • Sapera LT • Tools • Log Viewer. The Log Viewer lists information about the installed drivers. Click on File • Save and you will be prompted for a text file name to save the Log Viewer contents. Email this text file to Teledyne DALSA Technical Support when requested or as part of your initial contact email.

X64-CL Express User's Manual Installing the X64-CL Express • 25

Windows Device Manager In Windows XP, use the Start Menu shortcut Start • Settings • Control Panel • System • Hardware • Device Manager. As shown in the following screen images, look for X64-CL Express board under “Imaging Devices”. Double-click and look at the device status. You should see “This device is working properly.” Go to “Resources” tab and make certain that the device is mapped and has an interrupt assigned to it, without any conflicts.

Memory Requirements with Area Scan Acquisitions The X64-CL Express by default allocates two frame buffers in onboard memory, each equal in size to the acquisition frame buffer. This double buffering memory allocation is automatic at the driver level. The X64-CL Express driver uses two buffers to ensure that the acquired video frame is complete and not corrupted in cases where the image transfer to host system memory may be interrupted and delayed by other host system processes. That is, the image acquisition to one frame buffer is not interrupted by any delays in transfer of the other frame buffer (which contains the previously acquired video frame) to system memory. Note that the number of onboard frame buffers is programmable. The total size of the two internal frame buffers must be somewhat smaller than the total onboard memory due to memory overhead required for image transfer management. When the X64-CL Express does not have enough onboard memory for the requested number of frame buffers, the memory error message [ Error: "CorXferConnect" - No memory () ] occurs when loading a Sapera camera file, or when the application configures a frame buffer.

26 • Installing the X64-CL Express X64-CL Express User's Manual

Symptoms: CamExpert Detects no Boards • If using Sapera version 5.30 or later: When starting CamExpert, if no Teledyne DALSA board is detected, CamExpert will start in offline mode. There is no error message and CamExpert is functional for creating or modifying a camera configuration file. If CamExpert should have detected the installed board, troubleshoot the installation problem as described below.

Troubleshooting Procedure When CamExpert detects no installed Teledyne DALSA board, there could be a hardware problem, a PnP problem, a PCI problem, a kernel driver problem, or a software installation problem.

• Make certain that the card is properly seated in PCIe slot. • Perform all installation checks described in this section (“Troubleshooting Installation Problems” on page 21) before contacting Technical Support. • Try the board in a different PCIe slot if available. Symptoms: X64-CL Express Does Not Grab You are able to start Sapera CamExpert but you do not see an image and the frame rate displayed is 0. • Verify power is connected to the camera. • Verify the camera and timing parameters with the camera in free run mode. • Verify you can grab with the camera in free run mode. • Make certain that you provide an external trigger if the camera configuration file requires one. Use the software trigger feature of CamExpert if you do not have a trigger source. • Make certain that the camera is properly connected to the cable. • Make certain that the camera is configured for the proper mode of operation. This must match the camera configuration file. Refer to your camera datasheet. • Try to snap one frame instead of continuous grab. • Perform all installation checks described in this section (“Troubleshooting Installation Problems” on page 21) before contacting Technical Support.

X64-CL Express User's Manual Installing the X64-CL Express • 27

Symptoms: Card grabs black You are able to use Sapera CamExpert, the displayed frame rate is as expected, but the display is always black. • Set your camera to manual exposure mode and set the exposure to a longer period, plus open the lens iris. • Try to snap one frame instead of continuous grab. • Make certain that the input LUT is not programmed to output all ‘0’s. • This problem is sometimes caused by a PCIe transfer issue. No PCIe transfer takes place, so the frame rate is above 0 but nevertheless no image is displayed in CamExpert. • Make certain that BUS MASTER bit in the PCIe configuration space is activated. Look in PCI Diagnostics for BM button under “Command” group. Make certain that the BM button is activated. • Perform all installation checks described in this section (“Troubleshooting Installation Problems” on page 21) before contacting Technical Support. Symptoms: Card acquisition bandwidth is less than expected The X64-CL Express acquisition bandwidth is less than expected. • Review the system for problems or conflicts with other expansion boards or drivers. • Remove other PCI Express, PCI-32 or PCI-64 boards and check acquisition bandwidth again. engineering has seen this case where other PCI boards in some systems cause limitations in transfers. Each system, with its combination of system motherboard and PCI boards, will be unique and will need to be tested for bandwidth limitations affecting the imaging application.

28 • Installing the X64-CL Express X64-CL Express User's Manual CamExpert Quick Start for the X64-CL Express

Interfacing Cameras with CamExpert

CamExpert is the camera interfacing tool for frame grabber boards supported by the Sapera library. CamExpert generates the Sapera camera configuration file (yourcamera.ccf) based on timing and control parameters entered. For backward compatibility with previous versions of Sapera, CamExpert also reads and writes the *.cca and *.cvi camera parameter files. Every Sapera demo program starts by a dialog window to select a camera configuration file. Even when using the X64-CL Express with common video signals, a camera file is required. Therefore CamExpert is typically the first Sapera application run after an installation. Obviously existing .ccf files can be copied to the new installation when similar cameras are used. CamExpert Example with a Monochrome Camera The image below shows CamExpert with the X64-CL Express. The camera outputs monochrome 8-bit video on a Base Camera Link interface. After selecting the camera model, the timing parameters are displayed and the user can test by clicking on Grab. Descriptions of the CamExpert windows follows the image.

X64-CL Express User's Manual CamExpert Quick Start for the X64-CL Express • 29

The CamExpert sections are: • Device: Select which acquisition device to control and configure a camera file for. Required in cases where there are multiple boards in a system and also when one board supports multiple acquisition types. Note in this example, the X64-CL Express was installed with Medium Camera Link support for monochrome or RGB cameras. • Camera: Select the timing for a specific camera model included with the Sapera installation or a standard video standard. The User's subsection is where created camera files are stored. • Timing & Control Parameters: The central section of CamExpert provides access to the various Sapera parameters supported by X64-CL Express. There are four or five tabs dependent on the acquisition board, as described below:

Basic Timing Parameters Basic parameters used to define the timing of the camera. This includes the vertical, horizontal, and pixel clock frequency. This tab is sufficient to configure a free-running camera. Advanced Control Parameters Advanced parameters used to configure camera control mode and strobe output. Also provides analog signal conditioning (brightness, contrast, DC restoration, etc.) for analog boards. External Trigger Parameters Parameters to configure the external trigger characteristics. Image Buffer and AOI Parameters Control of the host buffer dimension and format. Multi-Camera Control Parameters Dependent on the frame acquisition board, provides camera selection and color planar transfer selection.

30 • CamExpert Quick Start for the X64-CL Express X64-CL Express User's Manual

• Display: An important component of CamExpert is its live acquisition display window which allows immediate verification of timing or control parameters without the need to run a separate acquisition program. Grab starts continuous acquisition (button then toggles to Freeze to stop). Snap is a single frame grab. Trigger is a software trigger to emulate an external source. • Output Messages and Bottom Status Bar: Events and errors are logged for review. Camera connection status is displayed where green indicates signal present.

For context sensitive help click on the button then click on a camera configuration parameter. A short description of the configuration parameter will be shown in a popup. Click on the button to open the help file for more descriptive information on CamExpert.

CamExpert Demonstration and Test Tools

The CamExpert utility also includes a number of demonstration features which make CamExpert the primary tool to configure, test and calibrate your camera and imaging setup. Display tools include, image pixel value readout, image zoom, and line profiler. Functional tools include hardware Flat Field calibration and operation support (see “Using the Flat Field Correction Tool” on page 34), plus support for either hardware based or software Bayer filter camera decoding with auto white balance calibration (see “Using the Bayer Filter Tool” on page 36).

Camera Types & Files Applicable to the X64-CL Express

The X64-CL Express supports digital area scan or linescan cameras using the Camera Link interface standard. See "Camera to Camera Link Connections" on page 19 for information on connecting a Camera Link camera. Contact Teledyne DALSA or browse our web site [http://www.teledynedalsa.com/imaging/] for the latest information and application notes on X64-CL Express supported cameras. Camera Files Distributed with Sapera The Sapera distribution CDROM includes camera files for a selection of X64-CL Express supported cameras. Using the Sapera CamExpert program, you may use the camera files (CCA) provided to generate a camera configuration file (CCF) that describes the desired camera and frame grabber configuration.. Teledyne DALSA continually updates a camera application library composed of application information and prepared camera files. Along with the camera search utility on the Teledyne DALSA web site, as described above, a number of camera files are ready to download. Camera files are ASCII text and can be read with Windows Notepad on any computer without having Sapera installed.

X64-CL Express User's Manual CamExpert Quick Start for the X64-CL Express • 31

CamExpert Memory Errors when Loading Camera Configuration Files See section "Memory Requirements with Area Scan Acquisitions" on page 26. Overview of Sapera Acquisition Parameter Files (*.ccf or *.cca/*.cvi) Concepts and Differences between the Parameter Files There are two components to the legacy Sapera acquisition parameter file set: CCA files (also called cam- files) and CVI files (also called VIC files, i.e. video input conditioning). The files store video-signal parameters (CCA) and video conditioning parameters (CVI), which in turn simplifies programming the frame-grabber acquisition hardware for the camera in use. Sapera LT 5.0 introduces a new camera configuration file (CCF) that combines the CCA and CVI files into one file. Typically, a camera application will use a CCF file per camera operating mode (or one CCA file in conjunction with several CVI files, where each CVI file defines a specific camera operating mode). An application can also have multiple CCA/CCF files so as to support different image format modes supported by the camera or sensor (such as image binning or variable ROI). CCF File Details Files using the “.CCF” extension, (Camera Configuration files), are essentially the camera (CCA) and frame grabber (CVI) parameters grouped into one file for easier configuration file management. This is the default Camera Configuration file used with Sapera LT 5.0 and the CamExpert utility. CCA File Details Teledyne DALSA distributes camera files using the “.CCA” extension, (CAMERA files), which contain all parameters describing the camera video signal characteristics and operation modes (what the camera outputs). The Sapera parameter groups within the file are: • Video format and pixel definition. • Video resolution (pixel rate, pixels per line, lines per frame). • Synchronization source and timing. • Channels/Taps configuration. • Supported camera modes and related parameters. • External signal assignment. CVI File Details Legacy files using the “.CVI” extension, (VIDEO files), contain all operating parameters related to the frame grabber board - what the frame grabber can actually do with camera controls or incoming video. The Sapera parameter groups within the file are: • Activate and set any supported camera control mode or control variable. • Define the integration mode and duration.

32 • CamExpert Quick Start for the X64-CL Express X64-CL Express User's Manual

• Define the strobe output control. • Allocate the frame grabber transfer ROI, the host video buffer size and buffer type (RGB888, RGB101010, MONO8, MONO16). • Configuration of line/frame trigger parameters such as source (internal via the frame grabber /external via some outside event), electrical format (TTL, LVDS, OPTO-isolated), and signal active edge or level characterization. Camera Interfacing Check List Before undertaking the task of interfacing a camera from scratch with CamExpert: • Confirm that Teledyne DALSA has not already published an application note with camera files [http://www.teledynedalsa.com/imaging/]. • Confirm that the correct version or board revision of X64-CL Express is used. Confirm that the required firmware is loaded into the X64-CL Express . • Confirm that Sapera does not already have a .cca file for your camera installed on your hard disk. If there is a .cca file supplied with Sapera, then use CamExpert to automatically generate the .ccf file with default parameter values matching the frame grabber capabilities. • Check if the Sapera installation has a similar type of camera file. A similar .cca file can be loaded into CamExpert where it is modified to match timing and operating parameters for your camera, and lastly save them as Camera Configuration file (.ccf). • Finally, if your camera type has never been interfaced, run CamExpert after installing Sapera and the acquisition board driver, select the board acquisition server, and manually enter the camera parameters.

X64-CL Express User's Manual CamExpert Quick Start for the X64-CL Express • 33

Using the Flat Field Correction Tool

Flat Field Correction is the process of eliminating small gain differences between pixels in a sensor array. That sensor when exposed to a uniformly lit field will have no gray level differences between pixels when calibrated flat field correction is applied to the image. The CamExpert Flat Field tool functions with hardware supporting flat field processing. X64-CL Express Flat Field Support The X64-CL Express supports hardware based real-time Flat Field Correction when used with its dual Base or one Medium configuration. Important: Flat field and flat line correction impose limitations to the maximum acquisition frame rate. Please contact the Teledyne DALSA support group for more details on camera specific maximum supported acquisition rates. Loading the Required Camera File Select the required camera configuration file for the connected camera. Verify the acquisition with the live grab function. Make camera adjustments to get good images. Also at this time make preparations to grab a flat gray level image such as a clean evenly lighted white wall or non-glossy paper. Note the lens iris position for a white but not saturated image. This white image is required for the calibration process. Flat Field Correction Calibration Procedure Calibration is the process of taking two reference images, one of a black field – one of a light gray field (not saturated), to generate correction data for images captured by the CCD. Each CCD pixel data is modified by the correction factor generated by the calibration process, so that each pixel now has an identical response to the same illumination. Start the Flat Field calibration tool via the CamExpert menu bar: Tools • Flat Field Correction • Calibration. Flat Field Calibration Window The Flat Field calibration window provides a three step process to acquire two reference images and then save the flat field correction data for the camera used. To aid in determining if the reference images are valid, a histogram tool is provided so that the user can review the images used for the correction data.

34 • CamExpert Quick Start for the X64-CL Express X64-CL Express User's Manual

• Setup the camera to capture a uniform black image. Black paper with no illumination and the camera lens’ iris closed to minimum can provide such a black image. • Click on Acquire Black Image. The flat field demo will grab a video frame, analyze the pixel gray level spread, and present the statistics. The desired black reference image should have pixel values less then 20. If acceptable accept the image as the black reference. • Setup the camera to acquire a uniform white image (but not saturated white). Even illumination on white paper can be used, with a gray level of 128 minimum. It is preferable to prepare for the white level calibration before the calibration procedure. • Click on Acquire White Image. The flat field demo will grab a video frame, analyze the pixel gray level spread, and present the statistics. The captured gray level for all pixels should be greater than 128. If acceptable accept the image as the white reference. • Click on Save. The flat field correction data is saved as a TIF image with a file name of your choice (such as camera name and serial number).

X64-CL Express User's Manual CamExpert Quick Start for the X64-CL Express • 35

Using Flat Field Correction From the CamExpert menu bar enable Flat Field correction (Tools • Flat Field Correction • Enable). Now when doing a live grab or snap, the incoming image is corrected by the current flat field calibration data for each pixel. Use the menu function Tools • Flat Field Correction • Load to load in a flat field correction image from a previous saved calibration data. CamExpert allows saving and loading calibration data for all cameras used with the imaging system.

Using the Bayer Filter Tool

CamExpert supports the use of Bayer Filter cameras by providing a tool to select the Bayer filter mosaic pattern and to perform an auto white balance. Color calibration can then be manually fine tuned with RGB gain and gamma adjustments. The CamExpert Bayer filter tool supports using both software or hardware based decoding. With boards that have Bayer filter decoding in hardware, such as the X64-CL Express with its Bayer decoding configuration, CamExpert directly controls the hardware for high performance real-time acquisitions from Bayer filter cameras. When standard acquisition boards are used, CamExpert performs software Bayer filter decoding using the host system. Bayer Filter White Balance Calibration Procedure The following procedure uses an X64-CL Express with hardware Bayer filter support (i.e. Medium Camera Link Bayer Decoder firmware loaded) and any supported Bayer color camera. It is assumed that CamExpert was used to generate a camera file with correct camera timing parameters. • On the CamExpert menu bar, click on Tools • Bayer Filter. The following menu should show Hardware selected by default when the X64-CL Express has Bayer support. • Select Setting to access the color calibration window (see following figure).

36 • CamExpert Quick Start for the X64-CL Express X64-CL Express User's Manual

• Click Grab to start live acquisition. • Aim and focus the camera. The camera should see an area of white or place white paper in front of the object being imaged. • Click on one of the four Bayer pixel alignment patterns to match the camera (best color before calibration). Typically the CamExpert default is correct for a majority of cameras. • Adjust the lens iris to reduce the exposure brightness so that the white image area is now darker. Make certain that no pixel in the white area is saturated. • Using the mouse left button, click and drag a ROI enclosing a portion of the white area. • Click on the Auto White Balance button. CamExpert will make RGB gain adjustments. • Open the camera iris to have a correctly exposed image. • Review the image for color balance. • Manually make additional adjustments to the RGB gain values. Fine tune the color balance to achieve best results. Adjust the gamma factor to additionally improve the display. • Stop the live acquisition and save camera file (which now contains the Bayer RGB calibration information). Note that the gamma factor is not save because it is not a Sapera parameter but only a display tool. Using the Bayer Filter A Sapera application, when loading the camera file parameters, will have the RGB gain adjustment values. The application can provide the calibration window to make RGB adjustments as required.

X64-CL Express User's Manual CamExpert Quick Start for the X64-CL Express • 37

38 • CamExpert Quick Start for the X64-CL Express X64-CL Express User's Manual Sapera Demo Applications

Grab Demo Overview

Program Start•Programs•Teledyne DALSA•Sapera LT•Demos•Grab Demo Program file \DALSA\Sapera\Demos\Classes\vc\GrabDemo\Release\GrabDemo.exe Workspace \DALSA\Sapera\Demos\Classes\vc\SapDemos.dsw .NET \DALSA \Sapera\Demos\Classes\vc\SapDemos_2003.sln Solution Description This program demonstrates the basic acquisition functions included in the Sapera library. The program allows you to acquire images, either in continuous or in one- shot mode, while adjusting the acquisition parameters. The program code may be extracted for use within your own application. Remarks This demo is built using Visual C++ 6.0 using the MFC library. It is based on Sapera C++ classes. See the Sapera User’s and Reference manuals for more information.

Using the Grab Demo Server Selection Run the grab demo from the start menu Start•Programs•Sapera LT•Demos•Grab Demo. The demo program first displays the acquisition configuration menu. The first drop menu displayed permits selecting from any installed Sapera acquisition servers (installed Teledyne DALSA acquisition hardware using Sapera drivers). The second drop menu permits selecting from the available input devices present on the selected server. CCF File Selection The acquisition configuration menu is also used to select the required camera configuration file for the connected camera. Sapera camera files contain timing parameters and video conditioning parameters. The default folder for camera configuration files is also used by the CamExpert utility to save user generated or modified camera files. Use the Sapera CamExpert utility program to generate the camera configuration file based on timing and control parameters entered. The CamExpert live acquisition window allows immediate verification of those parameters. CamExpert reads both Sapera *.cca and *.cvi for backward compatibility with the original Sapera camera files.

X64-CL Express User's Manual Sapera Demo Applications • 39

Grab Demo Main Window Refer to the Sapera LT User's Manual (OC-SAPM-USER), in section "Demos and Examples – Acquiring with Grab Demo", for more information on the Grab Demo.

Flat-Field Demo Overview

Program Start•Programs•Sapera LT•Demos•Sapera++•Flat Field Demo Program file \DALSA \Sapera\Demos\Classes\vc\FlatFieldDemo\Release\FlatfieldDemo.exe Workspace \DALSA\Sapera\Demos\Classes\vc\SapDemos.dsw Description This program demonstrates Flat Field or Flat Line processing, either performed by supporting Teledyne DALSA hardware or performed on the host system via the Sapera library. The program allows you to acquire a flat field or flat line reference image, and then do real time correction either in continuous or single acquisition mode. The program code may be extracted for use within your own application. Remarks This demo is built using Visual C++ 6.0 using the MFC library. It is based on Sapera C++ classes. See the Sapera User’s and Reference manuals for more information.

Using the Flat Field Demo Refer to the Sapera LT User's Manual (OC-SAPM-USER), in section "Using the Flat Field Demo", for more information.

40 • Sapera Demo Applications X64-CL Express User's Manual X64-CL Express Reference

X64-CL Express Medium Block Diagram

MDR26 #1 24 Data iLUT s

r Data & 4 FVAL i a Grab Controls LVAL P

CameraLink d DVAL e t Receiver s i 2 SPARE w CLK T CLK

CC1 LVDS CC2 4 CC3 Drivers and CC4 Receiver TX TX UART #1 RX RX Time Base MDR26 #2 24 Data FVAL iLUT s Frame Buffer r Data & 4 i a Grab Controls LVAL

P CameraLink Memory DVAL d

e Receiver t SPARE (32 MB) s i 2 w CLK

T CLK ACU-Plus

Data

Status Indicator 1 Camera On/Grab On Data LED Destination Buffer Address Table DTE Data-Transfer-Engine

Strobe TTL User Selected Processing Engine Phase A/B

t Shaft Encoder LVDS o

l I/O Controller

S Trigger In TTL / LVDS

. x u 1.5A/reset

A 12V Power Out 5V Power Gnd

Data Control

Control

X64-CL Express PCI Express x1 Controller Medium Configuration Simplified Block Diagram Host PCI Express x1 Slot

X64-CL Express User's Manual X64-CL Express Reference • 41

X64-CL Express Dual Base Block Diagram

MDR26 #1 24 Data Data s FVAL iLUT

r 4 i & a LVAL P CameraLink Grab Controls

d DVAL e

t Receiver s i 2 SPARE w CLK T CLK1

CC1 LVDS CC2 4 CC3 Drivers and CC4 Receiver TX TX UART #1 RX RX Time Base # 1 MDR26 #2 24 Data Data FVAL s

r 4 i & iLUT a CameraLink LVAL P Frame Buffer Grab Controls

d DVAL

e Receiver t SPARE Memory s i 2 w CLK 2 (32 MB)

T CLK ACU-Plus CC1 LVDS CC2 4 CC3 Drivers and CC4 Receiver Data TX TX UART #2 RX RX Time Base # 2 Indicators Status Indicator 1 s Camera On/Grab On D

E Status Indicator 2 L Camera On/Grab On Data Destination Buffer Address Table DTE 2 Strobe TTL Data-Transfer-Engine

Phase A/B User Selected t Shaft Encoder LVDS o

l Processing Engine 2 I/O Controller S Trigger In TTL / LVDS

. x u 1.5A/reset 12V A Power Out 5V Power Gnd

Data Control

Control

X64-CL Express PCI Express x1 Controller Dual Configuration Simplified Block Diagram

Host PCI Express x1 Bus

42 • X64-CL Express Reference X64-CL Express User's Manual

X64-CL Express Acquisition Timing

DATA first7 last8

PCLK2 Pixel Clock Range: 20 MHz up to 85 MHz

LVAL/FVAL setup time1: Minimum 15ns

LVAL3 Min/Max9 HB5 (Hsync)

FVAL Min/Max4,9 VB6 (Vsync)

. 1 The setup times for LVAL and FVAL are the same. Both must be high and stable before the rising edge of the Pixel Clock. . 2 Pixel Clock must always be present. . 3 LVAL must be active high to acquire camera data. . 4 Minimum of 1. . 5 HB - Horizontal Blanking: . 6 VB - Vertical Blanking: Minimum: 4 clocks/cycle Minimum: 1 line Maximum: no limits Maximum: no limits

. 7 First Active Pixel (unless otherwise specified in the CCA file – "Horizontal Back invalid = x" where ‘x’ defines the number of pixels to be skipped). . 8 Last Active Pixel – defined in the CCA file under "Horizontal active = y" – where ‘y’ is the total number of active pixels per tap. . 9 Maximum Valid Data: . 8-bits/pixel x 256K Pixels/line (LVAL) . 16-bits/pixel x 128K Pixels/line (LVAL) . 32-bits/pixel x 64K Pixels/line (LVAL) . 64-bits/pixel x 32K Pixels/line (LVAL) . 16,000,000 lines (FVAL)

X64-CL Express User's Manual X64-CL Express Reference • 43

Line Trigger Source Selection for Linescan Applications

Linescan imaging applications require some form of external event trigger to synchronize linescan camera exposures to the moving object. This synchronization signal is either an external trigger source (one exposure per trigger event) or a shaft encoder source composed of a single or dual phase (quadrature) signal. The X64-CL Express shaft encoder inputs provide additional functionality with pulse drop or pulse multiply support. The following table describes the line trigger source types supported by the X64-CL Express. Refer to the Sapera Acquisition Parameters Reference Manual (OC-SAPM-APR00) for descriptions of the Sapera parameters. CORACQ_PRM_EXT_LINE_TRIGGER_SOURCE – Parameter Values Specific to the X64-CL series

PRM Value Active Shaft Encoder Input 0 Default 1 Use phase A 2 Use phase B 3 Use phase A & B 4 From Board Sync 5 Phase A & B, shaft encoder after pulse drop/multiply output to Board Sync 6 Phase A & B, camera line trigger output to Board Sync

44 • X64-CL Express Reference X64-CL Express User's Manual

CORACQ_PRM_EXT_LINE_TRIGGER_SOURCE full description relative to trigger type and X64-CL Express configuration used: PRM X64-CL Express External Line Trigger External Shaft Encoder Value configuration & Signal used Signal used camera input used if if CORACQ_PRM_EXT_LINE_ CORACQ_PRM_SHAFT_ TRIGGER_ENABLE = true ENCODER_ENABLE =true 0 Dual - Camera #1 Shaft Encoder Phase A Shaft Encoder Phase A Dual - Camera #2 Shaft Encoder Phase B Shaft Encoder Phase B Medium - Camera #1 Shaft Encoder Phase A Shaft Encoder Phase A & B

1 Dual - Camera #1 Shaft Encoder Phase A Shaft Encoder Phase A Dual - Camera #2 Shaft Encoder Phase A Shaft Encoder Phase A Medium - Camera #1 Shaft Encoder Phase A Shaft Encoder Phase A

2 Dual - Camera #1 Shaft Encoder Phase B Shaft Encoder Phase B Dual - Camera #2 Shaft Encoder Phase B Shaft Encoder Phase B Medium - Camera #1 Shaft Encoder Phase B Shaft Encoder Phase B

3, 5, 6 Dual - Camera #1 n/a Shaft Encoder Phase A & B Dual - Camera #2 n/a Shaft Encoder Phase A & B Medium - Camera #1 n/a Shaft Encoder Phase A & B 4 Dual Camera #1 From Board Sync From Board Sync Dual Camera #2 From Board Sync From Board Sync Medium Camera #1 From Board Sync From Board Sync See "J4: External Signals Connector " on page 77 for shaft encoder input connector details. CVI/CCF File Parameters Used • External Line Trigger Source = prm value • External Line Trigger Enable = true/false • Shaft Encoder Enable = true/false

X64-CL Express User's Manual X64-CL Express Reference • 45

Shaft Encoder Interface Timing Connector J4, Dual Balanced Shaft Encoder Inputs: • Input 1: Pin 15 (Phase A +) & Pin 16 (Phase A -) • Input 2: Pin 17 (Phase B +) & Pin 18 (Phase B -) (see "J4: External Signals Connector " on page 77 for complete connector signal details) • (Also see “X64-CL Express: External Signals Connector Bracket Assembly” on page 80 for pinout) Web inspection systems with variable web speeds typically provide one or two synchronization signals from a web mounted encoder to coordinate trigger signals. These trigger signals are used by the acquisition linescan camera. The X64-CL Express supports single or dual shaft encoder signals. Dual encoder signals are typically 90 degrees out of phase relative to each other and provide greater web motion resolution. When enabled, the camera is triggered and acquires one scan line for each shaft encoder pulse edge. To optimize the web application, a second Sapera parameter defines the number of triggers to skip between valid acquisition triggers. The figure below depicts a system where a valid camera trigger is any pulse edge from either shaft encoder signal. After a trigger the two following triggers are ignored (as defined by the Sapera pulse drop parameter).

K = Keep D = Drop or Skip K D D K D D K D D K D D K D D

Shaft Encoder phase A

Shaft Encoder phase B

Line acquired

Note: in this example, Number of trigger to drop = 2 Note that camera file parameters are best modified by using the Sapera CamExpert program.

46 • X64-CL Express Reference X64-CL Express User's Manual

CVI/CCF File Parameters Used Shaft Encoder Enable = X, where: • If X = 1, Shaft Encoder is enabled • If X = 0, Shaft Encoder is disabled Shaft Encoder Pulse Drop = X, where: • X = number of trigger pulses ignored between valid triggers

For information on camera configuration files see the Sapera Acquisition Parameters Reference Manual (OC-SAPM-APR00).

Virtual Frame Trigger for Linescan Cameras

When using linescan cameras a frame buffer is allocated in host system memory to store captured video lines. To control when a video line is stored as the first line in this “virtual” frame buffer, an external frame trigger signal is used. The number of lines sequentially grabbed and stored in the virtual frame buffer is controlled by the Sapera vertical cropping parameter. Virtual Frame Trigger Timing Diagram The following timing diagram shows an example of grabbing 10 video lines from a linescan camera and the use of virtual frame trigger to define when a video line is stored at the beginning of the virtual frame buffer. The virtual frame trigger signal (generated by some external event) is input on the X64-CL Express trigger input. • Virtual frame trigger can be TTL 5V or LVDS and be rising or falling edge active, active high or low, or double pulse rising or falling edge. • Virtual frame trigger control is configured for rising edge trigger in this example. • Virtual frame trigger connects to the X64-CL Express via the External Trigger Input 1 & 2 balanced inputs on connector J4, Input 1: pin 11 (+) and 12 (-), Input 2: pin 13 (+) and 14 (-). • After the X64-CL Express receives a virtual frame trigger, the camera control signal is output to the camera to trigger n lines of video as per the defined virtual frame size. • The camera control signal is either based on timing controls input on one or both X64-CL Express shaft encoder inputs (see “J4: External Signals Connector ” on page 77 pinout) or an internal X64-CL Express clock. • The number of lines captured is specified by the Sapera vertical cropping parameter.

X64-CL Express User's Manual X64-CL Express Reference • 47

Synchronization Signals for a Virtual Frame of 10 Lines. The following timing diagram shows the relationship between external Frame Trigger input, external Shaft Encoder input (one phase used), and camera control output to the camera.

Virtual Frame Trigger In

Shaft Encoder In

EXSYNC Out

LVAL In

Video Line In

Note: In this example, 10 lines are acquired The Maximum frame rate = Max. Line Rate / nb lines (Hz) In / Out signal reference is relative to frame grabber

CCF File Parameters Used The parameters listed below provide the control functionality for virtual frame reset. Applications either load pre-configured .CCF files or change these parameters directly during runtime.

Note that camera file parameters are best modified by using the Sapera CamExpert program.

External Frame Trigger Enable = X (with Virtual Frame Trigger enabled), where: • If X = 1, External Frame Trigger is enabled • If X = 0, External Frame Trigger is disabled External Frame Trigger Detection = Y (with Virtual Frame Trigger edge select), where: • If Y= 1, External Frame Trigger is active low • If Y= 2, External Frame Trigger is active high • If Y= 4, External Frame Trigger is active on rising edge • If Y= 8, External Frame Trigger is active on falling edge • If Y= 32, External Frame Trigger is dual-input rising edge • If Y= 64, External Frame Trigger is dual-input falling edge External Frame Trigger Level = Z (with Virtual Frame Trigger signal type), where: • If Z= 2, External Frame Trigger is a RS-422/LVDS signal

For information on camera files see the Sapera Acquisition Parameters Reference Manual (OC-SAPM- APR00).

48 • X64-CL Express Reference X64-CL Express User's Manual

Acquisition Methods

Sapera acquisition methods define the control and timing of the camera and frame grabber board. Various methods are available, grouped as: • Camera Trigger Methods (method 1 and 2 supported) • Line Integration Methods (method 1 through 4 supported) • Line Trigger Method 1 supported • Time Integration Methods (method 1 through 8 supported) • Strobe Methods (method 1 through 4 supported) Refer to the Sapera LT Acquisition Parameters Reference manual (OC-SAPM-APR00) for detailed information concerning camera and acquisition control methods.

X64-CL Express LUT availability

The following table defines the X64-CL Express input LUT availability.

Number of Number of Number of Output Pixel LUT Notes Digital Bits Taps Taps Format Format Medium Dual Base 8 4 3 MONO 8 8-in, 8-out 8 4 3 MONO 16 - Not Supported 10 4 2 MONO 8 10-in, 8-out 10 4 2 MONO 16 10-in, 10-out 10 bits in 10 LSBs of 16-bit 12 4 2 MONO 8 12-in, 8-out 8 MSB 12 4 2 MONO 16 12-in, 12-out 12 bits in 12 LSBs of 16-bit 14 - - MONO 8 - Not Supported 14 - - MONO 16 - Not Supported 16 - - MONO 8 - Not Supported 16 - - MONO 16 - Not Supported 8 x 3 (RGB) 2 1 RGB8888 3 x 8 bit 8 x 3 (RGB) 1 1 RGB101010 - Not Supported 10 x 3 (RGB) 1 - RGB888 Medium only 10 x 3 (RGB) 1 - RGB101010 Medium only 12 x 3 (RGB) 1 - RGB101010 Medium only 12 x 3 (RGB) 1 - RGB8888 Medium only

X64-CL Express User's Manual X64-CL Express Reference • 49

Trigger To Image Reliability

Trigger-to-image reliability incorporates all stages of image acquisition inside an integrated controller to increase reliability and simplify error recovery. The trigger-to-image reliability model brings together all requirements for image acquisition to a central management unit. These include signals to control camera timing, on-board FIFO memory to compensate for PCI bus latency, and comprehensive error notification. Whenever the X64-CL Express detects a problem, the user application is immediately informed and can take appropriate action to return to normal operation. The X64 series is designed with a robust ACU (Acquisition and Control Unit). The ACU monitors in real-time, the acquisition state of the input plus the DTE (Data Transfer Engine), which transfers image data from on-board FIFO memory into PC memory. In general these management processes are transparent to end-user applications. Applications ensure trigger-to-image reliability by monitoring events and controlling transfer methods as described below: Supported Events and Transfer Methods The following acquisition and transfer events are supported. Event monitoring is a major component to the Trigger-to-Image Reliability framework. Acquisition Events Acquisition events are related to the acquisition module. They provide feedback on the image capture phase. • External Trigger (Used/Ignored) Generated when the external trigger pin is asserted, usually indicating the start of the acquisition process. There are 2 types of external trigger events: ‘Used’ or ‘Ignored’. Following an external trigger, if the event generates a captured image, an External Trigger Used event will be generated (CORACQ_VAL_EVENT_TYPE_EXTERNAL_TRIGGER). If there is no captured image, an External Trigger Ignored event will be generated (CORACQ_VAL_EVENT_TYPE_EXTERNAL_TRIGGER_IGNORED). An external trigger event will be ignored if the rate at which the events are received are higher than the possible frame rate of the camera. • Start of Frame Event generated, during acquisition, when the video frame start is detected by the board acquisition hardware. The Sapera event value is CORACQ_VAL_EVENT_TYPE_START_OF_FRAME. • End of Frame Event generated, during acquisition, when the video frame end is detected by the board acquisition hardware. The Sapera event value is CORACQ_VAL_EVENT_TYPE_END_OF_FRAME. • Data Overflow The Data Overflow event indicates that there is not enough bandwidth for the acquired data to be transferred without loss. This is usually caused by limitations of the acquisition module and should never occur. The Sapera event value is CORACQ_VAL_EVENT_TYPE_DATA_OVERFLOW.

50 • X64-CL Express Reference X64-CL Express User's Manual

• Frame Valid Event generated when the video frame start is detected by the board acquisition hardware. Acquisition does not need to be started, therefore this event can verify a valid signal is connected. The Sapera event value is CORACQ_VAL_EVENT_TYPE_VERTICAL_SYNC. • Pixel Clock (Present/Absent) Event generated on the transition from detecting or not detecting a pixel clock signal. The Sapera event values are CORACQ_VAL_EVENT_TYPE_NO_PIXEL_CLK and CORACQ_VAL_EVENT_TYPE_PIXEL_CLK. • Frame Lost The Frame Lost event indicates that an acquired image overflowed the input FIFO before the FIFO content could be transferred to host memory. An example would be if the image transfer from the on- board FIFO to the host PC memory cannot be sustained due to bus bandwidth issues. The Sapera event value is CORACQ_VAL_EVENT_TYPE_FRAME_LOST. • Vertical Timeout This event indicates a timeout situation where a camera fails to output a video frame after a trigger. The Sapera event value is CORACQ_VAL_EVENT_VERTICAL_TIMEOUT. Transfer Events Transfer events are the ones related to the transfer module. Transfer events provide feedback on image transfer from on-board FIFO memory to PC memory frame buffers. • Start of Frame The Start of Frame event is generated when the first image pixel is transferred from the on-board FIFO into PC memory. The Sapera event value is CORXFER_VAL_EVENT_TYPE_START_OF_FRAME. • End of Frame The End of Frame event is generated when the last image pixel is transferred from the on-board FIFO into PC memory. The Sapera event value is CORXFER_VAL_EVENT_TYPE_END_OF_FRAME. • End of Line The End of Line event is generated after a video line is transferred to a PC buffer. The Sapera event value is CORXFER_VAL_EVENT_TYPE_END_OF_LINE. • End of N Lines The End of N Lines event is generated after a set number of video lines are transferred to a PC buffer. The Sapera event value is CORXFER_VAL_EVENT_TYPE_END_OF_NLINES. • End of Transfer The End of Transfer event is generated at the completion of the last image being transferred from the on-board FIFO into PC memory. To complete a transfer, a stop must be issued to the transfer module (if transfers are already in progress). If a transfer of a fixed number of frames was requested, the transfer module will stop transfers automatically. The Sapera event value is CORXFER_VAL_EVENT_TYPE_END_OF_TRANSFER.

X64-CL Express User's Manual X64-CL Express Reference • 51

Trigger Signal Validity External trigger signal noise is easily ignored by the ACU with its programmable debounce control. A parameter is programmed for the minimum pulse duration considered as a valid external trigger pulse. Refer to “External Trigger TTL Input Electrical Specification” on page 83 for more information.

Supported Transfer Cycling Methods The X64-CL Express supports the following transfer cycle modes which are either synchronous or asynchronous. These definitions are from the Sapera Basic Reference manual. • CORXFER_VAL_CYCLE_MODE_SYNCHRONOUS_WITH_TRASH Before cycling to the next buffer in the list, the transfer device will check the next buffer's state. If its state is full, the transfer will be done in the trash buffer which is defined as the last buffer in the list; otherwise, it will occur in the next buffer. After a transfer to the trash buffer is done, the transfer device will check again the state of the next buffer. If it is empty, it will transfer to this buffer otherwise it will transfer again to the trash buffer. • CORXFER_VAL_CYCLE_MODE_SYNCHRONOUS_NEXT_EMPTY_WITH_TRASH Before cycling to the next buffer in the list, the transfer device will check the next buffer's state. If its state is full, the next buffer will be skipped, and the transfer will be done in the trash buffer, which is defined as the last buffer in the list; otherwise it will occur in the next buffer. After a transfer to the trash is done, the transfer device will check the next buffer in the list, if its state is empty, it will transfer to this buffer otherwise it will skip it, and transfer again to the trash buffer. • CORXFER_VAL_CYCLE_MODE_ASYNCHRONOUS The transfer device cycles through all buffers in the list without concern about the buffer state.

52 • X64-CL Express Reference X64-CL Express User's Manual

X64-CL Express Sapera Parameters

The three tables below describe the Sapera Parameters supported by the X64-CL Express. Unless specified, each capability applies to both boards or all mode configurations and all acquisition modes. Sapera capabilities not used have been omitted for clarity.

The board capabilities listing is subject to change. Capabilities should be verified by the application because new board driver releases may change certain capabilities.

Specifically the X64-CL Express family is described in Sapera as: • Board Server: X64-CL_Express_1 • Acquisition Device: Camera Link • Modes (X64-CL Express): Medium Mono or Medium Color RGB with Flat Field correction • Modes (X64-CL Express): Base Mono with Bayer mosaic filter decoding • Modes (X64-CL Express): Dual Base Mono with Flat Field correction

Capability Values CORACQ_CAP_CONNECTOR_TYPE CORACQ_VAL_CONNECTOR_TYPE_CAMLINK (0x2) CORACQ_CAP_CONNECTOR_CAMLINK (Pin – 01) CORACQ_VAL_SIGNAL_NAME_NO_CONNECT (0x1) CORACQ_VAL_SIGNAL_NAME_PULSE0 (0x8) CORACQ_VAL_SIGNAL_NAME_PULSE1 (0x10) CORACQ_VAL_SIGNAL_NAME_GND (0x4000) CORACQ_CAP_CONNECTOR_CAMLINK (Pin – 02) CORACQ_VAL_SIGNAL_NAME_NO_CONNECT (0x1) CORACQ_VAL_SIGNAL_NAME_PULSE0 (0x8) CORACQ_VAL_SIGNAL_NAME_PULSE1 (0x10) CORACQ_VAL_SIGNAL_NAME_GND (0x4000) CORACQ_CAP_CONNECTOR_CAMLINK (Pin – 03) CORACQ_VAL_SIGNAL_NAME_NO_CONNECT (0x1) CORACQ_VAL_SIGNAL_NAME_PULSE0 (0x8) CORACQ_VAL_SIGNAL_NAME_PULSE1 (0x10) CORACQ_VAL_SIGNAL_NAME_GND (0x4000) CORACQ_CAP_CONNECTOR_CAMLINK (Pin – 04) CORACQ_VAL_SIGNAL_NAME_NO_CONNECT (0x1)

Camera Related Parameters

Parameter Values CORACQ_PRM_CHANNEL Medium Mono 1, 2, 3 Base Mono 1, 2, 3 Bayer color 1 Medium RGB: 1 Base RGB: 1 CORACQ_PRM_FRAME CORACQ_VAL_FRAME_PROGRESSIVE (0x2) CORACQ_PRM_INTERFACE CORACQ_VAL_INTERFACE_DIGITAL (0x2)

X64-CL Express User's Manual X64-CL Express Reference • 53

CORACQ_PRM_SCAN All CORACQ_VAL_SCAN_AREA (0x1) All except Bayer color CORACQ_VAL_SCAN_LINE (0x2) CORACQ_PRM_SIGNAL CORACQ_VAL_SIGNAL_DIFFERENTIAL (0x2) CORACQ_PRM_VIDEO All Mono CORACQ_VAL_VIDEO_MONO (0x1) All Color RGB CORACQ_VAL_VIDEO_RGB (0x8) Bayer CORACQ_VAL_VIDEO_MONO (0x1) CORACQ_VAL_VIDEO_BAYER (0x10) CORACQ_PRM_PIXEL_DEPTH Medium, Base Mono: 8 bits, CORDATA_FORMAT_MONO8 LUT=1 10 bits, CORDATA_FORMAT_MONO8 LUT=1 10 bits, CORDATA_FORMAT_MONO10 LUT=1 12 bits, CORDATA_FORMAT_MONO8 LUT=1 12 bits, CORDATA_FORMAT_MONO12 LUT=1 14 bits, CORDATA_FORMAT_MONO14 LUT=0 16 bits, CORDATA_FORMAT_MONO16 LUT=0 Bayer color 8 bits, CORDATA_FORMAT_COLORNI8 LUT=1 10 bits, CORDATA_FORMAT_COLORNI10 LUT=1 12 bits, CORDATA_FORMAT_COLORNI12 LUT=1 Base RGB 8 bits, CORDATA_FORMAT_COLORNI8 LUT=1 Medium RGB: 8 bits, CORDATA_FORMAT_COLORNI8 LUT=1 10 bits, CORDATA_FORMAT_COLORNI10 LUT=1 12 bits, CORDATA_FORMAT_COLORNI12 LUT=1 CORACQ_PRM_VIDEO_STD CORACQ_VAL_VIDEO_STD_NON_STD (0x1) CORACQ_PRM_FIELD_ORDER CORACQ_VAL_FIELD_ORDER_NEXT_FIELD (0x4) CORACQ_PRM_HACTIVE min = 1 pixel max = 16777215 pixel step = 1 pixel CORACQ_PRM_HACTIVE Bayer color only min = 1 pixel max = 8192 pixel step = 1 pixel CORACQ_PRM_HSYNC min = 4 pixel max = 4294967295 pixel step = 1 pixel CORACQ_PRM_VACTIVE min = 1 line max = 16777215 line step = 1 line CORACQ_PRM_VSYNC min = 0 line max = 4294967295 line step = 1 line CORACQ_PRM_HFRONT_INVALID min = 0 pixel max = 16777215 pixel step = 1 pixel CORACQ_PRM_HBACK_INVALID min = 0 pixel max = 16777215 pixel step = 1 pixel CORACQ_PRM_VFRONT_INVALID min = 0 line max = 16777215 line step = 1 line CORACQ_PRM_VBACK_INVALID min = 0 line max = 16777215 line step = 1 line CORACQ_PRM_PIXEL_CLK_SRC CORACQ_VAL_PIXEL_CLK_SRC_EXT (0x2) CORACQ_PRM_PIXEL_CLK_INT min = 20000000 Hz max = 85000000 Hz step = 1 Hz

54 • X64-CL Express Reference X64-CL Express User's Manual

CORACQ_PRM_PIXEL_CLK_EXT min = 20000000 Hz max = 85000000 Hz step = 1 Hz CORACQ_PRM_PIXEL_CLK_11 20000000 Hz CORACQ_PRM_SYNC CORACQ_VAL_SYNC_SEP_SYNC (0x4) CORACQ_PRM_HSYNC_POLARITY CORACQ_VAL_ACTIVE_LOW (0x1) CORACQ_PRM_VSYNC_POLARITY CORACQ_VAL_ACTIVE_LOW (0x1) CORACQ_PRM_FRAME_INTEGRATE_METHOD Not available CORACQ_PRM_FRAME_INTEGRATE_POLARITY Not available CORACQ_PRM_TIME_INTEGRATE_METHOD CORACQ_VAL_TIME_INTEGRATE_METHOD_1 (0x1) CORACQ_VAL_TIME_INTEGRATE_METHOD_2 (0x2) CORACQ_VAL_TIME_INTEGRATE_METHOD_3 (0x4) CORACQ_VAL_TIME_INTEGRATE_METHOD_4 (0x8) CORACQ_VAL_TIME_INTEGRATE_METHOD_5 (0x10) CORACQ_VAL_TIME_INTEGRATE_METHOD_6 (0x20) CORACQ_VAL_TIME_INTEGRATE_METHOD_7 (0x40) CORACQ_VAL_TIME_INTEGRATE_METHOD_8 (0x80) CORACQ_VAL_TIME_INTEGRATE_METHOD_9 (0x100) CORACQ_PRM_CAM_TRIGGER_METHOD CORACQ_VAL_CAM_TRIGGER_METHOD_1 (0x1) CORACQ_VAL_CAM_TRIGGER_METHOD_2 (0x2) CORACQ_PRM_CAM_TRIGGER_POLARITY CORACQ_VAL_ACTIVE_LOW (0x1) CORACQ_VAL_ACTIVE_HIGH (0x2) CORACQ_PRM_CAM_TRIGGER_DURATION min = 1 µs max = 65535000 µs step = 1 µs CORACQ_PRM_CAM_RESET_METHOD CORACQ_VAL_CAM_RESET_METHOD_1 (0x1) CORACQ_PRM_CAM_RESET_POLARITY CORACQ_VAL_ACTIVE_LOW (0x1) CORACQ_VAL_ACTIVE_HIGH (0x2) CORACQ_PRM_CAM_RESET_DURATION min = 1 µs max = 65535000 µs step = 1 µs CORACQ_PRM_CAM_NAME Default Area Scan CORACQ_PRM_LINE_INTEGRATE_METHOD CORACQ_VAL_LINE_INTEGRATE_METHOD_1 (0x1) CORACQ_VAL_LINE_INTEGRATE_METHOD_2 (0x2) CORACQ_VAL_LINE_INTEGRATE_METHOD_3 (0x4) CORACQ_VAL_LINE_INTEGRATE_METHOD_4 (0x8) CORACQ_VAL_LINE_INTEGRATE_METHOD_7 (0x40) CORACQ_PRM_LINE_TRIGGER_METHOD CORACQ_VAL_LINE_TRIGGER_METHOD_1 (0x1) CORACQ_PRM_LINE_TRIGGER_POLARITY CORACQ_VAL_ACTIVE_LOW (0x1) CORACQ_VAL_ACTIVE_HIGH (0x2) CORACQ_PRM_LINE_TRIGGER_DELAY min = 0 µs max = 65535 µs step = 1 µs CORACQ_PRM_LINE_TRIGGER_DURATION min = 0 µs max = 65535 µs step = 1 µs CORACQ_PRM_TAPS Medium Mono: max = 6 taps Base Mono: max = 3 taps Medium RGB: max = 4 taps Base RGB: max = 1 tap Bayer Color max = 3 taps

X64-CL Express User's Manual X64-CL Express Reference • 55

CORACQ_PRM_TAP_OUTPUT All modes CORACQ_VAL_TAP_OUTPUT_ALTERNATE (0x1) All modes CORACQ_VAL_TAP_OUTPUT_SEGMENTED (0x2)

Medium mono and Bayer color only CORACQ_VAL_TAP_OUTPUT_PARALLEL (0x4) CORACQ_PRM_TAP_1_DIRECTION All mono and color CORACQ_VAL_TAP_DIRECTION_LR (0x1) versions CORACQ_VAL_TAP_DIRECTION_RL (0x2) CORACQ_VAL_TAP_DIRECTION_UD (0x4) CORACQ_VAL_TAP_DIRECTION_DU (0x8) CORACQ_VAL_TAP_DIRECTION_FROM_TOP (0x10) CORACQ_VAL_TAP_DIRECTION_FROM_MID (0x20) CORACQ_VAL_TAP_DIRECTION_FROM_BOT (0x40) CORACQ_PRM_TAP_2_DIRECTION Base & Medium mono CORACQ_VAL_TAP_DIRECTION_LR (0x1) Medium RGB, and CORACQ_VAL_TAP_DIRECTION_RL (0x2) Bayer Color only CORACQ_VAL_TAP_DIRECTION_UD (0x4) CORACQ_VAL_TAP_DIRECTION_DU (0x8) CORACQ_VAL_TAP_DIRECTION_FROM_TOP (0x10) CORACQ_VAL_TAP_DIRECTION_FROM_MID (0x20) CORACQ_VAL_TAP_DIRECTION_FROM_BOT (0x40) CORACQ_PRM_TAP_3_DIRECTION Base & Medium mono CORACQ_VAL_TAP_DIRECTION_LR (0x1) Medium RGB, and CORACQ_VAL_TAP_DIRECTION_RL (0x2) Bayer Color only CORACQ_VAL_TAP_DIRECTION_UD (0x4) CORACQ_VAL_TAP_DIRECTION_DU (0x8) CORACQ_VAL_TAP_DIRECTION_FROM_TOP (0x10) CORACQ_VAL_TAP_DIRECTION_FROM_MID (0x20) CORACQ_VAL_TAP_DIRECTION_FROM_BOT (0x40) CORACQ_PRM_TAP_4_DIRECTION Medium mono and CORACQ_VAL_TAP_DIRECTION_LR (0x1) Medium RGB only CORACQ_VAL_TAP_DIRECTION_RL (0x2) CORACQ_VAL_TAP_DIRECTION_UD (0x4) CORACQ_VAL_TAP_DIRECTION_DU (0x8) CORACQ_VAL_TAP_DIRECTION_FROM_TOP (0x10) CORACQ_VAL_TAP_DIRECTION_FROM_MID (0x20) CORACQ_VAL_TAP_DIRECTION_FROM_BOT (0x40) CORACQ_PRM_TAP_5_DIRECTION Medium mono only CORACQ_VAL_TAP_DIRECTION_LR (0x1) CORACQ_VAL_TAP_DIRECTION_RL (0x2) CORACQ_VAL_TAP_DIRECTION_UD (0x4) CORACQ_VAL_TAP_DIRECTION_DU (0x8) CORACQ_VAL_TAP_DIRECTION_FROM_TOP (0x10) CORACQ_VAL_TAP_DIRECTION_FROM_MID (0x20) CORACQ_VAL_TAP_DIRECTION_FROM_BOT (0x40) CORACQ_PRM_TAP_6_DIRECTION Medium mono only CORACQ_VAL_TAP_DIRECTION_LR (0x1) CORACQ_VAL_TAP_DIRECTION_RL (0x2) CORACQ_VAL_TAP_DIRECTION_UD (0x4) CORACQ_VAL_TAP_DIRECTION_DU (0x8) CORACQ_VAL_TAP_DIRECTION_FROM_TOP (0x10) CORACQ_VAL_TAP_DIRECTION_FROM_MID (0x20) CORACQ_VAL_TAP_DIRECTION_FROM_BOT (0x40) CORACQ_PRM_PIXEL_CLK_DETECTION CORACQ_VAL_RISING_EDGE (0x4) CORACQ_PRM_CHANNELS_ORDER Base & Medium mono CORACQ_VAL_CHANNELS_ORDER_NORMAL (0x1) CORACQ_VAL_CHANNELS_ORDER_REVERSE (0x2) Base & Medium RGB CORACQ_VAL_CHANNELS_ORDER_NORMAL (0x1) and Bayer Color CORACQ_PRM_LINESCAN_DIRECTION Not available CORACQ_PRM_LINESCAN_DIRECTION_POLARITY Not available CORACQ_PRM_CAM_LINE_TRIGGER_FREQ_MIN 1 Hz CORACQ_PRM_CAM_LINE_TRIGGER_FREQ_MAX 16777215 Hz CORACQ_PRM_CAM_TIME_INTEGRATE_DURATION_MIN 1 µs CORACQ_PRM_CAM_TIME_INTEGRATE_DURATION_MAX 65535000 µs

56 • X64-CL Express Reference X64-CL Express User's Manual

CORACQ_PRM_TIME_INTEGRATE_PULSE1_POLARITY CORACQ_VAL_ACTIVE_LOW (0x1) CORACQ_VAL_ACTIVE_HIGH (0x2) CORACQ_PRM_TIME_INTEGRATE_PULSE1_DELAY min = 0 µs max = 65535000 µs step = 1 µs CORACQ_PRM_TIME_INTEGRATE_PULSE1_DURATION min = 0 µs max = 65535000 µs step = 1 µs CORACQ_PRM_TIME_INTEGRATE_PULSE0_POLARITY CORACQ_VAL_ACTIVE_LOW (0x1) CORACQ_VAL_ACTIVE_HIGH (0x2) CORACQ_PRM_TIME_INTEGRATE_PULSE0_DELAY min = 0 µs max = 65535000 µs step = 1 µs CORACQ_PRM_TIME_INTEGRATE_PULSE0_DURATION min = 1 µs max = 65535000 µs step = 1 µs CORACQ_PRM_LINE_INTEGRATE_PULSE1_POLARITY CORACQ_VAL_ACTIVE_LOW (0x1) CORACQ_VAL_ACTIVE_HIGH (0x2) CORACQ_PRM_LINE_INTEGRATE_PULSE1_DELAY min = 0 µs max = 65535000 µs step = 1 µs CORACQ_PRM_LINE_INTEGRATE_PULSE1_DURATION min = 1 µs max = 65535000 µs step = 1 µs CORACQ_PRM_LINE_INTEGRATE_PULSE0_POLARITY CORACQ_VAL_ACTIVE_LOW (0x1) CORACQ_VAL_ACTIVE_HIGH (0x2) CORACQ_PRM_LINE_INTEGRATE_PULSE0_DELAY min = 0 µs max = 65535 µs step = 1 µs CORACQ_PRM_LINE_INTEGRATE_PULSE0_DURATION min = 1 µs max = 65535000 µs step = 1 µs CORACQ_PRM_CONNECTOR_LINE_INTEGRATE_INPUT Connector #1, type 2, pin #1 CORACQ_PRM_CAMLINK_CONFIGURATION Medium Mono CORACQ_VAL_CAMLINK_CONFIGURATION_BASE (0x1) CORACQ_VAL_CAMLINK_CONFIGURATION_MEDIUM (0x2) CORACQ_VAL_CAMLINK_CONFIGURATION_2BASE (0x8) Medium RGB CORACQ_VAL_CAMLINK_CONFIGURATION_BASE (0x1) CORACQ_VAL_CAMLINK_CONFIGURATION_MEDIUM (0x2) Base Mono, Base RGB, and Bayer Color CORACQ_VAL_CAMLINK_CONFIGURATION_BASE (0x1) CORACQ_PRM_DATA_VALID_ENABLE TRUE / FALSE CORACQ_PRM_DATA_VALID_POLARITY CORACQ_VAL_ACTIVE_HIGH (0x2) CORACQ_PRM_TIMESLOT Medium Mono, Medium RGB, Bayer Color CORACQ_VAL_TIMESLOT_1 (0x1) CORACQ_VAL_TIMESLOT_2 (0x2) Base mono, Base RGB CORACQ_VAL_TIMESLOT_1 (0x1) CORACQ_PRM_BAYER_ALIGNMENT Bayer Color CORACQ_VAL_BAYER_ALIGNMENT_GR_BG (0x8) All other modes Not available CORACQ_PRM_CAM_CONTROL_DURING_READOUT TRUE / FALSE

X64-CL Express User's Manual X64-CL Express Reference • 57

VIC Related Parameters

Parameter Values CORACQ_PRM_CAMSEL all mono modes and Bayer: CAMSEL_MONO = from 0 to 0 all RGB modes: CAMSEL_RGB = from 0 to 0 CORACQ_PRM_PIXEL_MASK Not available CORACQ_PRM_CROP_LEFT min = 0 pixel max = 16777215 pixel step = 8 pixel CORACQ_PRM_CROP_TOP min = 0 line max = 16777215 line step = 1 line Bayer mode only step = 2 lines CORACQ_PRM_CROP_WIDTH min = 8 pixel max = 16777215 pixel step = 8 pixel CORACQ_PRM_CROP_HEIGHT min = 1 line max = 16777215 line step = 1 line CORACQ_PRM_SCALE_HORZ Not available CORACQ_PRM_SCALE_VERT Not available CORACQ_PRM_DECIMATE_METHOD CORACQ_VAL_DECIMATE_DISABLE (0x1) CORACQ_PRM_DECIMATE_COUNT Default = 0 CORACQ_PRM_LUT_ENABLE True / False CORACQ_PRM_LUT_NUMBER Default = 0 CORACQ_PRM_STROBE_ENABLE TRUE / FALSE CORACQ_PRM_STROBE_METHOD CORACQ_VAL_STROBE_METHOD_1 (0x1) CORACQ_VAL_STROBE_METHOD_2 (0x2) CORACQ_VAL_STROBE_METHOD_3 (0x4) CORACQ_VAL_STROBE_METHOD_4 (0x8) CORACQ_PRM_STROBE_POLARITY CORACQ_VAL_ACTIVE_LOW (0x1) CORACQ_VAL_ACTIVE_HIGH (0x2) CORACQ_PRM_STROBE_DURATION min = 0 µs max = 65535000 µs step = 1 µs CORACQ_PRM_STROBE_DELAY min = 0 µs max = 65535000 µs step = 1 µs CORACQ_PRM_FRAME_INTEGRATE_ENABLE Not available CORACQ_PRM_FRAME_INTEGRATE_COUNT Not available CORACQ_PRM_TIME_INTEGRATE_ENABLE TRUE / FALSE CORACQ_PRM_TIME_INTEGRATE_DURATION min = 1 µs max = 65535000 µs step = 1 µs CORACQ_PRM_CAM_TRIGGER_ENABLE TRUE / FALSE CORACQ_PRM_CAM_RESET_ENABLE TRUE / FALSE CORACQ_PRM_OUTPUT_FORMAT

58 • X64-CL Express Reference X64-CL Express User's Manual

Basel mono & Medium mono & Bayer color CORACQ_VAL_OUTPUT_FORMAT_MONO8 CORACQ_VAL_OUTPUT_FORMAT_MONO16 Medium RGB & Bayer color CORACQ_VAL_OUTPUT_FORMAT_RGB8888 CORACQ_VAL_OUTPUT_FORMAT_RGB101010 Base RGB CORACQ_VAL_OUTPUT_FORMAT_RGB8888 CORACQ_PRM_EXT_TRIGGER_ENABLE CORACQ_VAL_EXT_TRIGGER_OFF (0x1) CORACQ_VAL_EXT_TRIGGER_ON (0x8) CORACQ_PRM_VIC_NAME Default Area Scan CORACQ_PRM_LUT_MAX 1 CORACQ_PRM_LUT_FORMAT Mono mode Default = CORACQ_VAL_OUTPUT_FORMAT_MONO8 Base RGB mode Default = CORACQ_VAL_OUTPUT_FORMAT_RGB8888 Medium RGB mode Default = CORACQ_VAL_OUTPUT_FORMAT_RGB101010 Bayer Color mode Default = CORACQ_VAL_OUTPUT_FORMAT_MONO16 CORACQ_PRM_EXT_TRIGGER_DETECTION CORACQ_VAL_ACTIVE_LOW (0x1) CORACQ_VAL_ACTIVE_HIGH (0x2) CORACQ_VAL_RISING_EDGE (0x4) CORACQ_VAL_FALLING_EDGE (0x8) CORACQ_PRM_VSYNC_TIMEOUT Not available CORACQ_PRM_VSYNC_REF CORACQ_VAL_SYNC_REF_END (0x2) CORACQ_PRM_HSYNC_REF CORACQ_VAL_SYNC_REF_END (0x2) CORACQ_PRM_LINE_INTEGRATE_ENABLE TRUE / FALSE CORACQ_PRM_LINE_INTEGRATE_DURATION min = 1 pixel max = 16777215 pixel step = 1 pixel CORACQ_PRM_LINE_TRIGGER_ENABLE TRUE / FALSE CORACQ_PRM_EXT_FRAME_TRIGGER_ENABLE TRUE / FALSE CORACQ_PRM_EXT_FRAME_TRIGGER_DETECTION CORACQ_VAL_ACTIVE_LOW (0x1) CORACQ_VAL_ACTIVE_HIGH (0x2) CORACQ_VAL_RISING_EDGE (0x4) CORACQ_VAL_FALLING_EDGE (0x8) CORACQ_VAL_DOUBLE_PULSE_RISING_EDGE (0x20) CORACQ_VAL_DOUBLE_PULSE_FALLING_EDGE (0x40) CORACQ_PRM_EXT_LINE_TRIGGER_ENABLE TRUE / FALSE CORACQ_PRM_EXT_LINE_TRIGGER_DETECTION CORACQ_VAL_RISING_EDGE (0x4) CORACQ_PRM_SNAP_COUNT min = 1 frame max = 65535 step = 1 CORACQ_PRM_INT_LINE_TRIGGER_ENABLE TRUE / FALSE CORACQ_PRM_INT_LINE_TRIGGER_FREQ Default = 5000 Hz CORACQ_PRM_LINESCAN_DIRECTION_OUTPUT (*) Not available CORACQ_PRM_BIT_ORDERING CORACQ_VAL_BIT_ORDERING_STD (0x1) CORACQ_PRM_EXT_TRIGGER_LEVEL CORACQ_VAL_LEVEL_TTL (0x1) CORACQ_VAL_LEVEL_422 (0x2) CORACQ_PRM_STROBE_LEVEL CORACQ_VAL_LEVEL_TTL (0x1) CORACQ_PRM_EXT_FRAME_TRIGGER_LEVEL CORACQ_VAL_LEVEL_TTL (0x1) CORACQ_VAL_LEVEL_422 (0x2) CORACQ_PRM_EXT_LINE_TRIGGER_LEVEL CORACQ_VAL_LEVEL_422 (0x2) CORACQ_PRM_INT_LINE_TRIGGER_FREQ_MIN 245 Hz CORACQ_PRM_INT_LINE_TRIGGER_FREQ_MAX 500000 Hz

X64-CL Express User's Manual X64-CL Express Reference • 59

CORACQ_PRM_MASTER_MODE Not available CORACQ_PRM_MASTER_MODE_HSYNC_POLARITY CORACQ_VAL_ACTIVE_LOW (0x1) CORACQ_PRM_MASTER_MODE_VSYNC_POLARITY CORACQ_VAL_ACTIVE_LOW (0x1) CORACQ_PRM_SHAFT_ENCODER_DROP min = 0 tick max = 255 tick step = 1 tick CORACQ_PRM_SHAFT_ENCODER_ENABLE TRUE / FALSE CORACQ_PRM_EXT_TRIGGER_FRAME_COUNT min = 1 frame max = 65535 step = 1 CORACQ_PRM_INT_FRAME_TRIGGER_ENABLE TRUE / FALSE CORACQ_PRM_INT_FRAME_TRIGGER_FREQ min = 1 milli-Hz max = 1073741823 milli-Hz step = 1 milli-Hz CORACQ_PRM_STROBE_DELAY_2 min = 0 µs max = 65535000 µs step = 1 µs CORACQ_PRM_FRAME_LENGTH CORACQ_VAL_FRAME_LENGTH_FIX (0x1) CORACQ_VAL_FRAME_LENGTH_VARIABLE (0x2) CORACQ_PRM_FLIP CORACQ_VAL_FLIP_HORZ (0x1) (not available in Bayer Color mode) CORACQ_PRM_EXT_TRIGGER_DURATION min = 0 µs max = 255 µs step = 1 µs CORACQ_PRM_TIME_INTEGRATE_DELAY min = 0 µs max = 65535000 µs step = 1 µs CORACQ_PRM_CAM_RESET_DELAY min = 0 µs max = 0 µs step = 1 µs CORACQ_PRM_CAM_TRIGGER_DELAY min = 0 µs max = 65535000 µs step = 1 µs CORACQ_PRM_SHAFT_ENCODER_LEVEL CORACQ_VAL_LEVEL_422 (0x2) CORACQ_PRM_LUT_NENTRIES 256 entries CORACQ_PRM_EXT_FRAME_TRIGGER_SOURCE min = 0 max = 6 step = 1 See CORACQ_PRM_EXT_TRIGGER_SOURCE_STR CORACQ_PRM_EXT_LINE_TRIGGER_SOURCE (*) min = 0 max = 7 step = 1 See CORACQ_PRM_EXT_LINE_TRIGGER_SOURCE_STR CORACQ_PRM_EXT_TRIGGER_SOURCE min = 0 max = 6 step = 1 See CORACQ_PRM_EXT_TRIGGER_SOURCE_STR CORACQ_PRM_SHAFT_ENCODER_MULTIPLY min = 1 max = 32 step = (2**N) CORACQ_PRM_PLANAR_INPUT_SOURCES Not available

60 • X64-CL Express Reference X64-CL Express User's Manual

CORACQ_PRM_EXT_TRIGGER_DELAY min = 0 max = 65535000 step = 1 CORACQ_PRM_EXT_TRIGGER_DELAY_TIME_BASE CORACQ_VAL_TIME_BASE_LINE (0x4) CORACQ_PRM_BAYER_DECODER_ENABLE all modes Not available Bayer Color True / False CORACQ_PRM_BAYER_DECODER_METHOD all modes Not available Bayer color CORACQ_VAL_BAYER_DECODER_METHOD_1 (0x1) CORACQ_PRM_BAYER_DECODER_WB_GAIN Bayer color min = 100000 only max = 899609 step = 1 CORACQ_PRM_BAYER_DECODER_WB_GAIN Bayer color min = 100000 _RED only max = 499609 step = 1 CORACQ_PRM_BAYER_DECODER_WB_GAIN Bayer color min = 100000 _GREEN only max = 499609 step = 1 CORACQ_PRM_BAYER_DECODER_WB_GAIN Bayer color min = 100000 _BLUE only max = 899609 step = 1 CORACQ_PRM_EXT_TRIGGER_IGNORE_DELAY min = 0 max = 65535000 step = 1 CORACQ_PRM_EXT_TRIGGER_SOURCE_STR [0] = Automatic [1] = From External Trigger #1 [2] = From External Trigger #2 [3] = From Board Sync [4] = To Board Sync [5] = Pulse to Board Sync [6] = Software Trigger CORACQ_PRM_EXT_LINE_TRIGGER_SOURCE_STR [0] = Automatic [1] = From Shaft Encoder Phase A [2] = From Shaft Encoder Phase B [3] = From Shaft Encoder Phase A & B [4] = From Board Sync [5] = To Board Sync [6] = Pulse to Board Sync [7] = To Board Sync When Grabbing CORACQ_PRM_VERTICAL_TIMEOUT_DELAY min = 0 max = 16383000 step = 1 CORACQ_PRM_BAYER_DECODER_SATURATION_FACTOR min = 0 max = 65535 Bayer color only step = 1 CORACQ_PRM_BAYER_DECODER_SATURATION_WEIGHT_RE min = 0 D max = 65535 step = 1 Bayer color only CORACQ_PRM_BAYER_DECODER_SATURATION_WEIGHT_GR min = 0 EEN max = 65535 step = 1 Bayer color only CORACQ_PRM_BAYER_DECODER_SATURATION_WEIGHT_BL min = 0 UE max = 65535 step = 1 Bayer color only CORACQ_PRM_POCL_ENABLE Not available

X64-CL Express User's Manual X64-CL Express Reference • 61

CORACQ_PRM_CROP_ACTIVATION Not available

ACQ Related Parameters

Parameter Values CORACQ_PRM_LABEL Medium mono CameraLink Medium Mono #1 Base mono CameraLink Base Mono #1 Medium Color RGB CameraLink Medium Color RGB #1 Base Color RGB CameraLink Base Color RGB #1 Bayer color CameraLink Bayer #1 CORACQ_PRM_EVENT_TYPE CORACQ_VAL_EVENT_TYPE_START_OF_FRAME CORACQ_VAL_EVENT_TYPE_END_OF_FRAME CORACQ_VAL_EVENT_TYPE_EXTERNAL_TRIGGER CORACQ_VAL_EVENT_TYPE_VERTICAL_SYNC CORACQ_VAL_EVENT_TYPE_NO_PIXEL_CLK CORACQ_VAL_EVENT_TYPE_PIXEL_CLK CORACQ_VAL_EVENT_TYPE_FRAME_LOST CORACQ_VAL_EVENT_TYPE_DATA_OVERFLOW CORACQ_VAL_EVENT_TYPE_EXTERNAL_TRIGGER_IGNORED CORACQ_VAL_EVENT_TYPE_VERTICAL_TIMEOUT CORACQ_PRM_SIGNAL_STATUS CORACQ_VAL_SIGNAL_HSYNC_PRESENT CORACQ_VAL_SIGNAL_VSYNC_PRESENT CORACQ_VAL_SIGNAL_PIXEL_CLK_PRESENT CORACQ_PRM_DETECT_PIXEL_CLK Not available CORACQ_PRM_DETECT_HACTIVE Available CORACQ_PRM_DETECT_VACTIVE Available CORACQ_PRM_FLAT_FIELD_ENABLE mono True / False only CORACQ_PRM_FLAT_FIELD_SELECT 0 CORACQ_CAP_FLAT_FIELD_OFFSET min = 0 max = 255 step = 1 CORACQ_CAP_FLAT_FIELD_GAIN min = 0 max = 255 step = 1 CORACQ_CAP_FLAT_FIELD_GAIN_DIVISOR 0x80 CORACQ_CAP_FLAT_FIELD_PIXEL_REPLACEMENT TRUE CORACQ_CAP_SERIAL_PORT_INDEX Supported

62 • X64-CL Express Reference X64-CL Express User's Manual

X64-CL Express Memory Error with Area Scan Frame Buffer Allocation

The memory error message [ Error: "CorXferConnect" - No memory () ] may occur when loading a Sapera camera file, or when the application configures a frame buffer for area scan cameras. The problem is that the X64-CL Express does not have enough onboard memory for the requested frame buffers. See "Memory Requirements with Area Scan Acquisitions" on page 26.

X64-CL Express User's Manual X64-CL Express Reference • 63

64 • X64-CL Express Reference X64-CL Express User's Manual X64-CL Express Sapera Servers & Resources

Servers and Resources

Servers Resources Name Descriptio Type Name Inde Description n x X64- X64-CL Acquisition CamLink 0 CamLink Medium configuration, CL_Express_1 Express Medium monochrome output, Camera #1 Medium Mono CamLink 1 CamLink Medium configuration, Medium RGB output, Camera #1 RGB

X64- X64-CL Acquisition CamLink 0 CamLink Base configuration, CL_Express_1 Express Dual Base Mono monochrome output, Camera #1 Base #1 CamLink 1 CamLink Base configuration, Base Mono monochrome output, Camera #2 #2 CamLink 2 CamLink Base configuration, Base Color color output, Camera #1 RGB #1 CamLink 3 CamLink Base configuration, Base Color color output, Camera #2 RGB #2 X64- X64-CL Acquisition CamLink 0 CamLink Base configuration, CL_Express_1 Express Base Bayer Camera #1, Bayer Decoder Decoder #1

X64-CL Express User's Manual X64-CL Express Sapera Servers & Resources • 65

Transfer Resource Locations

The following table illustrates all possible source/destination pairs in a transfer.

Source Transfer passing through Destination X64-CL Express Acquisition 1 to 217 internal buffers 1 to 217 Host Buffers X64-CL Express Acquisition 1 to 217 internal buffers & 1 to 217 Host Buffers the X64 internal processor

66 • X64-CL Express Sapera Servers & Resources X64-CL Express User's Manual Technical Specifications

X64-CL Express Board Specifications X64-CL Express Dimensions Approximately 6.5 in. (16.6 cm) wide by 4 in. (10 cm) high. Digital Video Input & Controls Input Type Camera Link Specifications Rev 1.10 compliant 1 Medium or 2 Base Common Pixel Formats Two Base Configuration 3 x 8-bit, 2 x 10-bit, 2 x 12-bit, 1 x 14-bit, 1 x 16-bit, 1 x 24-bit RGB Pixel Formats/Tap One Medium Configuration 4 x 8-bit, 4 x 10-bit, 4 x 12-bit, 1 x 14-bit, 1 x 16-bit, 1 x 24-bit RGB, 1 x 30-bit Pixel Formats/Tap RGB, 1 x 36-bit RGB Scanning Progressive, Multi-Tap, Multi-Channel, Four quadrant, Tap reversal Input LUTs Yes. See section “X64-CL Express LUT availability” (page 49) for details. Resolution Horizontal Minimum: 8 Pixels per tap note: these are X64-CL Express Horizontal Maximum: maximums, not Camera Link 8-bits/pixel x 256K Pixels/line specifications 16-bits/pixel x 128K Pixels/line 32-bits/pixel x 64K Pixels/line 64-bits/pixel x 32K Pixels/line Vertical Minimum: 1 line Vertical Maximum: up to 16,000,000 lines (for area scan sensors) Pixel Clock Range up to 85 MHz Bandwidth to Host System Approximately 160MB/s. Limited by PCI Express x1 plus additional X64-CL Express DMA management. Serial Port Supports communication speeds from 9600 to 115 kbps Controls Comprehensive event notification includes end/start-of-field/frame/transfer Dual independent TTL/LVDS trigger input programmable as active high or low (edge or level trigger, where pulse width minimum is 100ns) Dual independent TTL Strobe outputs Quadrature (AB) shaft-encoder inputs for external web synchronization (maximum frequency for any shaft encoder input is 1 MHz)

X64-CL Express User's Manual Technical Specifications • 67

Processing Bayer Mosaic Filter: Hardware Bayer Engine supports one 8, 10 or 12-bit Bayer camera input. Dependant on user loaded firmware Bayer output format supports 8 or 10-bit RGB/pixel. configuration Zero host CPU utilization for Bayer conversion.

Flat Field Correction (Shading Correction): Real-time Flat-line and Flat-field correction. Compensates for sensor defects such as FPN, PRNU, defective pixels and variations between pixels due to the light refraction through a lens (Shading effect). Supports two independent monochrome cameras concurrently. PRNU (Photo Response Non Uniformity): PRNU is the variation in response between sensor pixels. FPN (Fixed Pattern Noise): FPN is the unwanted static variations in response for all pixels in the image.

Host System Requirements General System Requirements for the X64-CL Express • PCI Express x1 slot compatible Operating System Support Windows XP, Windows Vista, and Windows 7 Power Requirements +5 Volt 2 amp typical Note: other internal voltages are derived from +5V +12 Volt As per camera connected and supplied by X64-CL Express PC power interface Environment Ambient Temperature: 10° to 50° C (operation) -40° to 75° C (storage) Relative Humidity: 5% to 90% non-condensing (operating) 0% to 95% (storage)

68 • Technical Specifications X64-CL Express User's Manual

EMI Certifications

X64-CL Express User's Manual Technical Specifications • 69

Connector and Switch Locations

X64-CL Express Board Layout Drawings

J4 J7 J8 J9 J7A1 J3

J12

J1

LED 1 X64-CL Express

J2 J5 J11

Connector Description List

Connector Description Connector Description J1 Camera Link Connector J8 Camera Power Selector J2 Camera Link Connector J9 PC power to camera interface. J3 Reserved J11 Normal (jumper on) Safe Start Mode (jumper off) J4 External Signals connector J7 Multi-board Sync J5, J7A1, J12 Reserved

70 • Technical Specifications X64-CL Express User's Manual

Connector and Switch Specifications

X64-CL Express End Bracket

X64-CL Express

13 1 13 1 26 14 26 14

J1 LED 2 LED 1 J2 3M MDR 26 pin 3M MDR 26 pin female connector female connector The hardware installation process is completed with the connection of a supported camera to the X64-CL Express board using Camera Link cables (see “Camera Link Cables” on page 89). • The X64-CL Express board supports a camera with one or two Camera Link MDR-26 connectors (two Base or one Medium – see “Data Port Summary” on page 88 for information on Camera Link configurations). • Connect the camera to the J1 connector with a Camera Link cable. When using a Medium camera, connect the second camera connector to J2.

Caution: If the camera is powered by the X64-CL, it is very important that the correct power supply voltage is selected correctly. Refer to "J8: Power to Camera Voltage Selector" on page 84 for information on the selection jumper.

Contact Teledyne DALSA or browse our web site http://www.teledynedalsa.com/imaging/ for the latest information on X64-CL Express supported cameras.

X64-CL Express User's Manual Technical Specifications • 71

Status LEDs Functional Description

Status LED 2: Camera Link Connector 2 ( J2 )

Status LED 1: Camera Link Connector 1 ( J1 )

Status LED Modes • Red: No camera connected or camera has no power. • Green: Camera connected and is ON. Camera clock detected. No line valid detected. • Slow Flashing Green: Camera Line Valid signal detected. • Fast Flashing Green: Acquisition in progress. • Status LED 2 flashing red, X64-CL Express board with Medium Configuration only: Camera pixel clock incorrectly connected to J2 instead of J1. (as an example - a Base camera is incorrectly connected to J2).

72 • Technical Specifications X64-CL Express User's Manual

J1: Camera Link Connector 1 Name Pin # Type Description BASE_X0- 25 Input Neg. Base Data 0 BASE_X0+ 12 Input Pos. Base Data 0 BASE_X1- 24 Input Neg. Base Data 1 BASE_X1+ 11 Input Pos. Base Data 1 BASE_X2- 23 Input Neg. Base Data 2 BASE_X2+ 10 Input Pos. Base Data 2 BASE_X3- 21 Input Neg. Base Data 3 BASE_X3+ 8 Input Pos. Base Data 3 BASE_XCLK- 22 Input Neg. Base Clock BASE_XCLK+ 9 Input Pos. Base Clock SERTC+ 20 Output Pos. Serial Data to Camera SERTC- 7 Output Neg. Serial Data to Camera SERTFG- 19 Input Neg. Serial Data to Frame Grabber SERTFG+ 6 Input Pos. Serial Data to Frame Grabber CC1- 18 Output Neg. Camera Control 1 CC1+ 5 Output Pos. Camera Control 1 CC2+ 17 Output Pos. Camera Control 2 CC2- 4 Output Neg. Camera Control 2 CC3- 16 Output Neg. Camera Control 3 CC3+ 3 Output Pos. Camera Control 3 CC4+ 15 Output Pos. Camera Control 4 CC4- 2 Output Neg. Camera Control 4 GND 1, 13, 14, 26 Ground

J2: Camera Link Connector 2 (on X64-CL Express with Dual Base Configuration) The Camera Link connector J2 on the X64-CL Dual board is identical to Camera Link connector 1 (J1).

X64-CL Express User's Manual Technical Specifications • 73

J2: Camera Link Connector 2 (on X64-CL Express in Medium Configuration) Name Pin # Type Description MEDIUM _X0- 25 Input Neg. Medium Data 0 MEDIUM _X0+ 12 Input Pos. Medium Data 0 MEDIUM _X1- 24 Input Neg. Medium Data 1 MEDIUM _X1+ 11 Input Pos. Medium Data 1 MEDIUM _X2- 23 Input Neg. Medium Data 2 MEDIUM _X2+ 10 Input Pos. Medium Data 2 MEDIUM _X3- 21 Input Neg. Medium Data 3 MEDIUM _X3+ 8 Input Pos. Medium Data 3 MEDIUM _XCLK- 22 Input Neg. Medium Clock MEDIUM _XCLK+ 9 Input Pos. Medium Clock TERM 20 Term Resistor TERM 7 Term Resistor 19 Reserved 6 Reserved 18 Reserved 5 Reserved 17 Reserved 4 Reserved 15 Reserved 2 Reserved 16 Reserved 3 Reserved GND 1, 13, 14, 26 Ground

74 • Technical Specifications X64-CL Express User's Manual

Camera Link Camera Control Signal Overview Four LVDS pairs are for general-purpose camera control, defined as camera inputs / frame grabber outputs by the Camera Link Base camera specification. These controls are on J1 and also on J2 for the second Base camera input of the X64-CL Express in two Base configuration. • Camera Control 1 (CC1) • Camera Control 2 (CC2) • Camera Control 3 (CC3) • Camera Control 4 (CC4) Each camera manufacture is free to define the signals input on any one or all four control signals. These control signals are used either as camera control pulses or as a static logic state. Control signals not required by the camera are simply assigned as not used. Refer to your camera's user manual for information on what control signals are required.

Note: The X64-CL Express pulse controller has a minimum resolution of 1 us. When configuring the Camera Link control signals, such as exposure control, etc. use values in increments of 1 us.

The X64-CL Express can assign any camera control signal to the appropriate Camera Link control. The following screen shot shows the Sapera CamExpert dialog where Camera Link controls are assigned.

X64-CL Express User's Manual Technical Specifications • 75

Critical Information when Connecting External Control Devices WARNING: When connecting external control devices to the X64-CL Express, make sure to connect a common ground between the external control devices and the frame grabber. See RED connections in the diagram below. Failure to follow the described instructions could damage the board resulting in the External Trigger and/or Shaft Encoder functionality not working properly.

External Trigger Source Frame Grabber: X64-CL, X64-CL Express, X64-CL iPro/iPro Lite

LVDS + or TTL Trigger Input 1 + Signal Source 1 J4–11 / DB25-6

LVDS – or Ground Trigger Input 1 - Signal Source 1 J4–12 / DB25-19

LVDS+ or TTL Trigger Input 2 + Signal Source 2 J4–13 / DB25-7

LVDS+ or Ground Trigger Input 2 - Signal Source 2 J4–14 / DB25-20

Ground J4–2,4,6,22,24 DB25–14,15,16,24,25 (+) (-) V

(+) (-) V

Shaft Encoder Source

Shaft Encoder Phase A+ LVDS Signal Source A+ J4–15 / DB25-8

Shaft Encoder Phase A- LVDS Signal Source A- J4–16 / DB25-21

Shaft Encoder Phase B+ LVDS Signal Source B+ J4–17 / DB25-9

Shaft Encoder Phase B- LVDS Signal Source B- J4–18 / DB25-22

76 • Technical Specifications X64-CL Express User's Manual

J4: External Signals Connector Warning: Proceed with caution when connecting external devices or other computers to the signals available on J4. Grounds should connect first and devices should be power up at the same time. External signal sources must not have voltage spikes or transients, else damage may occur on the X64-CL Express. A recommended solution is to use the optional X-I/O module which provides opto-coupled I/O (see "Appendix: X-I/O Module Option" on page 91). All inputs or outputs provide a more electrically robust interface to outside devices offering better protection against real-world conditions. J4 Pin Header Numbering Detail

2 4 ... 24 26 1 3 ... 23 25

J4 Signal Descriptions Pin # Signal X64-CL Express Medium X64-CL Express Dual Base Description Description 1 Reserved Reserved 2, 4, 6 GND 3 Reserved Reserved 5 Reserved Reserved 7 Reserved Reserved 8 Reserved Reserved 9 Reserved Reserved 10 Reserved Reserved 11 TrigIn 1 + LVDS Trigger In + or CamLink Base #1 (input) TTL Trigger In LVDS + or TTL Trigger In (see note 1) (pulse width minimum 100ns) see note 2 12 TrigIn 1 - LVDS Trigger In - CamLink Base #1 (input) (or TTL Trigger In GND) LVDS Trigger - (or TTL Trigger GND) 13 TrigIn 2 + LVDS Trigger In + or CamLink Base #2 (input) TTL Trigger In LVDS + or TTL Trigger In (Used for two pulse external trigger with (pulse width minimum 100ns) variable frame length linescan acquisition) see note 2 14 TrigIn 2 - LVDS Trigger In - CamLink Base #2 (input) (or TTL Trigger In GND) LVDS Trigger - (or TTL Trigger GND) 15 Phase A + LVDS/RS422 Shaft Encoder phase A + LVDS/RS422 Shaft Encoder + (input) or line trigger or line trigger used with linescan cameras used with linescan cameras (see note 3 & 7) (see note 3 & 4 & 7)

X64-CL Express User's Manual Technical Specifications • 77

16 Phase A - LVDS/RS422 Shaft Encoder phase A - LVDS/RS422 Shaft Encoder - (input) (see note 7) (see note 7) 17 Phase B + LVDS/RS422 Shaft Encoder phase B + LVDS/RS422 Shaft Encoder + (input) or line trigger or line trigger used with linescan cameras used with linescan cameras (see note 3 & 7) (see note 3 & 4 & 7) 18 Phase B - LVDS/RS422 Shaft Encoder phase B - LVDS/RS422 Shaft Encoder - (input) (see note 7) (see note 7) 19 Strobe 2 not used CamLink Base #2 (output) TTL Strobe Output (see note 4 & 5) 20 Reserved 21 Strobe 1 TTL Strobe Output CamLink Base #1 (output) (see note 5) TTL Strobe Output (see note 4 & 5) 22, GND 24, 26 23, 25 DC Power Voltage selected (+12 or +5) via J8 (see Voltage selected (+12 or +5) via J8 (see (see note 6) "J8: Power to Camera Voltage Selector" on "J8: Power to Camera Voltage Selector" on page 84) page 84)

Notes: 1. X64-CL Express : Refer to Sapera parameters CORACQ_PRM_EXT_TRIGGER_LEVEL CORACQ_PRM_EXT_FRAME_TRIGGER_LEVEL CORACQ_PRM_EXT_TRIGGER_ENABLE CORACQ_PRM_EXT_TRIGGER_DETECTION See also *.cvi file entries: External Trigger Level, External Frame Trigger Level, External Trigger Enable, External Trigger Detection.

2. X64-CL Express Dual Base: Sapera parameter CORACQ_PRM_EXT_TRIGGER_LEVEL, CORACQ_PRM_EXT_FRAME_TRIGGER_LEVEL is a common control to both CamLink Base #1 and #2. Parameters CORACQ_PRM_EXT_TRIGGER_ENABLE and CORACQ_PRM_EXT_TRIGGER_DETECTION are independent for each Camera Link input. When detection is CORACQ_VAL_DOUBLE _PULSE_RISING_EDGE or CORACQ_VAL_DOUBLE _PULSE_FALLING_EDGE the start trigger is "Trig In 1" and the end trigger is "Trig In 2". See also *.cvi file entries: External Trigger Level, External Frame Trigger Level, External Trigger Enable, External Trigger Detection.

3. X64-CL Express: See "Line Trigger Source Selection for Linescan Applications" on page 44 for more information. Refer to Sapera parameters CORACQ_PRM_SHAFT_ENCODER_ENABLE

78 • Technical Specifications X64-CL Express User's Manual

CORACQ_PRM_SHAFT_ENCODER_DROP or refer to CORACQ_PRM_EXT_LINE_TRIGGER_ENABLE CORACQ_PRM_EXT_LINE_TRIGGER_DETECTION CORACQ_PRM_EXT_LINE_TRIGGER_LEVEL (fixed at LVDS) CORACQ_PRM_EXT_LINE_TRIGGER_SOURCE See also *.cvi file entries: Shaft Encoder Enable, Shaft Encoder Pulse Drop or see External Line Trigger Enable, External Line Trigger Detection, External Line Trigger Level, External Line Trigger Source.

4. X64-CL Express Dual Base: Parameters are independent for CamLink Base #1 and #2.

5. X64-CL Express: Refer to Sapera parameters CORACQ_PRM_STROBE_ENABLE CORACQ_PRM_STROBE_POLARITY, CORACQ_PRM_STROBE_LEVEL, CORACQ_PRM_STROBE_METHOD, CORACQ_PRM_STROBE_DELAY CORACQ_PRM_STROBE_DURATION See also *.cvi file entries: Strobe Enable, Strobe Polarity, Strobe Level, Strobe Method, Strobe Delay, Strobe Duration.

6. DC Power Constraints: The supplied host PC voltage is selected (+12 or +5) via the shorting jumper J8 (see "J8: Power to Camera Voltage Selector" on page 84 for details). A 1.5A resettable fuse is included on the board. If the fuse is tripped, power off the host computer to reset the fuse.

7. See "Connecting a TTL Shaft Encoder Signal to the LVDS/RS422 Input" on page 81 for details on using a TTL shaft encoder signal.

X64-CL Express User's Manual Technical Specifications • 79

X64-CL Express: External Signals Connector Bracket Assembly The External Signals bracket (OC-64CC-0TIO1) provides a simple way to bring out the signals from the X64-CL Express External Signals ConnectorJ4 to a bracket mounted DB25. Install the bracket assembly into an adjacent PC expansion slot and connect the free cable end to the X64-CL Express J4 header. When connecting to J4, make sure that the cable pin 1 goes to J4 pin 1 (see layout drawings for your board revision: "X64-CL Express Board Layout Drawings" on page 70). Warning: Proceed with caution when connecting external devices or other computers to the signals available on the External Signals bracket. Grounds should connect first and devices should be power up at the same time. External signal sources must not have voltage spikes or transients, else damage may occur on the X64-CL Express. A recommended solution is to use the optional X-I/O module which provides opto-coupled I/O (see "Appendix: X-I/O Module Option" on page 91). All inputs or outputs provide a more electrically robust interface to outside devices offering better protection against real-world conditions.

Note: When using the optional X-I/O module, this external signals cable is not used. Instead a 26 wire cable from the X-I/O J21 connects to X-I/O J4. All external signals described here plus the additional 8 input – 8 output general I/O controls are now on the X-I/O DB37 connector. See "Appendix: X-I/O Module Option" on page 91 for installation and pinout information.

External Signals Connector Bracket Assembly Drawing

Pin 1

Flat cable 12"

DB25 Female Connector Header Connector 26-Pin Female mounted on OC-64CC-0TIO1 bracket Connect to J4

Note: Tracks marked as reserved are not connected to the Header Connector

80 • Technical Specifications X64-CL Express User's Manual

External Signals Connector Bracket Assembly Signal Description Refer to the table "J4: External Signals Connector " on page 77 for important signal descriptions. DB25 Pin Number Signal Names Connector (to J4) 1, 2, 3, 4, 17, 5, 18, 23 Reserved 1, 3, 5, 7, 8, 9, 10, 20 6 TrigIn 1+ 11 19 TrigIn 1- 12 7 TrigIn 2+ 13 20 TrigIn 2- 14 8 Shaft Encoder phase A + 15 21 Shaft Encoder phase A - 16 9 Shaft Encoder phase B + 17 22 Shaft Encoder phase B - 18 11 Strobe 1 21 10 Strobe 2 19 12, 13 DC power (+12 or +5 via J8) 23, 25 14, 15, 16, 24, 25, Ground 2, 4, 6, 22, 24

Connecting a TTL Shaft Encoder Signal to the LVDS/RS422 Input A TTL shaft encoder signal can be directly connected to the X64-CL Express LVDS/RS422 (+) input but the low side (-) input of the pair must be biased with a DC voltage to ensure reliable operation. This section shows the connection diagram along with suggestions as to how to generate the DC bias voltage. The actual physical wiring is left as an additional detail to interfacing a shaft encoder to the X64-CL Express to the imaging system. TTL Shaft Encoder to LVDS/RS422 Input Block Diagram

Connecting TTL Signals to LDVS Inputs

TTL signal source LDVS (+) input

GND +1 to +2 LDVS (-) input volts DC Frame Grabber System

FG/system GND

X64-CL Express User's Manual Technical Specifications • 81

• LVDS/RS422 (-) input is biased to a DC voltage from +1 to +2 volts. • This guarantees that the TTL signal connected to the LVDS/RS422 (+) input will be detected as a logic high or low relative to the (-) input. • The TTL shaft encoder ground, the bias voltage ground, and the X64-CL Express computer system ground must be connected together. • The maximum frequency for any shaft encoder input is 1 MHz.

LVDS/RS422 (-) Input Bias Source Generation

Examples on Generating a DC voltage for the LDVS (-) Input

+5V +12V +24V

+1.5V 330 680 2.2K +2V +1.5V +1.5V 150 Battery 220 100

• DC voltage for the LVDS/RS422 (-) input can be generated by a resister voltage divider. • Use a single battery cell if this is more suitable to your system. • A DC voltage (either +5 or +12) is available on External Signals ConnectorJ4. See "J8: Power to Camera Voltage Selector" on page 84 for information.

82 • Technical Specifications X64-CL Express User's Manual

External Trigger TTL Input Electrical Specification The incoming trigger pulse is “debounced” to ensure that no voltage glitch would be detected as a valid trigger pulse. This debounce circuit time constant can be programmed from 1µs to 255µs. Any pulse smaller than the programmed value is blocked and therefore not seen by the acquisition circuitry.

Electrical Description Value parameters TrigIn low Low logic level input <= 0.8 V TrigIn high High logic level input >= 2.0 V (max. = 5 V) TrigIn pulse width Minimum trigger pulse width 100 ns

Sapera parameters for External Trigger: CORACQ_PRM_EXT_TRIGGER_ENABLE = CORACQ_VAL_EXT_TRIGGER_ON CORACQ_PRM_EXT_TRIGGER_SOURCE CORACQ_PRM_EXT_TRIGGER_DETECTION = {CORACQ_VAL_RISING_EDGE, CORACQ_VAL_FALLING_EDGE, CORACQ_VAL_ACTIVE_LOW. CORACQ_VAL_ACTIVE_HIGH} CORACQ_PRM_EXT_TRIGGER_DURATION: Debounce duration

Strobe TTL Output Electrical Specification

Electrical Description Value parameters

VOH typ Typical high-level output voltage 3.9V

IOH max Maximum high-level output current -8mA (sourcing)

IOL max Maximum low-level output current 8mA (sinking)

Sapera parameters for Strobe : Refer to Strobe Method in Sapera documentation CORACQ_PRM_STROBE_ENABLE = TRUE CORACQ_PRM_STROBE_METHOD={CORACQ_VAL_STROBE_METHOD_1, CORACQ_VAL_STROBE_METHOD_2} CORACQ_PRM_STROBE_POLARITY={CORACQ_VAL_ACTIVE_LOW, CORACQ_VAL_ACTIVE_HIGH} CORACQ_PRM_STROBE_DELAY: Pulse offset from trigger event CORACQ_PRM_STROBE_DELAY_2: Duration of exclusion region CORACQ_PRM_STROBE_DURATION: Pulse duration

X64-CL Express User's Manual Technical Specifications • 83

J7: Board Sync Interconnects multiple boards to synchronize acquisitions to one trigger or event. The trigger source can be either an external signal or internal software trigger. The board receiving the trigger is the Master board. while the boards receiving the control signal from the Master board are Slaves. • Hardware Connection: Interconnect two, three, or four X64 boards via their J7 connector. The cable is wired one to one — i.e. no crossed wires. The cable must be as short as possible and the boards must be in the same system. • Master Board Software Setup: Choose one X64 as master. The Sapera parameter CORACQ_PRM_EXT_TRIGGER_SOURCE is set to either Mode 1–Output to Board Sync or Mode 2–Control pulse to Board Sync. See Sapera documentation for more details. • Slave Board Software Setup: The Sapera parameter CORACQ_PRM_EXT_TRIGGER_SOURCE is set to From Board Sync. • Test Setup: The control application starts the acquisition on all slave boards. The acquisition process is now waiting for the control signal from the master board. The master board acquisition is triggered and the acquisition start signal is sent to each slave board (with ~0.8μs delay max). Contact Technical Support for additional information.

J8: Power to Camera Voltage Selector When the PC floppy drive power supply cable is connected to J9, a shorting jumper on J8 selects either 5 Vdc or 12 Vdc for the camera power supply. This supply voltage is available on the External Signals Connectorblock. Important: For the X64-CL Express a 1.5A power on reset fuse is included on the board. If the fuse is tripped, power off (not just a soft reboot) the computer system to reset the fuse.

J8 on X64-CL Express

top board edge top board edge top board edge connect 5V J8 J8 J8

connect 12V Default; no power to J3 or J4

84 • Technical Specifications X64-CL Express User's Manual

J9: PC Power to Camera Interface Connect the PC floppy drive power connector to J9 so as to supply DC power to the camera. Place the J8 shorting jumper so as to select 5 Vdc or 12 Vdc for the camera.

J11: Start Mode • Default Mode: Shunt jumper is installed. • Safe Mode: Shunt jumper is removed if any problems occurred while updating the X64-CL Express firmware. With the jumper off, reboot the computer and update the firmware again. When the update is complete, install the jumper and reboot the computer once again. (See "Recovering from a Firmware Update Error" on page 21).

J3, J7A1 J12: Reserved

X64-CL Express User's Manual Technical Specifications • 85

Brief Description of Standards RS-232, RS-422, & RS-644 (LVDS) RS-232 Short for recommended standard-232C, a standard interface approved by the Electronic Industries Association (EIA) connecting serial devices.

The standards for RS-232 and similar interfaces usually restrict RS-232 to 256kbps or less and line lengths of 15M (50 ft) or less.

Transmitted Data (TxD) This signal is active when data is transmitted from the DTE device to the DCE device. When no data is transmitted, the signal is held in the mark condition (logic '1', negative voltage).

Received Data (RxD) This signal is active when the DTE device receives data from the DCE device. When no data is transmitted, the signal is held in the mark condition (logic '1', negative voltage). DTE (Data Terminal Equipment) DCE (Data Communication Equipment) RS-422 RS-422 uses a twisted-pair wire (i.e., 2 wires) for each signal. The differential drive voltage swing is 0 to +5V. RS-422 does not have tri-state capability (its driver is always enabled) and it is therefore usable only in point-to-point communications. Although RS-422 is noise resistant, due to being differential data can still be damaged by EMI/RFI. A shielded cable can protect the transmitters/receivers from EMI/RFI. RS-644 (LVDS) LVDS (Low-Voltage ): method to communicate data using a very low voltage swing (about 350mV) over two differential PCB traces or a balanced cable. LVDS allows single channel data transmission at hundreds of Megabits per second (Mbps).

86 • Technical Specifications X64-CL Express User's Manual

Camera Link Interface

Camera Link Overview

Camera Link is a communication interface for vision applications developed as an extension of National Semiconductor's Channel Link technology. The advantages of the Camera Link interface are that it provides a standard digital camera connection specification, a standard data communication protocol, and simpler cabling between camera and frame grabber. The Camera Link interface simplifies the usage of increasingly diverse cameras and high signal speeds without complex custom cabling. For additional information concerning Camera Link, see http://en.wikipedia.org/wiki/Camera_Link.

Rights and Trademarks

Note: The following text is extracted from the Camera Link Specification 1.1 (January 2004).

The Automated Imaging Association (AIA), as sponsor of the Camera Link committee, owns the U.S. trademark registration for the Camera Link logo as a certification mark for the mutual benefit of the industry. The AIA will issue a license to any company, member or non-member, to use the Camera Link logo with any products that the company will self-certify to be compliant with the Camera Link standard. Licensed users of the Camera Link logo will not be required to credit the AIA with ownership of the registered mark.

3M™ is a trademark of the 3M Company. Channel Link™ is a trademark of National Semiconductor. Flatlink™ is a trademark of Texas Instruments. Panel Link™ is a trademark of Silicon Image.

X64-CL Express User's Manual Camera Link Interface • 87

Data Port Summary

The Camera Link interface has three configurations. A single Camera Link connection is limited to 28 bits requiring some cameras to have multiple connections or channels. The naming conventions for the three configurations are: • Base: Single Channel Link interface, single cable connector. • Medium: Two Channel Link interface, two cable connectors. • Full: Three Channel Link interface, two cable connectors. A single Camera Link port is defined as having an 8-bit data word. The "Full" specification supports 8 ports labeled as A to H.

Camera Signal Summary

Video Data Four enable signals are defined as: • FVAL Frame Valid (FVAL) is defined HIGH for valid lines. • LVAL Line Valid (LVAL) is defined HIGH for valid pixels. • DVAL Data Valid (DVAL) is defined HIGH when data is valid. • Spare A spare has been defined for future use. All four enables must be provided by the camera on each Channel Link. All unused data bits must be tied to a known value by the camera.

Camera Controls Four LVDS pairs are reserved for general-purpose camera control, defined as camera inputs and frame grabber outputs. • Camera Control 1 (CC1) • Camera Control 2 (CC2) • Camera Control 3 (CC3) • Camera Control 4 (CC4)

Note: the X64-CL by default implements the control lines as follows (using Teledyne DALSA Corporation terminology). (CC1) EXYNC (CC2) PRIN (CC3) FORWARD (CC4) HIGH

88 • Camera Link Interface X64-CL Express User's Manual

Communication Two LVDS pairs have been allocated for asynchronous serial communication to and from the camera and frame grabber. Cameras and frame grabbers should support at least 9600 baud. • SerTFG Differential pair with serial communications to the frame grabber. • SerTC Differential pair with serial communications to the camera. The serial interface protocol is one start bit, one stop bit, no parity, and no handshaking.

Camera Link Cables

For additional information on Camera Link cables and their specifications, visit the following web sites:

3 M http://www.3m.com/interconnects (enter Camera Link as the search keyword) Nortech Systems http://www.nortechsys.com/intercon/CameraLinkMain.htm

X64-CL Express User's Manual Camera Link Interface • 89

90 • Camera Link Interface X64-CL Express User's Manual

Appendix: X-I/O Module Option

X-I/O Module Overview • The X-I/O module requires X64-CL Express board driver version 1.00 (or later) and Sapera LT version 5.30 (or later). • Occupies an adjacent slot to the X64-CL Express. Slot can be either PCI-32 or PCI-64—no PCI signals or power are used. • Connects to the X64-CL Express via a 26 pin flat ribbon cable. J21 on X-I/O to J4 on X64-CL Express. Note that the external signals connector bracket is removed. • All X64-CL Express external signals, such as trigger, shaft encoder, strobe, are available on the X-I/O DB37. See "DB37 Pinout Description" on page 94. • X-I/O provides 8 TTL outputs software selectable as NPN (current sink) or PNP (source driver) type drivers. See "TTL Output in NPN Mode: Electrical Details" on page 95 and "TTL Output in PNP Mode: Electrical Details" on page 96. • X-I/O provides 2 opto-coupled inputs. See "Opto-coupled Input: Electrical Details" on page 97. • X-I/O provides 6 TTL level inputs with software selectable transition point. See "TTL Input Electrical Details" on page 97. • X-I/O provides both +5 volt and +12 volt power output pins on the DB37, where power comes directly from the host system power supply (J26). • Onboard flash memory to store user defined power up I/O states.

X64-CL Express User's Manual Appendix: X-I/O Module Option • 91

X-I/O Module Connector List & Locations

J21

J26 J23 J22 e l a m e f

7 3

B J24 D J20 J28

X-I/O revision A2

J20 DB37 female external signals connector. J21 26 pin header connector (interconnect to the X64-CL Express via supplied ribbon cable). J22, J23, J24, J28 Reserved. J26 Connect PC power via floppy drive power cable.

X-I/O Module Installation

Grounding Instructions: Static electricity can damage electronic components. Please discharge any static electrical charge by touching a grounded surface, such as the metal computer chassis, before performing any hardware installation. If you do not feel comfortable performing the installation, please consult a qualified computer technician. Never remove or install any hardware component with the computer power on.

92 • Appendix: X-I/O Module Option X64-CL Express User's Manual

Board Installation Installing an X-I/O Module to an existing X64-CL Express installation takes only a few minutes. Install the X-I/O board into the host system as follows: • Power off the computer system that has the installed X64-CL Express board. • Disconnect the external signals cable (OC-64CC-0TIO1) if it was used. Remove that cable bracket from the computer. • Insert the X-I/O module into any free PCI slot (no PCI electrical connections are used), securing the bracket. • Connect a floppy drive power cable to J26 to provide power to the board and the external connector. • Connect the X-I/O module 26 pin ribbon cable from J21 to the X64-CL Express board J4. • Power on the computer again. • For new X64-CL Express and X-I/O module installations, simply follow the procedure to install Sapera and the X64-CL Express driver (start with "Sapera LT Library Installation" on page 11). X64-CL Express and X-I/O Driver Update • If both Sapera 5.30 and X64-CL Express driver need to be installed, follow the procedure "Sapera and Board Driver Upgrades" on page 10. This procedure steps through the upgrade of both Sapera and the board driver—typically required when installing the X-I/O module in the field. • If the X64-CL Express installation already has the required Sapera and board driver version, install the X-I/O module and perform a firmware update as described in "Executing the Firmware Loader from the Start Menu" on page 14.

X-I/O Module External Connections to the DB37

Users can assemble their interface cable, using some or all of the signals available on the X-I/O module DB37. Use a male DB37 with thumb screws for a secure fit. Wiring type should meet the needs of the imaging environment. For the external signals Trigger Input, Shaft Encoder Input, and Strobe output, now available on the DB37, refer "J4: External Signals Connector" on page 77 to for signal details.

X64-CL Express User's Manual Appendix: X-I/O Module Option • 93

DB37 Pinout Description Pin # Signal Description 1 IN_OPTO_1+ Input #1 ( Opto-coupled ) 20 IN_OPTO_1- 2 IN_OPTO_2+ Input #2 ( Opto-coupled ) 21 IN_OPTO_2- 3, 23, 24 Gnd 22 OUT_TTL_1 TTL output #1 4 OUT_TTL_2 TTL output #2 5 USER_PWR Power for the TTL Outputs in PNP mode 6 TrigIn 1+ Trigger Input 1 + 25 TrigIn 1- Trigger Input 1 - (TTL trigger GND) 7 TrigIn 2+ Trigger Input 2 + 26 TrigIn 2- Trigger Input 2 - (TTL trigger GND) 8 Phase A+ Shaft Encoder Phase A+ (for TTL signals see "Connecting a TTL Shaft Encoder Signal to the LVDS/RS422 Input" on page 81) 27 Phase A- Shaft Encoder Phase A- 9 Phase B+ Shaft Encoder Phase B+ 28 Phase B- Shaft Encoder Phase B- 10 Strobe 2 TTL Strobe 2 output 11 Strobe 1 TTL Strobe 1 output 16, 29, 30 Gnd 12 Power PC +5V (1A max) 31 Power PC +12V (1A max) 13 IN_TTL_3 Input #3 ( TTL ) 32 IN_TTL_4 Input #4 ( TTL ) 14 IN_TTL_5 Input #5 ( TTL ) 33 IN_TTL_6 Input #6 ( TTL ) 15 IN_TTL_7 Input #7 ( TTL ) 34 IN_TTL_8 Input #8 ( TTL ) 35 OUT_TTL_3 TTL output 3 17 OUT_TTL_4 TTL output 4 36 OUT_TTL_5 TTL output 5 18 OUT_TTL_6 TTL output 6 37 OUT_TTL_7 TTL output 7 19 OUT_TTL_8 TTL output 8

94 • Appendix: X-I/O Module Option X64-CL Express User's Manual

TTL Output in NPN Mode: Electrical Details When the TTL outputs are configured for NPN mode (open collector - sink mode) the user is required to provide an external input pull-up resistor on the signal being controlled by the X-I/O output. A simplified schematic and important output specifications follow:

NPN Open Collector Output Mode

5V or 24V typical

DB37 External Pull-up Resistor Connector ( 220 ohm @ 5V typical ) Output 1 Simplified 22 Device Input Output Driver 3, 23, 24 GND Device Input GND typical 8 places 16, 29, 30 GND

Output 2 4 Output 3 35 Output 4 17 Output 5 36 Output 6 18

Output 7 37

Output 8 19

X-I/O Module

• Each output can sink 700 mA. • Over-current thermal protection will automatically shut down the output device.

X64-CL Express User's Manual Appendix: X-I/O Module Option • 95

TTL Output in PNP Mode: Electrical Details When the TTL outputs are configured for PNP mode (source driver) an external power supply is required to provide the buffer output supply voltage (USER_PWR). A simplified schematic and important output specifications follow:

PNP Source Driver Output Mode

DB37 Connector

Simplified Buffer Vcc USER_PWR Output Buffer 5 Device Power Supply Driver Output 1 22 Device Input

typical 8 places GND 3, 23, 24 Device Input GND

16, 29, 30 GND

Output 2 4 Output 3 35 Output 4 17

Output 5 36 Output 6 18

Output 7 37

Output 8 19 X-I/O Module

• User provides the output power supply voltage ( 7 volts to 35 volts ). • Maximum source driver output current is 350 mA. • Source driver with over-current protection (all outputs will shut down simultaneously). The over- current fault circuit will protect the device from short-circuits to ground with supply voltages of up to 35V.

96 • Appendix: X-I/O Module Option X64-CL Express User's Manual

Opto-coupled Input: Electrical Details The two opto-coupled inputs can be used either with TTL or RS422 sources. A simplified input schematic and important electrical specifications are listed below. Opto-Coupled Input

DB37 Connector

In_Opto_1+ 1 X-I/O Input In_Opto_1- 20

In_Opto_2+ 2 Simplified GND Opto-coupled In_Opto_2- Input 21 typical 2 places

X-I/O Module

Input reverse breakdown voltage 5 volts minimum Maximum average forward input current 25 mA Maximum input frequency 200 kHz Maximum Sapera call-back rate System processing dependent

TTL Input Electrical Details The six TTL inputs are software configurable (see "Configuring User Defined Power-up I/O States" on page 98) for standard TTL logic levels or industrial logic systems (typically 24 volts). The design switch points are as follows: • TTL level mode : trip point at 2V +/- 5% • Industrial level mode: trip point at 16V +/- 5%

X64-CL Express User's Manual Appendix: X-I/O Module Option • 97

X-I/O Module Sapera Interface

Sapera version 5.30 (or later) provides support for the X-I/O module via an I/O class and demonstration program. Users can use the demonstration program as is, or use the demo program source code to implement X-I/O controls within the custom imaging application. This section describes configuring the X-I/O module power up state, using the X-I/O demo program, and describes the Sapera Class to program and read the X-I/O module along with sample code. Configuring User Defined Power-up I/O States The X-I/O module power up state is stored onboard in flash memory. User configuration of this initial state is performed by the Device Manager program. Run the program via the windows start menu: (Start • Programs • Teledyne DALSA • X64-CL Express Device Driver • Device Manager). The Teledyne DALSA Device Manager provides information on the installed X64-CL Express board and its firmware. With an X-I/O module installed, click on XIO Board – Information, as shown in the following figure.

98 • Appendix: X-I/O Module Option X64-CL Express User's Manual

The XIO information screen shows the current status of Device 0—the output device, and Device 1—the input device. A few items are user configurable for X-I/O board power up state. Click on the item to display a drop list of available capabilities, as described below. • Device 0 – Default Output Type choose Tristate mode (i.e. output disconnected), or PNP mode, or NPN mode. • Device 0 – Default Output Pin State A window is displayed to select a logic low or high state for each output pin. Click on each pin that should be logic high by default. • Device 1 – Default Input Level Select the input logic level as TTL 5 Volts or TTL 24 Volts, dependent on the signal type being input to the X-I/O module. • Device 1 – Default Connector DB37 is the supported output connector, as described in this section.

X64-CL Express User's Manual Appendix: X-I/O Module Option • 99

Programming the User Configuration After changing any user configurable X-I/O mode from the factory default state, click on the Program button (located on the upper left), to write the new default state to flash memory. The Device Manager message output window will display "Successfully updated EEProm". The program can now be closed. Using Sapera LT General I/O Demo The Sapera General I/O demo program will control the I/O capabilities of any installed Sapera board product. The demo will present to the user only the controls pertaining to the selected hardware. Run the demo via the windows start menu: (Start • Programs • Teledyne DALSA • Sapera LT • Demos • General I/O Demo). The first menu presents a drop list of all installed Sapera Acquisition Devices with I/O capabilities. Select the X64-CL Express board is selected and click OK to continue. General I/O Module Control Panel The I/O module control demo presents the I/O capabilities of the installed hardware. The following figure shows the X-I/O module connected to the X64-CL Express board. Output Pins: The first column displays the current state of the eight output pins (I/O Device #0). • The startup default state is user configured using the Device Manager program. • The state of each output can be changed by clicking on its status button. • Use the Signal Output drop menu to select the output mode (Tristate, PNP, NPN).

100 • Appendix: X-I/O Module Option X64-CL Express User's Manual

Input Pins: The second section provides input pin status (I/O device #1). Note that this program is a demo, therefore no action takes place on an input event. • The first column reads the logic level present on each input. The Input Level drop menu changes the logic level from 5V TTL to 24V logic. Use the Teledyne DALSA Device Manager program to select the default logic level type. • The second column demonstrates activating interrupts on individual inputs. In this demo program, use the Enable box to activate the interrupt on an input. The Count box will tally detected input events. Use the Signal Event drop menu to select which input signal edge to detect. The Reset button clears all event counts.

X64-CL Express User's Manual Appendix: X-I/O Module Option • 101

Sapera LT General I/O Demo Code Samples The following source code was extracted from the General I/O demo program. The comments highlight the areas that an application developer needs for embedding X-I/O module controls within the imaging application.

Main I/O Demo code

BOOL CGioMainDlg::OnInitDialog() {

[ . . . ]

// some declarations UINT32 m_gioCount; int m_ServerIndex; int m_ResourceIndex;

// Show the Server Dialog to select the acquisition device CGioServer dlg(this); if (dlg.DoModal() == IDOK) {

m_ServerIndex = dlg.GetServerIndex(); m_ServerName = dlg.GetServerName();

if ( m_ServerIndex != -1) { // Get the number of resources from SapManager for ResourceGio type by using // - the server index chosen in the dialog box // - the resource type to enquire for Gio m_gioCount=SapManager::GetResourceCount(m_ServerIndex,SapManager::ResourceGio);

// Create all objects [see the function following] if (!CreateObjects()) { EndDialog(TRUE); return FALSE; }

[ . . . ]

//Loop for all resources for (UINT32 iDevice = 0; (iDevice < MAX_GIO_DEVICE) && (iDevice < m_gioCount); iDevice++) { [ . . . ]

// direct read access to low-level Sapera C library capability to check // I/O Output module if (m_pGio[iDevice]->IsCapabilityValid(CORGIO_CAP_DIR_OUTPUT)) status = m_pGio[iDevice]->GetCapability(CORGIO_CAP_DIR_OUTPUT,&capOutput);

// direct read access to low-level Sapera C library capability to // check I/O Input module if (m_pGio[iDevice]->IsCapabilityValid(CORGIO_CAP_DIR_INPUT)) 102 • Appendix: X-I/O Module Option X64-CL Express User's Manual

status = m_pGio[iDevice]->GetCapability(CORGIO_CAP_DIR_INPUT,&capInput);

[ . . . ] // Constructor used for I/O Output module dialog. if (capOutput) { m_pDlgOutput[iDevice] = new CGioOutputDlg(this, iDevice, m_pGio[iDevice]); }

[ . . . ]

// Constructor used for I/O Input module dialog. if (capInput) { m_pDlgInput[iDevice] = new CGioInputDlg(this, iDevice, m_pGio[iDevice]); } } //end for } // end if

[ . . . ] }

Function CreateObjects()

BOOL CreateObjects() { CWaitCursor wait;

// Loop for all I/O resources for (UINT32 iDevice = 0; (iDevice < MAX_GIO_DEVICE) && (iDevice < m_gioCount); iDevice++) { // The SapLocation object specifying the server where the I/O resource is located SapLocation location(m_ServerIndex, iDevice);

// The SapGio constructor is called for each resource found. m_pGio[iDevice] = new SapGio(location);

// Creates all the low-level Sapera resources needed by the I/O object if (m_pGio[iDevice] && !*m_pGio[iDevice] && !m_pGio[iDevice]->Create()) { DestroyObjects(); return FALSE; } } return TRUE; }

X64-CL Express User's Manual Appendix: X-I/O Module Option • 103

Output Dialog: CGioOutputDlg class (see Sapera Gui class)

void CGioOutputDlg::UpdateIO() { UINT32 output=0; UINT32 state=0; BOOL status; [ . . . ]

// We loop to get all I/O pins. for (UINT32 iIO=0; iIO < (UINT32)m_pGio->GetNumPins(); iIO++) { [ . . . ]

// We set the current state of the current I/O pin by using // - the pin number on the current I/O resource // - the pointer to pin state // ( SapGio ::PinLow if low and SapGio ::PinHigh if high) status = m_pGio->SetPinState(iIO, (SapGio::PinState)state); }

}

Input Dialog: CGioInputDlg class. (see Sapera Gui class)

BOOL CGioInputDlg::Update() { SapGio::PinState state = SapGio::PinState::PinLow; BOOL status = true; UINT32 iIO; UINT32 jIO;

if (m_pGio == NULL) return FALSE;

// We loop to get all I/O pins. for (iIO=0; iIO < (UINT32)m_pGio->GetNumPins(); iIO++) { m_pGio->SetDisplayStatusMode(SapManager::StatusLog, NULL); // We get the current state of the current I/O pin by using // the pin number on the current I/O resource // the pointer to pin state // ( SapGio ::PinLow if low and SapGio ::PinHigh if high)

status = m_pGio->GetPinState(iIO, &state); m_pGio->SetDisplayStatusMode(SapManager::StatusNotify, NULL);

[ . . . ] }

[ . . . ] }

104 • Appendix: X-I/O Module Option X64-CL Express User's Manual

I/O Event Handling

void CGioInputDlg::GioCallbackInfo(SapGioCallbackInfo *pInfo) { CGioInputDlg* pInputDlg; CString strEventCount;

// We get the application context associated with I/O events pInputDlg = (CGioInputDlg*)pInfo->GetContext();

// We get the current count of I/O events strEventCount.Format("%d", pInfo->GetEventCount());

// We get the I/O pin number that generated an I/O event and apply the changes. pInputDlg->m_GioEventCount[pInfo->GetPinNumber()]++; }

X64-CL Express User's Manual Appendix: X-I/O Module Option • 105

106 • Appendix: X-I/O Module Option X64-CL Express User's Manual

Teledyne DALSA Contact Information

Sales Information

Visit our web site: http://www.teledynedalsa.com/imaging/ Email: mailto:[email protected]

Canadian Sales Teledyne DALSA — Head office Teledyne DALSA — Montreal office 605 McMurray Road 880 McCaffrey Waterloo, Ontario, Canada, N2V 2E9 St. Laurent, Quebec, Canada, H4T 2C7 Tel: 519 886 6000 Tel: (514) 333-1301 Fax: 519 886 8023 Fax: (514) 333-1388

USA Sales European Sales Teledyne DALSA — Billerica office Teledyne DALSA GMBH 700 Technology Park Drive Lise-Meitner-Str. 7 Billerica, Ma. 01821 82152 Krailling, Germany Tel: (978) 670-2000 Tel: +49 – 89 89 – 54 57 30 Fax: (978) 670-2010 Fax: +49 – 89 89 – 54 57 3-46

Asian Sales Teledyne DALSA Asia Pacific Shanghai Industrial Investment Building Ikebukuro East 13F Room G, 20F, 18 North Cao Xi Road, 3-4-3 Higashi Ikebukuro, Shanghai, China 200030 Toshima-ku, Tokyo, Japan Tel: +86-21-64279081 Tel: +81 3 5960 6353 Fax: +86-21-64699430 Fax: +81 3 5960 6354

X64-CL Express User's Manual Teledyne DALSA Contact Information • 107

Technical Support

Submit any support question or request via our web site:

Technical support form via our web page: Support requests for imaging product installations, Support requests for imaging applications http://www.teledynedalsa.com/imaging/support/ Camera support information

Product literature and driver updates

108 • Teledyne DALSA Contact Information X64-CL Express User's Manual

Glossary of Terms

Bandwidth Describes the measure of data transfer capacity. PCI devices must share the maximum PCI bus bandwidth when transferring data to and from system memory or other devices.

CAM Sapera camera file that uses the file extension CCA by default. Files using the CCA extension, also called CAM files (CAMERA files), contain all parameters which describe the camera video signal characteristics and operation modes (i.e. what the camera outputs).

Channel Camera data path that includes all parts of a video line.

Checksum A value used to ensure data is stored without error. It is created by calculating the binary values in a block of data using some algorithm and storing the results with the data.

Contiguous memory A block of physical memory, occupying consecutive addresses.

Firmware Software such as a board driver that is stored in nonvolatile memory mounted on that board.

Frame buffer An area of memory used to hold a frame of image data. A frame buffer may exist on the acquisition hardware or be allocated by the acquisition hardware device driver in host system memory.

Grab Acquiring an image frame by means of a frame grabber.

Host Refers to the computer system that supports the installed frame grabber.

Host buffer Refers to a frame buffer allocated in the physical memory of the host computer system.

X64-CL Express User's Manual Glossary of Terms • 109

LSB Least Significant Bit in a binary data word.

MSB Most Significant Bit in a binary data word.

PCI 32 Peripheral Component Interconnect. The PCI local bus is a 32-bit high-performance expansion bus intended for interconnecting add-in boards, controllers, and processor/memory systems.

PCI 64 A superset of the PCI specification providing a 64 bit data path and a 66 MHz clock.

Pixel Picture Element. The number of pixels describes the number of digital samples taken of the analog video signal. The number of pixels per video line by the number of active video lines describes the acquisition image resolution. The binary size of each pixel (i.e., 8-bits, 15-bits, 24-bits) defines the number of gray levels or colors possible for each pixel.

Scatter Gather Host system memory allocated for frame buffers that is virtually contiguous but physically scattered throughout all available memory.

Tap Data path from a camera that includes a part of or whole video line. When a camera tap outputs a partial video line, the multiple camera tap data must be constructed by combining the data in the correct order.

VIC Sapera camera parameter definition file that uses the file extension CVI by default. Files using the CVI extension, also know as VIC files (VIDEO files), contain all operating parameters related to the frame grabber board (i.e. what the frame grabber can actually do with camera controls or incoming video).

110 • Glossary of Terms X64-CL Express User's Manual

connector location 92 Contiguous Memory 20 CORACQ_PRM_EXT_LINE_TRIGGER_DETE Index CTION 79 CORACQ_PRM_EXT_LINE_TRIGGER_ENAB LE 79 CORACQ_PRM_EXT_LINE_TRIGGER_LEVE L 79 A CORACQ_PRM_EXT_LINE_TRIGGER_SOUR Acquisition and Control Unit 50 CE 79 acquisition bandwidth 28 CORACQ_PRM_EXT_TRIGGER_DETECTION Acquisition events 50 78 acquisition module 50 CORACQ_PRM_EXT_TRIGGER_ENABLE 78 acquisition parameters 39 CORACQ_PRM_EXT_TRIGGER_LEVEL 78 ACUPlus 5 CORACQ_PRM_SHAFT_ENCODER_DROP 79 administrator 10, 11 CORACQ_PRM_SHAFT_ENCODER_ENABLE AUTORUN 11 78 CORACQ_PRM_SHAFT_ENCODER_LEVEL 78 B CORACQ_PRM_STROBE_DELAY 79 Bayer Decoder 5 CORACQ_PRM_STROBE_DURATION 79 Bayer Filter Decoding 4 CORACQ_PRM_STROBE_ENABLE 79 Bayer Mosaic Filter 36, 68 CORACQ_PRM_STROBE_LEVEL 79 Block Diagram 41 CORACQ_PRM_STROBE_METHOD 79 BoardInfo.txt 18, 22 CORACQ_PRM_STROBE_POLARITY 79 boot recovery mode 22 buffer output supply voltage 96 D DALSA Device Manager 22, 98 C DALSA Imaging drivers 25 cables 71 DALSA Imaging web site 2 calibration information 23 Data Overflow event 50 camera configuration file 29 Data Transfer Engine 6 camera control 15, 75 debounce circuit time constant 83 Camera file 26, 34, 39, 46, 48 default firmware 49 Camera Link 71, 75, 87 Device Manager 13, 18 Camera Link cables 19 double buffering memory 26 Camera Link cabling 15 driver status 25 Camera Link control 75 driver upgrade 9 camera power selection 19 camera timing 29 E CamExpert 39, 46, 48 CamExpert parameters 30 End of Frame event 51 Certifications 69 End of Transfer event 51 Color Filter Array 5 external signals 91 communication ports 7 External Signals Connector 45, 46, 47, 71, 77, 81

X64-CL Express User's Manual Index • 111

External Signals Connector Bracket Assembly 46, J 80 J11 jumper 22 jumpers 71, 84 F failure - firmware upgrade 21 L Firmware Loader 13 firmware revision 18 launch.exe 11 firmware selection 5 LED indicators 7 Fixed Pattern Noise (FPN) 5 Line Scan 5, 46 Flat Field Correction 4, 34, 68 Log Viewer program 25 Found New Hardware Wizard 12 LUT availability 49 frame buffer 47 LVDS pairs 75 frame buffer resources 20 Frame Lost event 51 M Frame Sync 48 frame trigger 47 maximum data transfer 6 MDR-26 19, 71 memory error 63 H multi-board sync 84 HTML help 2, 3 HyperTerminal 7, 15 N National Semiconductor 87 I NPN mode 95 I/O available capabilities 99 I/O demo program 100 O I/O Device 0 99 I/O Device 1 99 opto-coupled input specs 97 I/O flash memory 98 out-of-memory error 20 I/O input event 101 output sink current 95 I/O input trip points 97 output source current 96 I/O interface cable 93 I/O interrupts 101 P I/O NPN output mode 99 PCI bus latency 50 I/O output modes 91 PCI Bus Number 24 I/O PNP output mode 99 PCI configuration registers 24 I/O power up state 98 PCI configuration space 22, 24, 28 I/O sample code 98 PCI conflict 22 I/O source code 102 PDF 2, 3 I/O Tristate output mode 99 Phase A 46 image processing 3 Phase B 46 Industrial level mode 97 Photo Response Non Uniformity (PRNU) 5 input logic level 99 physical dimensions 67 input pin status 101 Pixel Replacement 5 input pull-up resistor 95 PNP mode 96 Internet 2

112 • Index X64-CL Express User's Manual

Power Requirements 68 W programming I/O flash 100 web inspection 46 Windows Event Viewer 22 Q Windows HyperTerminal 15 Quadrature-Shaft-Encoder 7 Windows Logo testing 12 Windows operating system memory 21 workstation 10, 11 S Sapera Acquisition Devices 100 X Sapera buffers allocation 20 Sapera CamExpert 27 X64-CL Express report 18 Sapera CD-ROM 9, 11 X64-CL Express serial port 16 Sapera configuration program 15, 16, 20 X-I/O field installation 93 Sapera LT Development Library 11 X-I/O module driver update 93 Sapera LT User’s manual 11 X-I/O module overview 91 Sapera messaging 20 Sapera version required 9 scatter gather buffers 21 Scatter-Gather 6 serial communication port 15 serial port speeds 15 Shading Correction 5 shaft encoder 7, 46 software trigger 27 source/destination pairs 66 Static electricity 9, 92 system COM port 15

T technical support 18 transfer module 51 trigger 7, 46, 47 troubleshooting support 27 TTL shaft encoder 81

U user defined I/O state 91 USER_PWR 96

V virtual frame buffer 47

X64-CL Express User's Manual Index • 113