Preview only show first 10 pages with watermark. For full document please download

P3i2_family_1h

   EMBED


Share

Transcript

Frame Grabber Family p3i_async, p3i_async/f, p3i_mono, p3i_quadro, p3i_rgb, p3i_async/pmc, p3i_moco/pmc manual Revision 1H Revision Revision Changes Date / Name 1A First Edition 2001 nic, uw, dp, hh 1B Layout changes 2001 uw 1C p3i-ASYNC/PMC added 2003 ew, abr 1D p3i-MOCO/PMC added 2003 pp, hh 1E p3i-ASYNC/F added 2003 pp 1F Default jumpering for p3i2_RGB corrected. Board layout diagram for p3i2_ASYNC and p3i2_ASYNC/F corrected. ESD inf added. 04.07.05 pp 1G Definition of cable shielding added 25.07.05 pp 1H Disclaimer new 08.11.06 hh DISCLAIMER Copyright © 2006 ELTEC Elektronik AG. The information, data, and figures in this document including respective references have been verified and found to be legitimate. In particular in the event of error they may, therefore, be changed at any time without prior notice. The complete risk inherent in the utilization of this document or in the results of its utilization shall be with the user; to this end, ELTEC Elektronik AG shall not accept any liability. Regardless of the applicability of respective copyrights, no portion of this document shall be copied, forwarded or stored in a data reception system or entered into such systems without the express prior written consent of ELTEC Elektronik AG, regardless of how such acts are performed and what system is used (electronic, mechanic, photocopying, recording, etc.). All product and company names are registered trademarks of the respective companies. Our General Business, Delivery, Offer, and Payment Terms and Conditions shall otherwise apply. Federal communications commission statement Þ Þ Þ Þ Þ Þ Þ Þ Þ This device complies with FCC Rules Part 15. Operation is subject to the following two conditions: This device may not cause harmful interference, and This device must accept any interference received including interference that may cause undesired operation. This equipment has been tested and found to comply with the limits for a Class B digital device, pursuant to Part 15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful interference in a residential installation. This equipment generates, uses and can radiate radio frequency energy and, if not installed and used in accordance with manufacturer’s instructions, may cause harmful interference to radio communications. However, there is no guarantee that interference will not occur in a particular installation. If this equipment does cause harmful interference to radio or television reception, which can be determined by turning the equipment off and on, the user is encouraged to try correct the interference by one or more of the following measures: Reorient or relocate the receiving antenna. Increase the separation between the equipment and receiver. Connect the equipment to an outlet on a circuit different from that to which the receiver is connected. Consult the dealer or an experienced radio/TV technician for help. The us of shielded cables for connection of the monitor to the graphics card is required to assure compliance with FCC regulations. Changes or modifications to this unit not expressly approved by the party responsible for compliance could void the user’s authority to operate this equipment. Canadian department of communications statement Þ This digital apparatus does not exceed the Class B limits for radio noise emissions from digital apparatus set out in the Radio Interference Regulations of the Canadian Department of Communications. Þ This class B digital apparatus complies with Canadian ICES-003 SAFETY INFORMATION Electrical safety Þ To prevent electrical shock hazard, disconnect the power cable from the electrical outlet before reloading the system. Þ When adding or removing devices to or from the system, ensure that the power cables for the devices are unplugged before the signal cables are connected. If possible, disconnect all power cables from the existing system before you add device. Þ Before connecting or removing signals cables from motherboard, ensure that all power cables are unplugged. Þ Make sure that your power supply is set to the correct voltage in your area. If you are not sure about the voltage of the electrical outlet you are using, contact your local power company. Þ If the power supply is broken, do not try to fix it by yourself. Contact a qualified service technician or your retailer. Operation safety Þ Before installing the motherboard and adding devices on it, carefully read the manuals that came with the package. Þ Before using the product, make sure all cables are correctly connected and the power cables are not damaged. If you detect any damage, contact your dealer immediately. Þ To avoid short circuits, keep paper clips, screws, and staples away from connectors, slots sockets and circuitry. Þ Avoid dust, humidity, and temperature extremes. Do not place the product in any area where it may become wet. Þ Place the product on a stable surface. Þ If you encounter technical problems with the product, contact a qualified service technician or your retailer. EMC Rules This unit has to be installed in a shielded housing. If not installed in a properly shielded enclosure, and used in accordance with the instruction manual, this product may cause radio interference in which case the user may be required to take adequate measures at his or her own expense. IMPROTANT INFORMATION This product is not an end user product. It was developed and manufactured for further processing by trained personnel. RECYCLING Please recycle packaging environmentally friendly: Packaging materials are recyclable. Please do not dispose packaging into domestic waste but recycle it. Please recycle old or redundant devices environmentally friendly: Old devices contain valuable recyclable materials that should be reutilized. Therefore please dispose .... old devices at collection points which are suitable. Table of Contents Disclaimer i 1. Introduction 2 1.1. About this document 2 1.2. Differences between p3i_RGB, p3i_ASYNC, p3i_ASYNC/F, p3i_QUADRO, p3i_MONO, p3i_MOCO/PMC and p3i_ASYNC/PMC 3 2. Getting Started 5 2.1. Requirements 5 2.2. Hardware installation 5 2.3. Connecting the camera 5 2.4. Software installation 6 2.4.1. Windows operating systems 6 2.4.2. Linux operating systems 28 3. Hardware Reference 31 3.1. Introduction 31 3.1.1. General Features 31 3.2. p3i_MONO-Hardware 32 3.2.1. Block Diagram p3i_MONO 32 3.2.2. Technical Details for p3i_MONO 33 3.2.3. Jumpers and Connectors for p3i_MONO 36 3.2.4. Hex-Switch (Board-ID-Select)p3i_MONO 41 3.2.5. Status-LEDs p3i_MONO 41 3.3. p3i_QUADRO-Hardware 42 3.3.1. Block Diagram p3i_QUADRO 42 3.3.2. Technical Details for p3i_QUADRO 43 3.3.3. Jumpers and Connectors for p3i_QUADRO 47 3.3.4. Hex-Switch (Board-ID-Select) p3i_QUADRO 56 3.3.5. Status-LEDs p3i_QUADRO 56 3.4. p3i_RGB-Hardware 57 3.4.1. Block Diagram p3i_RGB 57 3.4.2. Technical Details for p3i_RGB 58 3.4.3. Jumpers and Connectors for p3i_RGB 62 3.4.4. Hex-Switch (Board-ID-Select) p3i_RGB 69 3.4.5. Status-LEDs p3i_RGB 69 3.5. p3i_ASYNC-Hardware 70 3.5.1. Block Diagram p3i_ASYNC 70 3.5.2. Technical Details for p3i_ASYNC 71 3.5.3. Jumpers and Connectors for p3i_ASYNC 75 3.5.4. Hex-Switch (Board-ID-Select) p3i_ASYNC 84 3.5.5. Status-LEDs p3i_ASYNC 84 3.6. p3i_ASYNC/F-Hardware 85 3.6.1. Block Diagram p3i_ASYNC/F 85 3.6.2. Technical Details for p3i_ASYNC/F 86 3.6.3. Jumpers and Connectors for p3i_ASYNC/F 90 3.6.4. Hex-Switch (Board-ID-Select) p3i_ASYNC/F 99 3.6.5. Status-LEDs p3i_ASYNC/F 99 3.7. p3i_MOCO/PMC-Hardware 100 3.7.1. Block Diagram p3i_MOCO/PMC 100 3.7.2. Technical Details for p3i_MOCO/PMC 101 3.7.3. Jumpers and Connectors for p3i_MOCO/PMC 105 3.8. p3i_ASYNC/PMC-Hardware 110 3.8.1. Block Diagram p3i_ASYNC/PMC 110 3.8.2. Technical Details for p3i_ASYNC/PMC 111 3.8.3. Jumpers and Connectors for p3i_ASYNC/PMC 115 iv p3i2 Framegrabber Family 3.9. Specifications 3.9.1. Electrical Specifications 3.9.2. Environmental Conditions 4. Trouble Shooting - if it does not work 5. Programmers Reference 5.1. Overview 5.1.1. Introduction 5.1.2. Main Features 5.1.3. Technical Details 5.1.4. Software Concept 5.1.5. Source code samples 5.1.6. Industrial requirements 5.1.7. Cameras 5.1.8. Developing own applications 5.1.9. Allocating Image Memory 5.1.10. Multiple Grabbers 5.1.11. Error Handling 5.1.12. Downloading the software 5.1.13. Image Sequences - Program flow 5.1.14. Calling the library function from languages other than C/C++ 5.1.15. Virtual Grabbers 5.2. Library Functions 5.2.1. Overview of library functions 5.2.2. el_Acquire 5.2.3. el_AcquireEx 5.2.4. el_AssignBuffer 5.2.5. el_CloseHW 5.2.6. el_CreateMemBuffer 5.2.7. el_EnableExternalTrigger 5.2.8. el_EnableExtPixelClock 5.2.9. el_EnableSyncGenerator 5.2.10. el_FreeMemBuffer 5.2.11. el_GetBoardIdentifiers 5.2.12. el_GetDriverRevision 5.2.13. el_GetErrorCode 5.2.14. el_GetErrorCodeEx 5.2.15. el_GetHWRevision 5.2.16. el_GetNumOfBoards 5.2.17. el_GetScriptPara 5.2.18. el_GetSelectedCamera 5.2.19. el_GetSetting 5.2.20. el_GetSupportedCamFeaturesEx 5.2.21. el_GetSWRevision 5.2.22. el_InitContext 5.2.23. el_InitHW 5.2.24. el_NewMemBuffer 5.2.25. el_OpenHW 5.2.26. el_OpenHWEx 5.2.27. el_ResetOutputs 5.2.28. el_SelectCamera 5.2.29. el_SetAcqMemFormat 5.2.30. el_SetAcqWindow 5.2.31. el_SetInputMux 5.2.32. el_SetInputRefLevel 5.2.33. el_SetOutputs 5.2.34. el_SetPackingMode 5.2.35. el_SetScriptPara v 121 121 122 123 124 124 124 124 124 125 125 126 126 126 126 126 127 127 127 128 128 129 129 131 132 133 136 136 137 137 138 138 139 139 140 140 140 141 141 142 143 143 144 144 145 147 149 150 151 152 152 153 154 154 155 156 157 p3i2 Framegrabber Family 5.2.36. el_SetSyncInPort 5.2.37. el_SetVideoInPort 5.2.38. el_TestAcq 5.2.39. el_TestField 5.2.40. el_TestFrame 5.2.41. el_TestFrameCount 5.2.42. el_TestVSync 5.2.43. el_WaitAcqEnd 5.2.44. el_WaitFieldEnd 5.2.45. el_WaitFrameEnd 5.2.46. el_WaitFrameStart 5.2.47. el_WriteSetupFile 5.3. Defines 5.3.1. EL_ACQUISITIONFORMAT 5.3.2. EL_ACQUISITIONMODE 5.3.3. Error codes 5.3.4. EL_FGITEM 5.4. Data Structures 5.4.1. EL_CAMFEATURES 5.4.2. EL_BOARD_IDENTIFIER 5.4.3. EL_SCRIPT_PARA 6. Samples 6.1. Programming example 6.2. Additional programming examples A. Cameras A.1. Introduction A.2. External Camera Sync A.3. Overview of Cameras with special features supported by the software A.4. Sony XC-55 A.4.1. Cabling of Sony XC-55 for p3i_QUADRO/p3i_ASYNC A.5. Sony XC-HR50 A.5.1. Cabling of Sony XC-HR50 for p3i_QUADRO/p3i_ASYNC A.6. Sony XC-HR70 A.6.1. Cabling of Sony XC-HR70 for p3i_QUADRO/p3i_ASYNC A.7. JAI CV-M50 A.7.1. Cabling of JAI CV-M50 for p3i_RGB/p3i_MONO A.7.2. Cabling of JAI CV-M50 for p3i_QUADRO A.8. JAI CV-M70 A.8.1. Cabling of JAI CV-M70 for p3i_RGB A.9. JAI A50C/A60C A.9.1. Cabling of JAI A50C/A60C for p3i_RGB/p3i_MONO A.9.2. Cabling of JAI A50C/A60C for p3i_QUADRO/p3i_ASYNC A.10. JAI A11 A.10.1. Cabling of JAI A11 for p3i_RGB/p3i_MONO A.10.2. Cabling of JAI A11 for p3i_QUADRO/p3i_ASYNC A.11. Sony XC8500 A.11.1. Cabling of Sony XC8500 for p3i_RGB/p3i_MONO A.11.2. Cabling of Sony XC8500 for p3i_QUADRO/p3i_ASYNC A.12. Sony XC-003P A.12.1. Cabling of Sony XC-003P for p3i_RGB A.13. Teli 3910 A.13.1. Cabling of Teli 3910 for p3i_RGB/p3i_MONO A.14. JAI CV-M10 A.14.1. Cabling of JAI CV-M10 for p3i_QUADRO/p3i_ASYNC A.15. JAI CV-M77 A.15.1. Cabling of JAI CV-M77 for p3i_RGB A.16. DMP 60H13 vi 158 158 159 159 160 161 161 161 163 163 164 164 165 165 165 166 169 170 170 171 171 173 173 174 176 176 176 176 178 178 179 179 181 181 183 183 186 189 189 194 194 196 198 198 200 202 202 204 206 206 208 208 211 211 216 216 218 p3i2 Framegrabber Family A.16.1. Cabling of DMP 60H13 for p3i_QUADRO/p3i_ASYNC A.17. DMP 70H13 A.17.1. Cabling of DMP 70H13 for p3i_QUADRO/p3i_ASYNC A.18. Default setting of jumper array for X101 on p3i_QUADRO B. FAQs B.1. Common FAQs B.2. p3i2 FAQs Glossary vii 218 221 221 224 225 225 229 234 List of Tables 1.1. PC-EYE are renamed to p3i2 2 1.2. Differences between p3i_RGB, p3i_ASYNC, p3i_ASYNC/F, p3i_QUADRO and p3i_MONO 3 1.3. Differences between p3i_MOCO/PMC and p3i_ASYNC/PMC 4 2.1. Frontpanel 5 3.1. Supported camera channels 31 3.2. Layout 15-pin VGA-Type Connector X100 p3i_MONO 37 3.3. Default Jumpering J100 - J103 p3i_MONO 38 3.4. Layout 15-pin VGA-Type Connector X101 p3i_MONO 39 3.5. Layout 10-Pin Header X106 p3i_MONO 40 3.6. Layout 3,5" Floppy-Type Power Connector X700 p3i_MONO 40 3.7. frame grabber LED 41 3.8. Possible Input Selections p3i_QUADRO 43 3.9. Default Jumpering J104 - J106 p3i_QUADRO 48 3.10. Layout 15-pin VGA-Type Connector X101 p3i_QUADRO 49 3.11. Jumpering for J100 - J103 p3i_QUADRO 51 3.12. Layout Hirose Connector X102-X105 p3i_QUADRO 52 3.13. Layout 10-Pin Header X106 p3i_QUADRO 55 3.14. Layout 3,5" Floppy-Type Power Connector X700 p3i_QUADRO 55 3.15. frame grabber LED p3i_QUADRO 56 3.16. Possible Input Selections p3i_RGB 58 3.17. Layout 15-pin VGA-Type Connector X100 p3i_RGB 63 3.18. Overview p3i_RGB 64 3.19. Layout 15-pin VGA-Type Connector X101 p3i_RGB 65 3.20. Layout 10-Pin Header X106 p3i_RGB 67 3.21. Layout 3,5" Floppy-Type Power Connector X700 p3i_RGB 68 3.22. frame grabber LED p3i_RGB 69 3.23. Possible Input Selections p3i_ASYNC 71 3.24. Default Jumpering J104 - J106 p3i_ASYNC 76 3.25. Layout 15-pin VGA-Type Connector X101 p3i_ASYNC 77 3.26. Jumpering for J100 - J103 p3i_ASYNC 79 3.27. Layout Hirose Connectors X102-X105 p3i_ASYNC 80 3.28. Layout 10-Pin Header X106 p3i_ASYNC 83 3.29. Layout 3,5" Floppy-Type Power Connector X700 p3i_ASYNC 83 3.30. frame grabber LED p3i_ASYNC 84 3.31. Possible Input Selections p3i_ASYNC/F 86 3.32. Default Jumpering J104 - J106 p3i_ASYNC/F 91 3.33. Layout 15-pin VGA-Type Connector X101 p3i_ASYNC/F 92 3.34. Jumpering for J100 - J103 p3i_ASYNC/F 94 3.35. Layout Hirose Connectors X102-X105 p3i_ASYNC/F 95 3.36. Layout 10-Pin Header X106 p3i_ASYNC/F 98 3.37. Layout 3,5" Floppy-Type Power Connector X700 p3i_ASYNC/F 98 3.38. frame grabber LED p3i_ASYNC/F 99 3.39. Default Jumpering J101 - J100 p3i_MOCO/PMC 106 3.40. Layout 15-pin VGA-Type Connector X100 p3i_MOCO/PMC 107 3.41. Layout 15-pin VGA-Type Connector X101 p3i_MOCO/PMC 108 3.42. Layout 3,5" Floppy-Type Power Connector X700 p3i_MOCO/PMC 109 3.43. Possible Input Selections p3i_ASYNC/PMC 111 3.44. Default Jumpering J100 - J101 p3i_ASYNC/PMC 116 3.45. Layout 15-pin VGA-Type Connector X100 p3i_ASYNC/PMC 117 3.46. Layout 15-pin VGA-Type Connector X101 p3i_ASYNC/PMC 118 3.47. Layout 3,5" Floppy-Type Power Connector X700 p3i_ASYNC/PMC 119 3.48. Board-ID-Select Jumper (J100, J101) p3i_ASYNC/PMC 119 3.49. Electrical Specifications 121 5.1. Initialization 129 viii p3i2 Framegrabber Family 5.2. Configuration and Video Input 5.3. Acquisition and Buffer Management 5.4. Timing/Synchronisation 5.5. File I/O 5.6. Miscellanious 5.7. Camera Adaptation module functions 5.8. Packing Modes (ADC) 5.9. Acquisition format 5.10. Acquisitionmode 5.11. Warning codes 5.12. Unknown error codes 5.13. Error codes 5.14. Extended error codes 5.15. EL_FGITEM A.1. Overview of Cameras A.2. Grabber Trigger Sony XC-55 E-DONPISHA II A.3. Grabber Trigger Sony XC-55 Rest. Res. A.4. trigger p3i_ASYNC A.5. Sony XC-HR50 Mode1 A.6. p3i_ASYNC only: Camera 1 - 3 A.7. Sony XC-HR70 Mode1 A.8. p3i_ASYNC only: Camera 1 - 3 A.9. Trigger Modes JAI CV-M50 A.10. Camera and Grabber A.11. Shutter A.12. Grabber, Camera and Trigger A.13. Camera, Grabber and trigger signal A.14. Overview of supported combinations A.15. Trigger Modes A.16. Camera, Grabber and trigger signal A.17. Shutter exposure A.18. Grabber, Camera and trigger A.19. Overview of supported combinations A.20. Scan Modes A.21. Trigger Modes A.22. Camera, Grabber and trigger signal A.23. Shutter exposure A.24. Grabber, Camera and trigger A.25. Camera, Grabber and trigger signal A.26. Overview of supported combinations A.27. Trigger Modes A.28. Camera, Grabber and trigger signal A.29. Grabber, Camera and trigger A.30. Overview of supported combinations A.31. Modes A.32. Camera, Trigger signal A.33. Camera, Trigger A.34. Camera 1 - 3 A.35. Overview of supported combinations A.36. Camera 1 - 3 A.37. Camera, Grabber and trigger signal A.38. Grabber, Camera and trigger A.39. Overview of supported combinations A.40. Camera 1 - 3 A.41. Camera, Grabber and trigger signal A.42. Grabber, Trigger A.43. Camera 1 - 3 129 129 130 130 130 130 156 165 165 166 166 166 168 169 176 178 179 179 180 180 182 182 183 183 184 184 184 185 186 186 187 187 188 189 189 189 191 191 192 193 194 194 195 195 196 196 197 197 197 198 198 199 199 200 200 200 201 ix p3i2 Framegrabber Family A.44. Overview of supported combinations A.45. Scan Modes A.46. Trigger Modes A.47. Grabber, Camera and trigger A.48. Overview of supported combinations A.49. Scan Modes A.50. Trigger Modes A.51. Grabber, Camera and trigger A.52. Camera 1 - 3 A.53. Overview of supported combinations A.54. Trigger Modes A.55. Camera, Grabber and trigger signal A.56. Grabber, Camera and trigger A.57. Grabber, Camera and trigger A.58. Camera, Grabber and trigger signal A.59. Trigger Modes A.60. Grabber, Camera and trigger A.61. Dip Switch for - RTS Pulse Mode (Restart Reset): A.62. Grabber, Camera and trigger A.63. Dip Switch for RTS Fix mode: A.64. Scan Modes A.65. Trigger Modes A.66. Grabber, Camera and trigger A.67. Shutter exposure A.68. Overview A.69. Grabber, Camera and trigger A.70. Trigger Modes A.71. Camera, Grabber and trigger signal A.72. Grabber, Camera and trigger A.73. Overview of supported combinations A.74. DMP 60H13 Modes A.75. p3i_ASYNC only: Camera 1 - 3 A.76. Shutter A.77. DMP 70H13 Modes A.78. p3i_ASYNC only: Camera 1 - 3 A.79. Overview B.1. RGB Camera with Sync on green B.2. RGB Camera with Sync on green 2 B.3. RGB Camera with external sync B.4. RGB Camera with external sync 2 B.5. RGB Camera on second connector with external sync B.6. RGB Camera on second connector with external sync 2 B.7. four B/W cameras on first connector, camera on red used for sync B.8. four B/W cameras on first connector, camera on red used for sync 2 B.9. two B/W cameras on both connectors, camera on G_A used for sync B.10. two B/W cameras on both connectors, camera on G_A used for sync x 201 202 202 203 203 204 204 205 205 205 206 206 207 207 207 208 208 208 210 210 211 211 212 212 214 214 216 216 217 217 218 220 220 221 222 224 229 229 230 231 231 231 231 232 232 232 Chapter 1. Introduction 1.1. About this document The purpose of this documentation is to describe the ELTEC Elektronik AG frame grabber family. It contains a description of the hardware and software installation, the list of software APIs and a list of cameras which can be used with this product. The software package is common to all members of the frame grabber family. The following table shows the old and new names for the p3i2 frame grabber family. Table 1.1. PC-EYE are renamed to p3i2 Art.-Nr. Short Name Old Name V-P3I2-100 B p3i_RGB PC_EYE_250 V-P3I2-200 B p3i_ASYNC PC_EYE_280 V-P3I2-300 B p3i_QUADRO PC_EYE_260 V-P3I2-400 B p3i_MONO PC_EYE_270 The p3i_MOCO/PMC and p3i_ASYNC/PMC is the PMC versions of the PCI board p3i_ASYNC. 2 Chapter 1. Introduction 1.2. Differences between p3i_RGB, p3i_ASYNC, p3i_ASYNC/F, p3i_QUADRO, p3i_MONO, p3i_MOCO/PMC and p3i_ASYNC/PMC Table 1.2. Differences between p3i_RGB, p3i_ASYNC, p3i_ASYNC/F, p3i_QUADRO and p3i_MONO p3i_RGB p3i_QUADRO p3i_ASYNC p3i_ASYNC/F p3i_MONO Monochrome inputs 8 8 8 8 8 RGB inputs 2 1 0 0 0 Simultaneous monochrome inputs 4 4 4 4 1 Non synchronized Cameras No No Yes Yes - Dynamic 4 General Purpose Outputs 12 12 12 4 Static General 4 Purpose Outputs 4 4 4 4 External trigger 2 4 4 4 2 External pixel-clock 2 4 4 4 2 Pixel clock Max. 32 MHz 32 MHz 30 MHz 40 MHz 32 MHz FiFo Size 4x 1kB 4x 1kB 4x 1kB 4x 64MB 2kB Connectors 2x HD15 4x Hirose, 1x HD15 4x Hirose, 1x HD15 4x Hirose, 1x HD15 2x HD15 Packing Modes Monochrome 8 bit, RGB 16/24/32 bit, Pseudo-RGB 16 bit Monochrome 8 Monochrome 8 Monochrome 8 Monochrome 8 bit, RGB bit, Pseudo-RGB bit, Pseudo-RGB bit 16/24/32 bit, 16 bit 16 bit Pseudo-RGB 16 bit 3 Chapter 1. Introduction Table 1.3. Differences between p3i_MOCO/PMC and p3i_ASYNC/PMC p3i_MOCO/PMC p3i_ASYNC/PMC Monochrome inputs 2 4 RGB inputs 0 0 Simultaneous monochrome inputs 2 4 Y/C inputs 1 0 CVBS inputs 2 0 Non synchronized Cameras Yes Yes Dynamic General Purpose Outputs 4 12 Static General Purpose Outputs 0 0 External trigger 2 4 External pixel-clock 2 4 Pixel clock Max. 30 MHz 30 MHz FiFo Size 3x 1kB 4x 1kB Connectors 2x HD15 2x HD15 Packing Modes Monochrome 8 bit, RGB 24/32 bit, BGR 24/32 bit, YUV 4:2:2 Monochrome 8 bit 4 Chapter 2. Getting Started 2.1. Requirements What you need for installation and use of the p3i2 family member boards: • The frame grabber board. • Camera with CCIR/EIA analog BW or RGB video output • Camera Cable • Computer system with free PCI/PMC slot and Pentium CPU (min.). • Windows 98, ME, NT, 2000, XP or a Linux operating system. • Operating system dependent hardware driver setup and system independent development files 2.2. Hardware installation • Switch off computer. • Prepare site to observe electrostatic discharge (ESD) precautions before opening computer or removing the grabber from its case: Touch computer steel case during insertion/removal of the frame grabber or take other precautions to ensure the absence of high voltages due to electric charges. • Open computer case, remove blind back panel. • Insert the board into a free PCI/PMC slot; the board must fit into the slot without use of excessive force, make sure it sits firmly in the slot and the PCI connector conductors sit completely inside the connector. • Attach the 3,5'' Floppy-Type Power connector to the connector on the frame grabber board. • Fix the back panel with screw. • Close case. 2.3. Connecting the camera Attach camera cable to camera connector no 1 as shown by the arrow in the picture below. (On PMC module use connector named VIDEO 1.) To connect a RGB-Camera to p3i_RGB, use a standard PC-Monitor cable HD15 to BNC (red, green and blue BNC connected to pin 1,2,3 on HD15). To connect a monochrome cameras with BNC-Output to p3i_MONO, p3i_RGB or p3i_ASYNC/PMC use the ELTEC Elektronik AG cable V-CABL-183A. To connect monochrome cameras with Hirose-Output to p3i_QUADRO and p3i_ASYNC use standard Hirose-Cables. 5 Chapter 2. Getting Started Table 2.1. Frontpanel p3i_RGB p3i_QUADRO p3i_ASYNC/PMC p3i_MONO p3i_ASYNC p3i_ASYNC/PMC 2.4. Software installation Please download our software from the web site ELTEC Elektronik AG [http://www.eltec.de] selecting support/drivers and updates or ask our support ( ). 2.4.1. Windows operating systems The software package is common to all members of the frame grabber family. As the p3i_ASYNC/PMC is a variation of the p3i_ASYNC the p3i2 family drivers are also used for the p3i_ASYNC/PMC. The software consists of : • the drivers for Windows 98 SE, Windows ME, Windows NT 4.0 and Windows 2000 and the DLL that provides the imaging API • the configuration tools containing the configuration program and import library for the DLL that provides the imaging API • the samples 2.4.1.1. Driver installation The next steps are dependend of your operating system. This chapter describes how to install the lowlevel drivers. The usermode DLL and test-applications are contained in a different setup. Please keep the following installation order. 1. Read the documentation. 2. Follow the installation steps described in the next section. Read this section before plugging the 6 Chapter 2. Getting Started grabber into your computer system. 3. Install the software. The installation procedure is different for the various operating systems. Please read the appropriate section. 2.4.1.1.1. WinNT 4.0 To install or update use the setup program located in the directory NT40. 2.4.1.1.2. Win98, Win98 SE Install or update the driver by using the device manager is similar to Section 2.4.1.1.3. Please have a look to this section. Dialogs may vary, but the overall procedure is the same. 7 Chapter 2. Getting Started 2.4.1.1.3. Win98 ME, Windows 2000, Windows XP Under these operating systems there are two ways to install or update the driver. 2.4.1.1.3.1. Using the device manager 2.4.1.1.3.1.1. Installation Install the driver by using the device manager. Perform the following steps. For a first time installation perform the following steps: 1. Shut down your computer system, disconnect power. 2. Plug in the grabber and turn on power. 3. Wait for the new hardware to be detected and click Next for installation. 8 Chapter 2. Getting Started 4. Let the Hardware Wizard display a list of drivers. 9 Chapter 2. Getting Started 5. Use Have Disk to browse to the location of the driver INF file. 10 Chapter 2. Getting Started 6. Select the proper path. 7. The grabber name is displayed next. As the INF file contains only one driver description just click Next. 11 Chapter 2. Getting Started 8. Click Next to perform the installation. 12 Chapter 2. Getting Started 9. Click Yes 13 Chapter 2. Getting Started 10. Finish the installation. 14 Chapter 2. Getting Started 2.4.1.1.3.1.2. Update To update an existing installation perform the following steps. 1. Open the device manager. 15 Chapter 2. Getting Started 2. Select the grabber and click Properties. 16 Chapter 2. Getting Started 3. Select the property page Driver and click Update Driver 17 Chapter 2. Getting Started 4. Click Next to start the update wizard. 18 Chapter 2. Getting Started 5. Select the radio button Display a list of all ... and click Next. 19 Chapter 2. Getting Started 6. Use the button Have Disk to select the location of the driver and browse for the location of the drivers. 20 Chapter 2. Getting Started 7. Next. 21 Chapter 2. Getting Started 8. Yes. 22 Chapter 2. Getting Started 9. Win98 may insist that the currently installed driver is better than the new one. If you are sure that you have a newer driver - check the readme file coming with the installation - click Yes to install. 10. Click Finish to finish installation. 2.4.1.1.3.2. Using the setup program The setup program for Win98 ME, Windows 2000 and Windows XP is located in the subdirectory Win2k. 2.4.1.1.3.2.1. Installation Start the setup program before plugging the grabber into you computer system. 23 Chapter 2. Getting Started If you plugged in the grabber before starting the setup program, you can use the device manager as described in the Section 2.4.1.1.2 section. You are asked to insert the installation medium. Just click the radio button Install the software automatically and then Next. Under Win98 ME you may be asked for the location of the driver when the device is detected after the first reboot. Just supply the directory name which you have selected during the setup. 2.4.1.1.3.2.2. Update To update an existing installation just start the setup program. 24 Chapter 2. Getting Started 2.4.1.2. Configuration tools installation • Start app_setup.exe to install the configuration tools • Click Next until the final page is reached • Click Finish to close up the installation Now the Configuration Program and the Development Environment are installed to the directory /Program Files/eltec/p3i2 . 2.4.1.3. Samples installation Install the samples by running samplesp3i2.exe The sample files will be installed to /Program Files/eltec/p3i2samples/ 2.4.1.4. Starting the configuration program The configuration program looks the same under Windows and Linux. • Start the Configuration Program from the Start-Menu (/Program Files/P3I Configuration Toolsp3i2 Configuration) • Select the installed board from the List-Box. Now a Window appears, titled with Image 0 and the camera selection dialog is enabled. • If a CCIR Camera is attached, select the Menu Acquisition/Snap to get an image. • If a RGB-Camera with sync on green is attached, change (standard) BW-Mode to RGB-Mode. To do 25 Chapter 2. Getting Started this, select the menu Configuration/Hardware/PackingMode , select 1 x RGB 24 from the list box. The sync source will switch to 1 witch meens sync on green channel. if external sycronisation is used, select the sync source 4. Click the Apply Button. • Click the Camera-Symbol in the Toolbar to do a Snap . The image acquired from the camera will be displayed in the Window Image0. More details about the Configuration Program can be found in the Configuration Program online help details about the adapted cameras can be found in Appendix A. 26 Chapter 2. Getting Started 27 Chapter 2. Getting Started 2.4.1.5. Running the sample eye_dib This sample shows how to display the grabber image in a window using standard DIBs (device independant bitmaps). It is a MFC program which is not created with the Application Wizard. It does not use the document-view interface, but displays the image directly in the mainframe window. After successful installation of the samples, Visual C++ 6.0 is required to compile and link the sample. Open the workpace file eye_dib.dsw located in the directory /Program Files/eltec/p3i2/samples/eye_dib/vc60/, compile and link. After starting the sample a new window will be created on screen. If you have a CCIR camera connected to Input 0, follow the steps described below. • Select the Menu Grabber/Init and press ESC. • Select the Menu Grabber/Snap to get an image. 2.4.2. Linux operating systems The Linux driver distribution consists of a kernel driver, which comes in sourcecode and is compiled during the installation process, a usermode shared library which is only available as binary, the configuration program and some samples. The Linux drivers are suitable for development under Intel 32 bit Linux operating systems as e.g. SuSE Linux and Red Hat Linux. All files are contained in a compressed tar file, which is called p3i2 -i386-x.y.z.tgz (x.y.z denotes a version number). 2.4.2.1. Installation To install the driver, you need the following requirements to be fullfilled. • The kernel headerfiles must be installed and match your kernel. Please refer to your linux distribution manual how to install the kernel sources. 28 Chapter 2. Getting Started • The current driver can be downloaded from our website. To install the driver and samples, please perform the following steps. 1. Unpack the compressed tar file to a directory of your choice. This can be done as normal user. Open a shell and use the foolowing commands: Read the file readme.htm to latest installation hints. cd directory_of_your_choice tar xzvf path_and_name_of_tar_file 2. Login as root 3. Start the INSTALL script: ./INSTALL The installation script compiles and installed the driver, copies the shared library to /usr/lib and creates a link. You may need to perform some additional steps - e.g. creating entries in /etc/modules.conf. Please read the file readme.htm for details. As there are a lot of different linux distributions with many different kernel versions, we can not garantee that the driver run under all circumstances. In case of problems please email our support. Attach a copy of the terminal output and error messages. The subdirectory bin/i386 contains the configuration program. As this program is the same under Windows and Linux, please have a look at the Windows section of this manual for details. The subdirectory samples contains some simple samples showing how to access the frame grabber in our own programs. 2.4.2.2. ELinOS cross development The Linux drivers are suitable for ELinOS cross developement too. Beneath the i368 drivers there exists PowerPC drivers for ELTEC BAB740/750 and BAB911 boards. In order to install for ELinOS cross compilation perform the following steps: 1. Install ELinOS and create a project for your hardware. This step is beyond the scope of the manual. Please refer to the ELinOS manual and the manuals coming with the ELTEC BAB boards. 2. Source the script ELINOS.sh in a shell. 3. Unpack the tar file to a directory of your choice. 4. Change to this directory. 5. Start INSTALL. You need not to bee root ! 29 Chapter 2. Getting Started The steps above create a subdirectory src/grabber in your ELINOS_PROJECT directory. In order to compile the project with elk, you may need to edit the topmost makefile in your project directory. Please have a look at the README file coming with the driver archive for additional details. 30 Chapter 3. Hardware Reference 3.1. Introduction This manual describes 5 different boards. If you are not sure which kind of board you have, see the label on the backside of the frame grabber. 3.1.1. General Features • Frame grabber for 4 simultaneous mono-chrome channels or one RGB and one mono-chrome channel • Digitizes up to four parallel, separate images from synchronized BW cameras • Restart cameras supported • Real-time acquisition of images or image sequences directly into main memory • Image memory formats include RGB with 32, 24, 16 or monochrome with 8 bits/pixel • PCI 2.2 compliant Not all frame grabber boards provide all features, for more details, see the table below: Table 3.1. Supported camera channels Frame Grabber Synchronized Non-Synchronized RGB Camera Monochrome Monochrome Channels Camera Channels Camera Channels p3i_MONO 1 p3i_QUADRO 4 p3i_RGB 4 p3i_ASYNC 4 4 p3i_ASYNC/F 4 4 p3i_MOCO/PMC 2 2 p3i_ASYNC/PMC 4 4 Y/C (or CVBS) Camera Channels 1 (synchronous) 1 (synchronous) 1 (non-synchronous) Note that you can use several boards -also of different type- in one computer, in this case the Board-IDs of the boards must be set to different values. 31 Chapter 3. Hardware Reference 3.2. p3i_MONO-Hardware 3.2.1. Block Diagram p3i_MONO 32 Chapter 3. Hardware Reference 3.2.2. Technical Details for p3i_MONO The frame grabber is intended for applications where one monochrome camera is digitized. Up to eight cameras can be connected to the grabber, a multiplexer distributes one from the eight video inputs to the A/D converter. The multiplexer is controlled by software. The images are stored in two channels as monochrome (8 bit) or pseudo-RGB (15/16 bit), separate memory regions are used. The pixel clock is divided down from an internal Oscillator (up to 180 MHz) or is taken directly from the pixel clock input for camera synchronous digitization. The A/D conversion rates are programmable up to 32 MHz. The region of interest, i.e. the part of the video information that is acquired, can be defined on a pixel basis for all 2 channels with the same values - not always the whole frame has to be acquired. A sequencer is included to meet the different timings of restart cameras. 3.2.2.1. Video Input p3i_MONO Video inputs can be connected to the two 15-pin HD (X100,X101) on p3i_MONO . The eight video inputs are AC-coupled and terminated with 75 Ohm resistors. A multiplexer distributes one from the eight video inputs to the A/D converter. 3.2.2.2. Sync Input p3i_MONO The sync-input is composite-sync and is taken only from the selected video-input. 3.2.2.3. Clock Input p3i_MONO Clock inputs can be connected to the two 15-pin HD connectors(X100,X101). When cameras with clock-output are used, the pixel clock maybe taken from the camera. The external clock is AC-coupled and restored to TTL-Level. To compensate different delays between the video- and the clock-input, the phase of the clock can be shifted in steps of 90°. The clock input is single-ended TTL; it is terminated at the receiving end (input), with a 75 Ohm resistor. Have a look at el_EnableExtPixelClock to learn how to activate the input. Caution: Use a separate shielded cable for the clock to minimize cross-talk to video. 33 Chapter 3. Hardware Reference 3.2.2.4. Trigger Input p3i_MONO Trigger inputs can be connected to the two 15-pin HD connectors(X100,X101). The trigger inputs are opto-decoupled for optimum noise immunity (250 V isolation voltage). TRIGIN+ is connected to the anode of a LED, TRIGIN- to the cathode of the LED via an internal 220-Ohm resistor. Since the LED needs about 10..20 mA for full drive, a 5 V voltage source or a TTL output is able to drive sufficient current through the circuit. Higher-voltage sources may be used with additional limiting resistors. Their values may be calculated as follows: R (Ohm, to add in series)= (U - 1.2 V)/0.02 A - 220 Ohm This trigger input is level- or edge-sensitive, dependent of the camera file. See also: el_EnableExternalTrigger Caution: Do not exceed a maximum of 30 mA LED current! Alternativly the Optocoupler can be bypassed (jumpers). In this case the trigger function is inverted. Opto-coupled Trigger Input Schematic 3.2.2.5. Digital Outputs p3i_MONO There are 8 General-Purpose-Outputs(GPOs) available for sync and camera control. These outputs are divided into two groups where the 4 GPOs of the first group are used for controlling cameras by the board (not intended to be used for application programming, used by ELTEC Elektronik AG for camera adaption). The second group of 4 GPOs may be used for different purposes. 34 Chapter 3. Hardware Reference 3.2.2.5.1. Sync Control Output 0,1,3,4 p3i_MONO Each Output can be mapped to one of 8 available signals: • Static output • Sync-generator Horizontal-sync • Sync-generator Vertical-sync • Internal Trigger • Sequencer bit 2 • Sequencer bit 3 • Sequencer bit 4 • Sequencer bit 5 The logical polarity (High-/ Low-active) is independently programmable for every Output. The user cannot map this signals, this is done by the camerafile only. 3.2.2.5.2. Control Outputs 0..3 p3i_MONO These outputs are available at connector X106 (10-Pin Header) Each one of this 4 outputs can be set to static high (el_SetOutputs) or low (el_ResetOutputs). 3.2.2.6. Power Supply out p3i_MONO To supply the cameras with power, there are up to 4 outputs with 12 V. Each output is protected with a self healing (PTC) 1100 mA fuse. The summed current from all outputs must not exceed 3000 mA. To use the power supply outputs, the 3,5" Floppy-type connector must be plugged to X700. 3.2.2.7. Data Transfer p3i_MONO Since the frame grabber is a busmaster card, the video data of a Frame or a whole sequence is moved to memory per DMA-transfer. There is no need for the CPU to support this process. The maximum transfer rate in an ideal system is restricted to max 105 Mbytes/s by the PCI bus, but this is a best case. In a real application the transfer rate depends on the chipset, graphic card and other active Busmaster cards. 35 Chapter 3. Hardware Reference 3.2.3. Jumpers and Connectors for p3i_MONO Before any connectors or jumpers are plugged in or out, be sure that the ESD guidelines are compliance. When a cable is plugged into the board's connector, then it must be ensured that a possible voltage difference is equalized thru the connectors shield. This can be ensured by the following design features: • All connected cable must be shielded • At the board side, the cable shield must be connected with the connectors shield • At the other cable side, ground must be connected to shield with a resistance, less than 100 kohm To connect monochrome cameras with BNC-Output use the ELTEC Elektronik AG cable V-CABL-183A. The board has several jumpers which are used to adapt it to cameras with special features. for further details see Appendix A: Supported Cameras. The jumpering may change the pinout of some connectors. With the default jumpering the board is set up for the use of CCIR/EIA-Cameras with no special features. Jumpers and Connectors Placement p3i_MONO 36 Chapter 3. Hardware Reference 3.2.3.1. upper 15-pin VGA-Type Connector (X100) p3i_MONO Layout 15-pin VGA-Type Connector X100 Table 3.2. Layout 15-pin VGA-Type Connector X100 p3i_MONO Pin Conn./Signal Direction Description Level 1 Video0 Input Video input Red or BW0 0.7 Vpp Video 0.3 Vpp Sync 2 Video1 Input Video input Green or BW1 0.7 Vpp Video 0.3 Vpp Sync 3 Video2 Input Video input Blue or BW2 0.7 Vpp Video 0.3 Vpp Sync 4 Video3 Input Video input Alpha or BW3 0.7 Vpp Video 0.3 Vpp Sync 5 GND - Signal ground 0V 6 GND - Signal ground 0V 7 GND - Signal ground 0V 8 GND - Signal ground 0V 9 TRIG+0 Input Trigger high-level TTL high 10 GND - Signal ground 0V 11 TRIG-0 Input Trigger low-level TTL low 12 EXTCLK0 Input External clock TTL, rising edge 13 SyncControl 0 Output Sync Control 0 TTL 3.2 V @ 75 Ohm 14 SyncControl 1 Output Sync Control 1 TTL 3.2 V @ 75 Ohm 15 PVcc Output Fused Supply for Cameras 12 V, 1100 mA 37 Chapter 3. Hardware Reference 3.2.3.2. lower 15-pin VGA-Type Connector (X101) p3i_MONO Description The pin layout of the connector X102 - X105 can be modified using the jumper J100 - J103. The jumper setting is described below. Default Jumpering J100 - J103 Table 3.3. Default Jumpering J100 - J103 p3i_MONO A B C 1 2 3 4 5 6 7 8 9 10 11 12 38 Chapter 3. Hardware Reference Layout 15-pin VGA-Type Connector X101 Table 3.4. Layout 15-pin VGA-Type Connector X101 p3i_MONO Pin Signal Direction Description Level Jumper 1 Video4 Input Video Red_B or BW0_B 0.7 Vpp Video 0.3 Vpp Sync 10A - 11A 2 Video5 Input Video input Green_B or 0.7 Vpp Video BW1_B 0.3 Vpp Sync 10C - 11C 2 SyncControl2 Output Sync control 2 TTL 3.2 V @ 75 Ohm 10B - 10C 3 Video6 Input Video input Blue_B or BW2_B 0.7 Vpp Video 0.3 Vpp Sync 7A - 8A 4 Video7 Input Video input Green_B or 0.7 Vpp Video BW1_B 0.3 Vpp Sync 7C - 8C 5 Gnd - Signal Ground 0V 6 Gnd - Signal Ground 0V 7 Gnd - Signal Ground 0V 8 Gnd - Signal Ground 0V 9 EXTTRIG+1 Input Differential trigger high TTL high 2A - 2B, 3A - 3B, 1C 2C 9 EXTTRIG1 Input Trigger TTL high 2A - 3A 10 Gnd - Signal Ground 0V 11 EXTTRIG-1 Input Trigger TTL high 12 EXTCLK_1 Input External Clock, max. 32 TTL, rising MHz edge 13 SyncControl3 Output Sync Control 3 13 EXTTRIG+0 Input Differential trigger high TTL high 5A - 5B, 6A - 6B, 3C 4C 13 EXTTRIG0 Input Trigger TTL high 5A - 6A 14 SyncControl4 Output Sync Control 4 TTL 2.7 V @75 4C - 5C Ohm 14 EXTTRIG-0 Input Differential trigger Low TTL low 39 TTL 2A - 2B, 3A - 3B, 1C 2C 4A - 5A 5A - 5B, 6A - 6B, 3C - Chapter 3. Hardware Reference 4C 15 PVcc_1 Output Fused supply for cameras 12 V, 1100 mA All signals with 1.0 Vpp level are AC-coupled and terminated with 75 Ohm to GND. The connector case of connectors X100 and X101 is connected to shield potential which is separated from signal ground. If only the video inputs are required a standard VGA monitor cable with BNC connectors on the monitor end may be used. Power supply output: On pin 15 is 12V delivered to supply the video camera. The current that can be drawn from this pin is limited with a PTC resistor (Imax ca. 1100 mA). 3.2.3.3. Digital Outputs Connector (10-Pin Header X106) Layout 10-Pin Header X106 Table 3.5. Layout 10-Pin Header X106 p3i_MONO Pin Signal Direction Level 1 CamControl0 Output TTL 3.2 V @ 75 Ohm 2 GND 0V - 3 CamControl1 Output TTL 3.2 V @ 75 Ohm 4 GND 0V - 5 CamControl2 Output TTL 3.2 V @ 75 Ohm 6 GND 0V - 7 CamControl3 Output TTL 3.2 V @ 75 Ohm 8 GND 0V - 9 GND 0V - 10 GND 0V - 3.2.3.4. Power Connector (X700) Layout 3,5" Floppy-Type Power Connector X700 Table 3.6. Layout 3,5" Floppy-Type Power Connector X700 p3i_MONO Pin Signal Direction Description Level 1 NC - Not connected - 2 GND - Power ground 0V 3 GND - Power ground 0V 4 12 V Input Power for Cameras 12 V, 3.0 A 40 Chapter 3. Hardware Reference 3.2.4. Hex-Switch (Board-ID-Select)p3i_MONO Switch S500 is used to set the board ID. If more than one frame grabber is plugged into the PC, they must have distinct board IDs unequal to "0". 3.2.5. Status-LEDs p3i_MONO There are 4 LEDs for status information: frame grabber LED Table 3.7. frame grabber LED LED1: Board selected - when the frame grabber is initialized, the LED is switched on LED2: Capture - Acquisition in progress LED3: FiFo overrun - The FiFo run full LED4: FiFo Write Enable - valid data is written into the FiFo These LEDs may not be used in applications but may help to analyse problems in cooperation with ELTEC Elektronik AG support 41 Chapter 3. Hardware Reference 3.3. p3i_QUADRO-Hardware 3.3.1. Block Diagram p3i_QUADRO 42 Chapter 3. Hardware Reference 3.3.2. Technical Details for p3i_QUADRO The frame grabber is intended for applications where up to four parallel channels are digitized, such as RGB data with additional alpha channel or four monochrome synchronous cameras are used ("quadro", analogous to stereo). It permits connection of RGB cameras. In quadro mode, the four images are stored in separate memory regions as separate monochrome images. Cameras must be synchronized for this operating mode. An on-board sync generator with four separate 75-ohm outputs makes this easy. The pixel clock is divided down from an internal Oscillator (up to 180 MHz) or is taken directly from the pixel clock input for camera synchronous digitization. The A/D conversion rates are programmable up to 32 MHz. The region of interest, i.e. the part of the video information that is acquired, can be defined on a pixel basis, not always the whole frame has to be acquired. All 4 video inputs have the same region of interest. A sequencer is included to meet the different timings of restart cameras. 3.3.2.1. Video Inputp3i_QUADRO Video inputs can be connected to the four 12-pin Hirose (X102-X105) . The eight video inputs are AC-coupled and terminated with 75 Ohm resistors. Four independent multiplexers distribute the signal to the four A/D converters. Each has a subset from the eight video inputs. Table 3.8. Possible Input Selections p3i_QUADRO Converter 0 Converter 1 Converter 2 Converter 3 Video0 Video1 Video2 Video3 Video4 Video5 Video6 Video7 Video2 Video3 Video0 Video1 Video6 Video7 Video4 Video5 3.3.2.2. Sync Input p3i_QUADRO The sync-input is composite-sync and taken from one of the multiplexed video-inputs or directly from Video7 . 43 Chapter 3. Hardware Reference 3.3.2.3. Clock Input p3i_QUADRO Clock inputs can be connected to the four 12-pin Hirose (X102-X105) . When cameras with clock-output are used, the pixel clock may be taken from the camera. The external clock is AC-coupled and restored to TTL-Level. To compensate different delays between the video- and the clock-input, the phase of the clock can be shifted in steps of 90°. The clock input is single-ended TTL; it is terminated at the receiving end (input), with a 75 Ohm resistor. Have a look at el_EnableExtPixelClock to learn how to activate the input. Caution: Use a separate shielded cable for the clock to minimize cross-talk to video. 44 Chapter 3. Hardware Reference 3.3.2.4. Trigger Input p3i_QUADRO Trigger inputs can be connected to the one 15-pin HD (X101) . The trigger inputs are opto-decoupled for optimum noise immunity (250 V isolation voltage). TRIGIN+ is connected to the anode of a LED, TRIGIN- to the cathode of the LED via an internal 220-Ohm resistor. Since the LED needs about 10..20 mA for full drive, a 5 V voltage source or a TTL output is able to drive sufficient current through the circuit. Higher-voltage sources may be used with additional limiting resistors. Their values may be calculated as follows: R (Ohm, to add in series)= (U - 1.2 V)/0.02 A - 220 Ohm This trigger input is level- or edge-sensitive, dependent of the camera file. See also: el_EnableExternalTrigger Caution: Do not exceed a maximum of 30 mA LED current! Alternativly the Optocoupler can be bypassed (jumpers). In this case the trigger function is inverted. Opto-coupled Trigger Input Schematic 3.3.2.5. Digital Outputs p3i_QUADRO There are 16 General-Purpose-Outputs(GPOs) available for sync and camera control. These outputs are divided into two groups where the 12 GPOs of the first group are used for controlling cameras by the board (not intended to be used for application programming, used by ELTEC Elektronik AG for camera adaption). The second group of 4 GPOs may be used for different purposes. 45 Chapter 3. Hardware Reference 3.3.2.5.1. Sync Control Outputs 0..11 p3i_QUADRO Each Output can be mapped to one of 8 available signals: • Static output • Sync-generator Horizontal-sync • Sync-generator Vertical-sync • Internal Trigger • Sequencer bit 2 • Sequencer bit 3 • Sequencer bit 4 • Sequencer bit 5 The logical polarity (High-/ Low-active) is independently programmable for every Output. The user cannot map this signals, this is done by the camerafile only. 3.3.2.5.2. Control Outputs 0..3 p3i_QUADRO These outputs are available at connector X106 (10-Pin Header) Each one of this 4 outputs can be set to static high (el_SetOutputs) or low (el_ResetOutputs). 3.3.2.6. Power Supply out p3i_QUADRO To supply the cameras with power, there are up to 4 outputs with 12 V. Each output is protected with a self healing (PTC) 1100 mA fuse. The summed current from all outputs must not exceed 3000 mA. To use the power supply outputs, the 3,5" Floppy-type connector must be plugged to X700. 3.3.2.7. Data Transfer p3i_QUADRO Since the frame grabber is a busmaster card, the video data of a Frame or a whole sequence is moved to memory per DMA-transfer. There is no need for the CPU to support this process. The maximum transfer rate in an ideal system is restricted to max 105 Mbytes/s by the PCI bus, but this is a best case. In a real application the transfer rate depends on the chipset, graphic card and other active Busmaster cards. 46 Chapter 3. Hardware Reference 3.3.3. Jumpers and Connectors for p3i_QUADRO Before any connectors or jumpers are plugged in or out, be sure that the ESD guidelines are compliance. When a cable is plugged into the board's connector, then it must be ensured that a possible voltage difference is equalized thru the connectors shield. This can be ensured by the following design features: • All connected cable must be shielded • At the board side, the cable shield must be connected with the connectors shield • At the other cable side, ground must be connected to shield with a resistance, less than 100 kohm To connect a RGB-Camera, use a standard PC-Monitor cable HD15 to BNC (red, green and blue BNC connected to pin 1,2,3 on HD15). To connect monochrome cameras with BNC-Output use the ELTEC Elektronik AG cable V-CABL-183A. To connect monochrome cameras with Hirose-Output use standard Hirose-Cables. The board has several jumpers which are used to adapt it to cameras with special features. for further details see Appendix A: Supported Cameras. The jumpering may change the pinout of some connectors. With the default jumpering the board is set up for the use of CCIR/EIA-Cameras with no special features. Jumpers and Connectors Placement p3i_QUADRO 47 Chapter 3. Hardware Reference 3.3.3.1. 15-pin VGA-Type Connector (X101) p3i_QUADRO Description The pin layout of the connector X101 can be modified using the jumper J104-J106. The jumper setting is described below. Default Jumpering J104 - J106 Table 3.9. Default Jumpering J104 - J106 p3i_QUADRO A B C 1 2 3 4 5 6 7 8 9 10 11 12 48 Chapter 3. Hardware Reference Layout 15-pin VGA-Type Connector X101 Table 3.10. Layout 15-pin VGA-Type Connector X101 p3i_QUADRO Pin Signal Direction Description Level Jumper 1 Video4 Input Video Red_B or BW0_B 0.7 Vpp Video 0.3 Vpp Sync 10A - 11A 1 EXTTRIG+2 Input Differential Trigger high TTL high 11A - 11B, 12A - 12B, 9C - 10C 1 EXTTRIG2 Input Trigger 11A - 12A 2 Video5 Input Video input Green_B or 0.7 Vpp Video BW1_B 0.3 Vpp Sync 10C - 11C 2 EXTTRIG-2 Input Differential Trigger low TTL low 11A - 11B, 12A - 12B, 9C - 10C 2 SyncControl2 Output Sync control 2 TTL 3.2 V @ 75 Ohm 10B - 10C 3 Video6 Input Video input Blue_B or BW2_B 0.7 Vpp Video 0.3 Vpp Sync 7A - 8A 3 EXTTRIG+3 Input Differential Trigger high TTL high 8A - 8B, 9A - 9B, 6C 7C 3 EXTTRIG3 Input Trigger 8A - 9A 4 Video7 Input Video input Green_B or 0.7 Vpp Video BW1_B 0.3 Vpp Sync 7C - 8C 4 EXTTRIG-3 Input Differential Trigger low TTL low 8A - 8B, 9A - 9B, 6C 7C 4 SyncControl5 Output Sync control 5 TTL 3.2 V @ 75 Ohm 7B - 7C 5 Gnd - Signal Ground 0V 6 Gnd - Signal Ground 0V 7 Gnd - Signal Ground 0V 8 Gnd - Signal Ground 0V 9 EXTTRIG+1 Input Differential trigger high TTL high TTL high TTL high 49 2A - 2B, 3A - 3B, 1C - Chapter 3. Hardware Reference 2C 9 EXTTRIG1 Input Trigger TTL high 10 Gnd - Signal Ground 0V 11 EXTTRIG-1 Input Trigger TTL high 2A - 2B, 3A - 3B, 1C 2C 11 SyncControl11 Output Sync Control 11 TTL 3.2 V @ 75 Ohm 1B - 1C 12 EXTCLK_1 Input External Clock, max. 32 TTL, rising MHz edge 13 SyncControl3 Output Sync Control 3 13 EXTTRIG+0 Input Differential trigger high TTL high 5A - 5B, 6A - 6B, 3C 4C 13 EXTTRIG0 Input Trigger TTL high 5A - 6A 14 SyncControl4 Output Sync Control 4 TTL 2.7 V @75 4C - 5C Ohm 14 EXTTRIG-0 Input Differential trigger Low TTL low 14 SyncControl8 Output Sync Control 8 TTL 2.7 V @75 4B - 4C Ohm 15 PVcc_1 Output Fused supply for cameras 12 V, 1100 mA TTL 2A - 3A 4A - 5A 5A - 5B, 6A - 6B, 3C 4C All signals with 1.0 Vpp level are AC-coupled and terminated with 75 Ohm to GND. The connector case of connectors X100 and X101 is connected to shield potential which is separated from signal ground. If only the video inputs are required a standard VGA monitor cable with BNC connectors on the monitor end may be used. Power supply output: On pin 15 is 12V delivered to supply the video camera. The current that can be drawn from this pin is limited with a PTC resistor (Imax ca. 1100 mA). 50 Chapter 3. Hardware Reference 3.3.3.2. Hirose Connectors(X102-X105) p3i_QUADRO The pin layout of the connector X102 can be modified using the jumper J100-J103. The jumper setting is described below. Default Jumpering for J100 - J103 Table 3.11. Jumpering for J100 - J103 p3i_QUADRO A B 1 2 3 4 5 6 7 8 9 10 51 Chapter 3. Hardware Reference Layout Hirose Connector X102-X105 Table 3.12. Layout Hirose Connector X102-X105 p3i_QUADRO Pin Conn./Signal Direction Description Level 1 GND - Signal Ground 0V 2 PVcc0 for X102 Output Fused Supply for Cameras 12 V, 1100 mA Jumper J100 J103 PVcc1 for X103 PVcc2 for X104 PVcc3 for X105 3 GND - Signal Ground 0V 4 Video0 for X102 Input Video Input 0 for X102 0.7 Vpp Video, 0.3 Vpp Sync Video1 for X103 Video Input 1 for X103 Video2 for X104 Video Input 2 for X104 Video3 for X105 Video Input 3 for X105 5 GND - Signal Ground 0V 6 NC - - - 6 SyncControl0 for X102 Output Sync Control 0 for X102 TTL 3.2 V @ 75 Ohm SyncControl3 for X103 Sync Control 3 for X103 SyncControl6 for X104 Sync Control 6 for X104 SyncControl9 for X105 Sync Control 9 for X105 7 NC - - 7 SyncControl1 for X102 Output - Sync Control 1 for X102 TTL 3.2 V @ 75 Ohm SyncControl4 for X103 Sync Control 4 for X103 SyncControl7 for X104 Sync Control 7 for X104 52 10A - 10B 9A - 9B Chapter 3. Hardware Reference SyncControl10 for X105 7 EXTCLK0 for X102 Sync Control 10 for X105 Input EXTCLK1 for X103 External Clock 0 for X102 TTL, max. 32 MHz External Clock 1 for X103 EXTCLK2 for X104 External Clock 2 for X104 EXTCLK3 for X105 External Clock 3 for X105 8 GND - Signal Ground 0V 9 NC - - - 9 SyncControl2 for X102 Output Sync Control 2 for X102 TTL 3.2 V @ 75 Ohm SyncControl5 for X103 Sync Control 5 for X103 SyncControl8 for X104 Sync Control 8 for X104 SyncControl11 for X105 Sync Control 11 for X105 9 9 EXTCLK0 for X102 Input External Clock 0 for X102 TTL EXTCLK1 for X103 External Clock 1 for X103 EXTCLK2 for X104 External Clock 2 for X104 EXTCLK3 for X105 External Clock 3 for X105 Video4 for X102 Input Video input 4 for X102 Video5 for X103 Video input 5 for X103 Video6 for X104 Video input 6 for X104 Video7 for X105 Video input 7 for X105 0,7 Vpp Video, 0,3 Vpp Sync 8A - 8B 7A - 7B 6A - 6B 5A - 5B 10 NC - - - 10 GND - Signal Ground 0V 4A - 4B 10 GPI0 for X102 Input General Purpose Input 0 for X102 TTL 3A - 3B GPI1 for X103 General Purpose Input 1 for X103 GPI2 for X104 GPI3 for X105 General Purpose Input 2 for X104 General Purpose Input 3 for X105 11 NC - - - 11 PVcc Output Fused Supply for Cameras 12 V, 1100 mA 2A - 2B 11 SyncControl2 for X102 Output Sync Control 2 for X102 TTL 1A - 1B SyncControl5 for X103 Sync Control 5 for X103 SyncControl8 for X104 Sync Control 8 for X104 53 Chapter 3. Hardware Reference SyncControl11 for X105 12 GND Sync Control 11 for X105 - Signal Ground 0V Power supply output: On pin 2 and 11 may 12V delivered to supply the video camera. The current that can be drawn from this pin is limited with a PTC resistor (Imax ca. 1100 mA). 54 Chapter 3. Hardware Reference 3.3.3.3. Digital Outputs Connector (10-Pin Header X106) p3i_QUADRO Layout 10-Pin Header X106 Table 3.13. Layout 10-Pin Header X106 p3i_QUADRO Pin Signal Direction Level 1 CamControl0 Output TTL 3.2 V @ 75 Ohm 2 GND 0V - 3 CamControl1 Output TTL 3.2 V @ 75 Ohm 4 GND 0V - 5 CamControl2 Output TTL 3.2 V @ 75 Ohm 6 GND 0V - 7 CamControl3 Output TTL 3.2 V @ 75 Ohm 8 GND 0V - 9 GND 0V - 10 GND 0V - 3.3.3.4. Power Connector (X700) p3i_QUADRO Layout 3,5" Floppy-Type Power Connector X700 Table 3.14. Layout 3,5" Floppy-Type Power Connector X700 p3i_QUADRO Pin Signal Direction Description Level 1 NC - Not connected - 2 GND - Power ground 0V 3 GND - Power ground 0V 4 12 V Input Power for Cameras 12 V, 3 A 55 Chapter 3. Hardware Reference 3.3.4. Hex-Switch (Board-ID-Select) p3i_QUADRO Switch S500 is used to set the board ID. If more than one frame grabber is plugged into the PC, they must have distinct board IDs unequal to "0". 3.3.5. Status-LEDs p3i_QUADRO There are 4 LEDs for status information: frame grabber LED Table 3.15. frame grabber LED p3i_QUADRO LED1: Board selected - when the frame grabber is initialized, the LED is switched on LED2: Capture - Acquisition in progress LED3: FiFo overrun - The FiFo run full LED4: FiFo Write Enable - valid data is written into the FiFo These LEDs may not be used in applications but may help to analyse problems in cooperation with ELTEC Elektronik AG support 56 Chapter 3. Hardware Reference 3.4. p3i_RGB-Hardware 3.4.1. Block Diagram p3i_RGB 57 Chapter 3. Hardware Reference 3.4.2. Technical Details for p3i_RGB The frame grabber is intended for applications where up to four parallel channels are digitized, such as RGB data with additional alpha channel or four monochrome synchronous cameras are used ("quadro", analogous to stereo). It permits connection of RGB cameras. In quadro mode, the four images are stored in separate memory regions as separate monochrome images. Cameras must be synchronized for this operating mode. An on-board sync generator with four separate 75-ohm outputs makes this easy. The pixel clock is divided down from an internal Oscillator (up to 180 MHz) or is taken directly from the pixel clock input for camera synchronous digitization. The A/D conversion rates are programmable up to 32 MHz. The region of interest, i.e. the part of the video information that is acquired, can be defined on a pixel basis, not always the whole frame has to be acquired. All 4 video inputs have the same region of interest. A sequencer is included to meet the different timings of restart cameras. 3.4.2.1. Video Input p3i_RGB Video inputs can be connected to the two 15-pin HD (X100,X101). The eight video inputs are AC-coupled and terminated with 75 Ohm resistors. Four independent multiplexers distribute the signal to the four A/D converters. Each has a subset from the eight video inputs. Table 3.16. Possible Input Selections p3i_RGB Converter 0 Converter 1 Converter 2 Converter 3 Video0 Video1 Video2 Video3 Video4 Video5 Video6 Video7 Video2 Video3 Video0 Video1 Video6 Video7 Video4 Video5 3.4.2.2. Sync Input p3i_RGB The sync-input is composite-sync and taken from one of the multiplexed video-inputs or directly from Video7 . 58 Chapter 3. Hardware Reference 3.4.2.3. Clock Input p3i_RGB Clock inputs can be connected to the two 15-pin HD (X100,X101) . When cameras with clock-output are used, the pixel clock maybe taken from the camera. The external clock is AC-coupled and restored to TTL-Level. To compensate different delays between the video- and the clock-input, the phase of the clock can be shifted in steps of 90°. The clock input is single-ended TTL; it is terminated at the receiving end (input), with a 75 Ohm resistor. Have a look at el_EnableExtPixelClock to learn how to activate the input. Caution: Use a separate shielded cable for the clock to minimize cross-talk to video. 59 Chapter 3. Hardware Reference 3.4.2.4. Trigger Input p3i_RGB Trigger inputs can be connected to the two 15-pin HD (X100,X101). The trigger inputs are opto-decoupled for optimum noise immunity (250 V isolation voltage). TRIGIN+ is connected to the anode of a LED, TRIGIN- to the cathode of the LED via an internal 220-Ohm resistor. Since the LED needs about 10..20 mA for full drive, a 5 V voltage source or a TTL output is able to drive sufficient current through the circuit. Higher-voltage sources may be used with additional limiting resistors. Their values may be calculated as follows: R (Ohm, to add in series)= (U - 1.2 V)/0.02 A - 220 Ohm This trigger input is level- or edge-sensitive, dependent of the camera file. See also: el_EnableExternalTrigger Caution: Do not exceed a maximum of 30 mA LED current! Alternativly the Optocoupler can be bypassed(jumpers). In this case the trigger function is inverted. Opto-coupled Trigger Input Schematic 3.4.2.5. Digital Outputs p3i_RGB There are 8 General-Purpose-Outputs(GPOs) available for sync and camera control. These outputs are divided into two groups where the 4 GPOs of the first group are used for controlling cameras by the board (not intended to be used for application programming, used by ELTEC Elektronik AG for camera adaption). The second group of 4 GPOs may be used for different purposes. 60 Chapter 3. Hardware Reference 3.4.2.5.1. Sync Control Output 0,1,3,4 p3i_RGB Each Output can be mapped to one of 8 available signals: • Static output • Sync-generator Horizontal-sync • Sync-generator Vertical-sync • Internal Trigger • Sequencer bit 2 • Sequencer bit 3 • Sequencer bit 4 • Sequencer bit 5 The logical polarity (High-/ Low-active) is independently programmable for every Output. The user cannot map this signals, this is done by the camerafile only. 3.4.2.5.2. Control Outputs 0..3 p3i_RGB Each one of this 4 outputs can be set to static high (el_SetOutputs) or low (el_ResetOutputs). 3.4.2.6. Power Supply out p3i_RGB To supply the cameras with power, there are up to 4 outputs with 12 V. Each output is protected with a self healing (PTC) 1100 mA fuse. The summed current from all outputs must not exceed 3000 mA. To use the power supply outputs, the 3,5" Floppy-type connector must be plugged to X700. 3.4.2.7. Data Transfer p3i_RGB Since the frame grabber is a busmaster card, the video data of a Frame or a whole sequence is moved to memory per DMA-transfer. There is no need for the CPU to support this process. The maximum transfer rate in an ideal system is restricted to max 105 Mbytes/s by the PCI bus, but this is a best case. In a real application the transfer rate depends on the chipset, graphic card and other active Busmaster cards. 61 Chapter 3. Hardware Reference 3.4.3. Jumpers and Connectors for p3i_RGB Before any connectors or jumpers are plugged in or out, be sure that the ESD guidelines are compliance. When a cable is plugged into the board's connector, then it must be ensured that a possible voltage difference is equalized thru the connectors shield. This can be ensured by the following design features: • All connected cable must be shielded • At the board side, the cable shield must be connected with the connectors shield • At the other cable side, ground must be connected to shield with a resistance, less than 100 kohm To connect a RGB-Camera, use a standard PC-Monitor cable HD15 to BNC (red, green and blue BNC connected to pin 1,2,3 on HD15). To connect monochrome cameras with BNC-Output use the ELTEC Elektronik AG cable V-CABL-183A. The board has several jumpers which are used to adapt it to cameras with special features. for further details see Appendix A: Supported Cameras. The jumpering may change the pinout of some connectors. With the default jumpering the board is set up for the use of CCIR/EIA-Cameras with no special features. Jumpers and Connectors Placement p3i_RGB 62 Chapter 3. Hardware Reference 3.4.3.1. upper 15-pin VGA-Type Connector (X100) p3i_RGB Layout 15-pin VGA-Type Connector X100 Table 3.17. Layout 15-pin VGA-Type Connector X100 p3i_RGB Pin Conn./Signal Direction Description Level 1 Video0 Input Video input Red or BW0 0.7 Vpp Video 0.3 Vpp Sync 2 Video1 Input Video input Green or BW1 0.7 Vpp Video 0.3 Vpp Sync 3 Video2 Input Video input Blue or BW2 0.7 Vpp Video 0.3 Vpp Sync 4 Video3 Input Video input Alpha or BW3 0.7 Vpp Video 0.3 Vpp Sync 5 GND - Signal ground 0V 6 GND - Signal ground 0V 7 GND - Signal ground 0V 8 GND - Signal ground 0V 9 TRIG+0 Input Trigger high-level TTL high 10 GND - Signal ground 0V 11 TRIG-0 Input Trigger low-level TTL low 12 EXTCLK0 Input External clock TTL, rising edge 13 SyncControl 0 Output Sync Control 0 TTL 3.2 V @ 75 Ohm 14 SyncControl 1 Output Sync Control 1 TTL 3.2 V @ 75 Ohm 15 PVcc Output Fused Supply for Cameras 12 V, 1100 mA 63 Chapter 3. Hardware Reference 3.4.3.2. lower 15-pin VGA-Type Connector (X101) p3i_RGB Description The pin layout of the connector X101 can be modified using the jumper J104-J106. The jumper setting is described below. Default Jumpering J104 - J106 Table 3.18. Overview p3i_RGB A B C 1 2 3 4 5 6 7 8 9 10 11 12 64 Chapter 3. Hardware Reference Layout 15-pin VGA-Type Connector X101 Table 3.19. Layout 15-pin VGA-Type Connector X101 p3i_RGB Pin Signal Direction Description Level Jumper 1 Video4 Input Video Red_B or BW0_B 0.7 Vpp Video 0.3 Vpp Sync 10A - 11A 1 EXTTRIG+2 Input Differential Trigger high TTL high 11A - 11B, 12A - 12B, 9C - 10C 1 EXTTRIG2 Input Trigger 11A - 12A 2 Video5 Input Video input Green_B or 0.7 Vpp Video BW1_B 0.3 Vpp Sync 10C - 11C 2 EXTTRIG-2 Input Differential Trigger low TTL low 11A - 11B, 12A - 12B, 9C - 10C 2 SyncControl2 Output Sync control 2 TTL 3.2 V @ 75 Ohm 10B - 10C 3 Video6 Input Video input Blue_B or BW2_B 0.7 Vpp Video 0.3 Vpp Sync 7A - 8A 3 EXTTRIG+3 Input Differential Trigger high TTL high 8A - 8B, 9A - 9B, 6C 7C 3 EXTTRIG3 Input Trigger 8A - 9A 4 Video7 Input Video input Green_B or 0.7 Vpp Video BW1_B 0.3 Vpp Sync 7C - 8C 4 EXTTRIG-3 Input Differential Trigger low TTL low 8A - 8B, 9A - 9B, 6C 7C 5 Gnd - Signal Ground 0V 6 Gnd - Signal Ground 0V 7 Gnd - Signal Ground 0V 8 Gnd - Signal Ground 0V 9 EXTTRIG+1 Input Differential trigger high TTL high 2A - 2B, 3A - 3B, 1C 2C 9 EXTTRIG1 Input Trigger 2A - 3A TTL high TTL high TTL high 65 Chapter 3. Hardware Reference 10 Gnd - Signal Ground 0V 11 EXTTRIG-1 Input Trigger TTL high 12 EXTCLK_1 Input External Clock, max. 32 TTL, rising MHz edge 13 SyncControl3 Output Sync Control 3 13 EXTTRIG+0 Input Differential trigger high TTL high 5A - 5B, 6A - 6B, 3C 4C 13 EXTTRIG0 Input Trigger TTL high 5A - 6A 14 SyncControl4 Output Sync Control 4 TTL 2.7 V @75 4C - 5C Ohm 14 EXTTRIG-0 Input Differential trigger Low TTL low 15 PVcc_1 Output Fused supply for cameras TTL 2A - 2B, 3A - 3B, 1C 2C 4A - 5A 5A - 5B, 6A - 6B, 3C 4C 12 V, 1100 mA All signals with 1.0 Vpp level are AC-coupled and terminated with 75 Ohm to GND. The connector case of connectors X100 and X101 is connected to shield potential which is separated from signal ground. If only the video inputs are required a standard VGA monitor cable with BNC connectors on the monitor end may be used. Power supply output: On pin 15 is 12V delivered to supply the video camera. The current that can be drawn from this pin is limited with a PTC resistor (Imax ca. 1100 mA). 66 Chapter 3. Hardware Reference 3.4.3.3. Digital Outputs Connector (10-Pin Header X106) p3i_RGB Layout 10-Pin Header X106 Table 3.20. Layout 10-Pin Header X106 p3i_RGB Pin Signal Direction Level 1 CamControl0 Output TTL 3.2 V @ 75 Ohm 2 GND 0V - 3 CamControl1 Output TTL 3.2 V @ 75 Ohm 4 GND 0V - 5 CamControl2 Output TTL 3.2 V @ 75 Ohm 6 GND 0V - 7 CamControl3 Output TTL 3.2 V @ 75 Ohm 8 GND 0V - 9 GND 0V - 10 GND 0V - 67 Chapter 3. Hardware Reference 3.4.3.4. Power Connector (X700) p3i_RGB Layout 3,5" Floppy-Type Power Connector X700 Table 3.21. Layout 3,5" Floppy-Type Power Connector X700 p3i_RGB Pin Signal Direction Description Level 1 NC - Not connected - 2 GND - Power ground 0V 3 GND - Power ground 0V 4 12 V Input Power for Cameras 12 V, 3 A 68 Chapter 3. Hardware Reference 3.4.4. Hex-Switch (Board-ID-Select) p3i_RGB Switch S500 is used to set the board ID. If more than one frame grabber is plugged into the PC, they must have distinct board IDs unequal to "0". 3.4.5. Status-LEDs p3i_RGB There are 4 LEDs for status information: frame grabber LED Table 3.22. frame grabber LED p3i_RGB LED1: Board selected - when the frame grabber is initialized, the LED is switched on LED2: Capture - Acquisition in progress LED3: FiFo overrun - The FiFo run full LED4: FiFo Write Enable - valid data is written into the FiFo These LEDs may not be used in applications but may help to analyse problems in cooperation with ELTEC Elektronik AG support 69 Chapter 3. Hardware Reference 3.5. p3i_ASYNC-Hardware 3.5.1. Block Diagram p3i_ASYNC 70 Chapter 3. Hardware Reference 3.5.2. Technical Details for p3i_ASYNC The p3i_ASYNC is a PCI framegrabber, designed to digitize up to four parallel non-synchronized monochrome cameras, where the cameras can be run either in free running or in restart/reset mode. Up to eight cameras can be connected to the grabber by combining the 15 pin SUB-D and the four Hirose connectors. Four seperate multiplexers allow you to switch between groups of four cameras as shown in the table below: The four images are stored in separate memory regions as separate monochrome images. There is no need to synchronize the cameras. The pixel clock is divided down from an internal Oscillator (up to 180 MHz) or is taken directly from the pixel clock input for camera synchronous digitization. The A/D conversion rates are programmable up to 30 MHz . The region of interest, i.e. the part of the video information that is acquired, can be defined on a pixel basis for all 4 video inputs with the same values - not always the whole frame has to be acquired. For every channel, a own trigger input and sequencer is included, to met the different timings from restart cameras. 3.5.2.1. Video Input p3i_ASYNC Video inputs can be connected to the four 12-pin Hirose Connectors (X102-X105) and/or to the 15-pin VGA-Type Connector X101 The eight video inputs are AC-coupled and terminated with 75 Ohm resistors. Four independent multiplexers distribute the signals to the four A/D converters. Each has a subset from the eight video inputs. The multiplexers are controlled by software. Table 3.23. Possible Input Selections p3i_ASYNC Converter 0 Converter 1 Converter 2 Converter 3 Video0 Video1 Video2 Video3 Video4 Video5 Video6 Video7 Video2 Video3 Video0 Video1 Video6 Video7 Video4 Video5 3.5.2.2. Sync Input p3i_ASYNC The sync-input is composite-sync and taken from one of the multiplexed video-inputs or directly from Video7 . 71 Chapter 3. Hardware Reference 3.5.2.3. Clock Input p3i_ASYNC The clock used to digitize all four channels is generated either by an on-board PLL, synchronized to the horizontal camera sync with a pixel jitter of less than 7 ns or it is taken directly from the pixel clock input for camerasynchronous digitization. When cameras with clock-output are used, the pixel clock maybe taken from the camera by connecting it to the four 12-pin Hirose connectors (X102-X105) .. The external clock is AC-coupled and restored to TTL-Level. To compensate different delays between the video- and the clock-input, the phase of the clock can be shifted in steps of 90°. The clock input is single-ended TTL; it is terminated at the receiving end (input), with a 75 Ohm resistor. Have a look at el_EnableExtPixelClock to learn how to activate the input. Caution: Use a separate shielded cable for the clock to minimize cross-talk to video. 72 Chapter 3. Hardware Reference 3.5.2.4. Trigger Input p3i_ASYNC The p3i_ASYNC has opto-isolated trigger inputs with additional outputs used to trigger cameras. Strobe lights can also be triggered by the trigger inputs. Trigger inputs can be connected to the one 15-pin HD (X101). The trigger inputs are opto-decoupled for optimum noise immunity (250 V isolation voltage). TRIGIN+ is connected to the anode of a LED, TRIGIN- to the cathode of the LED via an internal 220-Ohm resistor. Since the LED needs about 10..20 mA for full drive, a 5 V voltage source or a TTL output is able to drive sufficient current through the circuit. Higher-voltage sources may be used with additional limiting resistors. Their values may be calculated as follows: R (Ohm, to add in series)= (U - 1.2 V)/0.02 A - 220 Ohm This trigger input is level- or edge-sensitive, dependent of the camera file. See also: el_EnableExternalTrigger Caution: Do not exceed a maximum of 30 mA LED current! Alternativly the Optocoupler can be bypassed (jumpers). In this case the trigger function is inverted. Opto-coupled Trigger Input Schematic 3.5.2.5. Digital Outputs p3i_ASYNC There are 16 General-Purpose-Outputs(GPOs) available for sync and camera control. These outputs are divided into two groups where the 12 GPOs of the first group are used for controlling cameras by the board (not intended to be used for application programming, used by ELTEC Elektronik AG for camera adaption). The second group of 4 GPOs may be used for different purposes. 73 Chapter 3. Hardware Reference 3.5.2.5.1. Sync Control Output 0..11 p3i_ASYNC Each Output can be mapped to one of 8 available signals: • Static output • Sync-generator Horizontal-sync • Sync-generator Vertical-sync • Internal Trigger • Sequencer bit 2 • Sequencer bit 3 • Sequencer bit 4 • Sequencer bit 5 The logical polarity (High-/ Low-active) is independently programmable for every output. The user cannot map this signals, this is done by the camerafile only. 3.5.2.5.2. Control Outputs 0..3 p3i_ASYNC These outputs are available at connector x106 (10-Pin Header) Each one of these 4 outputs can be set to static high (el_SetOutputs) or low (el_ResetOutputs). 3.5.2.6. Power Supply out p3i_ASYNC To supply the cameras with power, there are up to 4 outputs with 12 V. Each output is protected with a self healing (PTC) 1100 mA fuse. The summed current from all outputs must not exceed 3000 mA. To use the power supply outputs, the 3,5" Floppy-type connector must be plugged to X700. 3.5.2.7. Data Transfer p3i_ASYNC Since the frame grabber is a busmaster card, the video data of a Frame or a whole sequence is moved to memory per DMA-transfer. There is no need for the CPU to support this process. The maximum transfer rate in an ideal system is restricted to max 105 Mbytes/s by the PCI bus, but this is a best case. In a real application the transfer rate depends on the chipset, graphic card and other active Busmaster cards. 74 Chapter 3. Hardware Reference 3.5.3. Jumpers and Connectors for p3i_ASYNC Before any connectors or jumpers are plugged in or out, be sure that the ESD guidelines are compliance. When a cable is plugged into the board's connector, then it must be ensured that a possible voltage difference is equalized thru the connectors shield. This can be ensured by the following design features: • All connected cable must be shielded • At the board side, the cable shield must be connected with the connectors shield • At the other cable side, ground must be connected to shield with a resistance, less than 100 kohm To connect a RGB-Camera, use a standard PC-Monitor cable HD15 to BNC (red, green and blue BNC connected to pin 1,2,3 on HD15). To connect monochrome cameras with BNC-Output use the ELTEC Elektronik AG cable V-CABL-183A. To connect monochrome cameras with Hirose-Output use standard Hirose-Cables. The board has several jumpers which are used to adapt it to cameras with special features. for further details see Appendix A: Supported Cameras. The jumpering may change the pinout of some connectors. With the default jumpering the board is set up for the use of CCIR/EIA-Cameras with no special features. Jumpers and Connectors Placement p3i_ASYNC 75 Chapter 3. Hardware Reference 3.5.3.1. 15-pin VGA-Type Connector (X101) p3i_ASYNC Description The pin layout of the connector X101 can be modified using the jumper J104-J106. The jumper setting is described below. Default Jumpering J104 - J106 Table 3.24. Default Jumpering J104 - J106 p3i_ASYNC A B C 1 2 3 4 5 6 7 8 9 10 11 12 76 Chapter 3. Hardware Reference Layout 15-pin VGA-Type Connector X101 Table 3.25. Layout 15-pin VGA-Type Connector X101 p3i_ASYNC Pin Signal Direction Description Level Jumper 1 Video4 Input Video Red_B or BW0_B 0.7 Vpp Video 0.3 Vpp Sync 10A - 11A 1 EXTTRIG+2 Input Differential Trigger high TTL high 11A - 11B, 12A - 12B, 9C - 10C 1 EXTTRIG2 Input Trigger 11A - 12A 2 Video5 Input Video input Green_B or 0.7 Vpp Video BW1_B 0.3 Vpp Sync 10C - 11C 2 EXTTRIG-2 Input Differential Trigger low TTL low 11A - 11B, 12A - 12B, 9C - 10C 2 SyncControl2 Output Sync control 2 TTL 3.2 V @ 75 Ohm 10B - 10C 3 Video6 Input Video input Blue_B or BW2_B 0.7 Vpp Video 0.3 Vpp Sync 7A - 8A 3 EXTTRIG+3 Input Differential Trigger high TTL high 8A - 8B, 9A - 9B, 6C 7C 3 EXTTRIG3 Input Trigger 8A - 9A 4 Video7 Input Video input Green_B or 0.7 Vpp Video BW1_B 0.3 Vpp Sync 7C - 8C 4 EXTTRIG-3 Input Differential Trigger low TTL low 8A - 8B, 9A - 9B, 6C 7C 4 SyncControl5 Output Sync control 5 TTL 3.2 V @ 75 Ohm 7B - 7C 5 Gnd - Signal Ground 0V 6 Gnd - Signal Ground 0V 7 Gnd - Signal Ground 0V 8 Gnd - Signal Ground 0V TTL high TTL high 77 Chapter 3. Hardware Reference Pin Signal Direction Description Level 9 EXTTRIG+1 Input Differential trigger high TTL high 2A - 2B, 3A - 3B, 1C 2C 9 EXTTRIG1 Input Trigger TTL high 2A - 3A 10 Gnd - Signal Ground 0V 11 EXTTRIG-1 Input Trigger TTL high 2A - 2B, 3A - 3B, 1C 2C 11 SyncControl11 Output Sync Control 11 TTL 3.2 V @ 75 Ohm 1B - 1C 12 EXTCLK_1 Input External Clock, max. 32 TTL, rising MHz edge 13 SyncControl3 Output Sync Control 3 13 EXTTRIG+0 Input Differential trigger high TTL high 5A - 5B, 6A - 6B, 3C 4C 13 EXTTRIG0 Input Trigger TTL high 5A - 6A 14 SyncControl4 Output Sync Control 4 TTL 2.7 V @75 4C - 5C Ohm 14 EXTTRIG-0 Input Differential trigger Low TTL low 14 SyncControl8 Output Sync Control 8 TTL 2.7 V @75 4B - 4C Ohm 15 PVcc_1 Output Fused supply for cameras 12 V, 1100 mA TTL Jumper 4A - 5A 5A - 5B, 6A - 6B, 3C 4C All signals with 1.0 Vpp level are AC-coupled and terminated with 75 Ohm to GND. The connector case of connectors X100 and X101 is connected to shield potential which is separated from signal ground. If only the video inputs are required a standard VGA monitor cable with BNC connectors on the monitor end may be used. Power supply output: On pin 15 is 12V delivered to supply the video camera. The current that can be drawn from this pin is limited with a PTC resistor (Imax ca. 1100 mA). 78 Chapter 3. Hardware Reference 3.5.3.2. Hirose-Connectors (X102-X105) p3i_ASYNC Description The pin layout of the connectors X102 - X105 can be modified using the jumper J100 - J103. The jumper setting is described in the table below. Default Jumpering J100 - J103 Table 3.26. Jumpering for J100 - J103 p3i_ASYNC A B 1 2 3 4 5 6 7 8 9 10 79 Chapter 3. Hardware Reference Layout Hirose Connectors X102-X105 Table 3.27. Layout Hirose Connectors X102-X105 p3i_ASYNC Pin Conn./Signal DirectionDescription Level 1 GND - Signal Ground 0V 2 PVcc0 for X102 Output Fused Supply for Cameras 12 V, 1100 mA Jumper J100 J103 PVcc1 for X103 PVcc2 for X104 PVcc3 for X105 3 GND - Signal Ground 0V 4 Video0 for X102 Input Video Input 0 for X102 0.7 Vpp Video, 0.3 Vpp Sync Video1 for X103 Video Input 1 for X103 Video2 for X104 Video Input 2 for X104 Video3 for X105 Video Input 3 for X105 5 GND - Signal Ground 0V 6 NC - - - 6 SyncControl0 for X102 Output Sync Control 0 for X102 TTL 3.2 V @ 75 Ohm SyncControl3 for X103 Sync Control 3 for X103 SyncControl6 for X104 Sync Control 6 for X104 SyncControl9 for X105 Sync Control 9 for X105 7 NC 7 7 - - SyncControl1 for X102 Output Sync Control 1 for X102 TTL 3.2 V @ 75 Ohm SyncControl4 for X103 Sync Control 4 for X103 SyncControl7 for X104 Sync Control 7 for X104 SyncControl10 for X105 Sync Control 10 for X105 EXTCLK0 for X102 EXTCLK1 for X103 - Input External Clock 0 for X102 TTL, max. 32 MHz External Clock 1 for X103 80 10A - 10B 9A - 9B 8A - 8B Chapter 3. Hardware Reference Pin Conn./Signal DirectionDescription EXTCLK2 for X104 External Clock 2 for X104 EXTCLK3 for X105 External Clock 3 for X105 Level 8 GND - Signal Ground 0V 9 NC - - - 9 SyncControl2 for X102 Output Sync Control 2 for X102 TTL 3.2 V @ 75 Ohm SyncControl5 for X103 Sync Control 5 for X103 SyncControl8 for X104 Sync Control 8 for X104 SyncControl11 for X105 Sync Control 11 for X105 9 9 EXTCLK0 for X102 Input External Clock 0 for X102 TTL EXTCLK1 for X103 External Clock 1 for X103 EXTCLK2 for X104 External Clock 2 for X104 EXTCLK3 for X105 External Clock 3 for X105 Video4 for X102 Input Video input 4 for X102 Video5 for X103 Video input 5 for X103 Video6 for X104 Video input 6 for X104 Video7 for X105 Video input 7 for X105 0,7 Vpp Video, 0,3 Vpp Sync Jumper J100 J103 7A - 7B 6A - 6B 5A - 5B 10 NC - - - 10 GND - Signal Ground 0V 4A - 4B 10 GPI0 for X102 Input General Purpose Input 0 for X102 TTL 3A - 3B GPI1 for X103 General Purpose Input 1 for X103 GPI2 for X104 GPI3 for X105 General Purpose Input 2 for X104 General Purpose Input 3 for X105 11 NC - - - 11 PVcc Output Fused Supply for Cameras 12 V, 1100 mA 2A - 2B 11 SyncControl2 for X102 Output Sync Control 2 for X102 TTL 1A - 1B SyncControl5 for X103 Sync Control 5 for X103 SyncControl8 for X104 Sync Control 8 for X104 SyncControl11 for Sync Control 11 for X105 81 Chapter 3. Hardware Reference Pin Conn./Signal DirectionDescription Level - 0V Jumper J100 J103 X105 12 GND Signal Ground Power supply output: On pin 2 and 11 may 12V delivered to supply the video camera. The current that can be drawn from this pin is limited with a PTC resistor (Imax ca. 1100 mA). 82 Chapter 3. Hardware Reference 3.5.3.3. Digital Outputs Connector (10-Pin Header X106) p3i_ASYNC Layout 10-Pin Header X106 Table 3.28. Layout 10-Pin Header X106 p3i_ASYNC Pin Signal Direction Level Pin Signal Direction Level 1 CamControl0 Output TTL 3.2 V @ 75 Ohm 2 GND 0V - 3 CamControl1 Output TTL 3.2 V @ 75 Ohm 4 GND 0V - 5 CamControl2 Output TTL 3.2 V @ 75 Ohm 6 GND 0V - 7 CamControl3 Output TTL 3.2 V @ 75 Ohm 8 GND 0V - 9 GND 0V - 10 GND 0V - 3.5.3.4. Power Connector (X700) p3i_ASYNC Layout 3,5" Floppy-Type Power Connector X700 Table 3.29. Layout 3,5" Floppy-Type Power Connector X700 p3i_ASYNC Pin Signal Direction Description Level 1 NC - Not connected - 2 GND - Power ground 0V 3 GND - Power ground 0V 4 12 V Input Power for Cameras 12 V, 3.0 A 83 Chapter 3. Hardware Reference 3.5.4. Hex-Switch (Board-ID-Select) p3i_ASYNC Switch S500 is used to set the board ID. If more than one frame grabber is plugged into the PC, they must have distinct board IDs unequal to "0". 3.5.5. Status-LEDs p3i_ASYNC There are 4 LEDs for status information: frame grabber LED Table 3.30. frame grabber LED p3i_ASYNC LED Description LED1: Board selected - when the frame grabber is initialized, the LED is switched on LED2: Capture - Acquisition in progress LED3: FiFo overrun - The FiFo run full LED4: FiFo Write Enable - valid data is written into the FiFo These LEDs may not be used in applications but may help to analyse problems in cooperation with ELTEC Elektronik AG support 84 Chapter 3. Hardware Reference 3.6. p3i_ASYNC/F-Hardware 3.6.1. Block Diagram p3i_ASYNC/F 85 Chapter 3. Hardware Reference 3.6.2. Technical Details for p3i_ASYNC/F The p3i_ASYNC/F is a PCI framegrabber, designed to digitize up to four parallel non-synchronized monochrome cameras, where the cameras can be run either in free running or in restart/reset mode. Up to eight cameras can be connected to the grabber by combining the 15 pin SUB-D and the four Hirose connectors. Four seperate multiplexers allow you to switch between groups of four cameras as shown in the table below: The four images are stored in separate memory regions as separate monochrome images. There is no need to synchronize the cameras. The pixel clock is divided down from an internal Oscillator (up to 230 MHz) or is taken directly from the pixel clock input for camera synchronous digitization. The A/D conversion rates are programmable up to 40 MHz . The region of interest, i.e. the part of the video information that is acquired, can be defined on a pixel basis for all 4 video inputs with the same values - not always the whole frame has to be acquired. For every channel, a own trigger input and sequencer is included, to met the different timings from restart cameras. 3.6.2.1. Video Input p3i_ASYNC/F Video inputs can be connected to the four 12-pin Hirose Connectors (X102-X105) and/or to the 15-pin VGA-Type Connector X101 The eight video inputs are AC-coupled and terminated with 75 Ohm resistors. Four independent multiplexers distribute the signals to the four A/D converters. Each has a subset from the eight video inputs. The multiplexers are controlled by software. Table 3.31. Possible Input Selections p3i_ASYNC/F Converter 0 Converter 1 Converter 2 Converter 3 Video0 Video1 Video2 Video3 Video4 Video5 Video6 Video7 Video2 Video3 Video0 Video1 Video6 Video7 Video4 Video5 3.6.2.2. Sync Input p3i_ASYNC/F The sync-input is composite-sync and taken from one of the multiplexed video-inputs or directly from Video7 . 86 Chapter 3. Hardware Reference 3.6.2.3. Clock Input p3i_ASYNC/F The clock used to digitize all four channels is generated either by an on-board PLL, synchronized to the horizontal camera sync with a pixel jitter of less than 7 ns or it is taken directly from the pixel clock input for camerasynchronous digitization. When cameras with clock-output are used, the pixel clock maybe taken from the camera by connecting it to the four 12-pin Hirose connectors (X102-X105) .. The external clock is AC-coupled and restored to TTL-Level. To compensate different delays between the video- and the clock-input, the phase of the clock can be shifted in steps of 90°. The clock input is single-ended TTL; it is terminated at the receiving end (input), with a 75 Ohm resistor. Have a look at el_EnableExtPixelClock to learn how to activate the input. Caution: Use a separate shielded cable for the clock to minimize cross-talk to video. 87 Chapter 3. Hardware Reference 3.6.2.4. Trigger Input p3i_ASYNC/F The p3i_ASYNC has opto-isolated trigger inputs with additional outputs used to trigger cameras. Strobe lights can also be triggered by the trigger inputs. Trigger inputs can be connected to the one 15-pin HD (X101). The trigger inputs are opto-decoupled for optimum noise immunity (250 V isolation voltage). TRIGIN+ is connected to the anode of a LED, TRIGIN- to the cathode of the LED via an internal 220-Ohm resistor. Since the LED needs about 10..20 mA for full drive, a 5 V voltage source or a TTL output is able to drive sufficient current through the circuit. Higher-voltage sources may be used with additional limiting resistors. Their values may be calculated as follows: R (Ohm, to add in series)= (U - 1.2 V)/0.02 A - 220 Ohm This trigger input is level- or edge-sensitive, dependent of the camera file. See also: el_EnableExternalTrigger Caution: Do not exceed a maximum of 30 mA LED current! Alternativly the Optocoupler can be bypassed (jumpers). In this case the trigger function is inverted. Opto-coupled Trigger Input Schematic 3.6.2.5. Digital Outputs p3i_ASYNC/F There are 16 General-Purpose-Outputs(GPOs) available for sync and camera control. These outputs are divided into two groups where the 12 GPOs of the first group are used for controlling cameras by the board (not intended to be used for application programming, used by ELTEC Elektronik AG for camera adaption). The second group of 4 GPOs may be used for different purposes. 88 Chapter 3. Hardware Reference 3.6.2.5.1. Sync Control Output 0..11 p3i_ASYNC/F Each Output can be mapped to one of 8 available signals: • Static output • Sync-generator Horizontal-sync • Sync-generator Vertical-sync • Internal Trigger • Sequencer bit 2 • Sequencer bit 3 • Sequencer bit 4 • Sequencer bit 5 The logical polarity (High-/ Low-active) is independently programmable for every output. The user cannot map this signals, this is done by the camerafile only. 3.6.2.5.2. Control Outputs 0..3 p3i_ASYNC These outputs are available at connector x106 (10-Pin Header) Each one of these 4 outputs can be set to static high (el_SetOutputs) or low (el_ResetOutputs). 3.6.2.6. Power Supply out p3i_ASYNC/F To supply the cameras with power, there are up to 4 outputs with 12 V. Each output is protected with a self healing (PTC) 1100 mA fuse. The summed current from all outputs must not exceed 3000 mA. To use the power supply outputs, the 3,5" Floppy-type connector must be plugged to X700. 3.6.2.7. Data Transfer p3i_ASYNC/F Since the frame grabber is a busmaster card, the video data of a Frame or a whole sequence is moved to memory per DMA-transfer. There is no need for the CPU to support this process. The maximum transfer rate in an ideal system is restricted to max 105 Mbytes/s by the PCI bus, but this is a best case. In a real application the transfer rate depends on the chipset, graphic card and other active Busmaster cards. 89 Chapter 3. Hardware Reference 3.6.3. Jumpers and Connectors for p3i_ASYNC/F Before any connectors or jumpers are plugged in or out, be sure that the ESD guidelines are compliance. When a cable is plugged into the board's connector, then it must be ensured that a possible voltage difference is equalized thru the connectors shield. This can be ensured by the following design features: • All connected cable must be shielded • At the board side, the cable shield must be connected with the connectors shield • At the other cable side, ground must be connected to shield with a resistance, less than 100 kohm To connect a RGB-Camera, use a standard PC-Monitor cable HD15 to BNC (red, green and blue BNC connected to pin 1,2,3 on HD15). To connect monochrome cameras with BNC-Output use the ELTEC Elektronik AG cable V-CABL-183A. To connect monochrome cameras with Hirose-Output use standard Hirose-Cables. The board has several jumpers which are used to adapt it to cameras with special features. for further details see Appendix A: Supported Cameras. The jumpering may change the pinout of some connectors. With the default jumpering the board is set up for the use of CCIR/EIA-Cameras with no special features. Jumpers and Connectors Placement p3i_ASYNC/F 90 Chapter 3. Hardware Reference 3.6.3.1. 15-pin VGA-Type Connector (X101) p3i_ASYNC/F Description The pin layout of the connector X101 can be modified using the jumper J104-J106. The jumper setting is described below. Default Jumpering J104 - J106 Table 3.32. Default Jumpering J104 - J106 p3i_ASYNC/F A B C 1 2 3 4 5 6 7 8 9 10 11 12 91 Chapter 3. Hardware Reference Layout 15-pin VGA-Type Connector X101 Table 3.33. Layout 15-pin VGA-Type Connector X101 p3i_ASYNC/F Pin Signal Direction Description Level Jumper 1 Video4 Input Video Red_B or BW0_B 0.7 Vpp Video 0.3 Vpp Sync 10A - 11A 1 EXTTRIG+2 Input Differential Trigger high TTL high 11A - 11B, 12A - 12B, 9C - 10C 1 EXTTRIG2 Input Trigger 11A - 12A 2 Video5 Input Video input Green_B or 0.7 Vpp Video BW1_B 0.3 Vpp Sync 10C - 11C 2 EXTTRIG-2 Input Differential Trigger low TTL low 11A - 11B, 12A - 12B, 9C - 10C 2 SyncControl2 Output Sync control 2 TTL 3.2 V @ 75 Ohm 10B - 10C 3 Video6 Input Video input Blue_B or BW2_B 0.7 Vpp Video 0.3 Vpp Sync 7A - 8A 3 EXTTRIG+3 Input Differential Trigger high TTL high 8A - 8B, 9A - 9B, 6C 7C 3 EXTTRIG3 Input Trigger 8A - 9A 4 Video7 Input Video input Green_B or 0.7 Vpp Video BW1_B 0.3 Vpp Sync 7C - 8C 4 EXTTRIG-3 Input Differential Trigger low TTL low 8A - 8B, 9A - 9B, 6C 7C 4 SyncControl5 Output Sync control 5 TTL 3.2 V @ 75 Ohm 7B - 7C 5 Gnd - Signal Ground 0V 6 Gnd - Signal Ground 0V 7 Gnd - Signal Ground 0V 8 Gnd - Signal Ground 0V 9 EXTTRIG+1 Input Differential trigger high TTL high TTL high TTL high 92 2A - 2B, 3A - 3B, 1C - Chapter 3. Hardware Reference Pin Signal Direction Description Level Jumper 2C 9 EXTTRIG1 Input Trigger TTL high 10 Gnd - Signal Ground 0V 11 EXTTRIG-1 Input Trigger TTL high 2A - 2B, 3A - 3B, 1C 2C 11 SyncControl11 Output Sync Control 11 TTL 3.2 V @ 75 Ohm 1B - 1C 12 EXTCLK_1 Input External Clock, max. 32 TTL, rising MHz edge 13 SyncControl3 Output Sync Control 3 13 EXTTRIG+0 Input Differential trigger high TTL high 5A - 5B, 6A - 6B, 3C 4C 13 EXTTRIG0 Input Trigger TTL high 5A - 6A 14 SyncControl4 Output Sync Control 4 TTL 2.7 V @75 4C - 5C Ohm 14 EXTTRIG-0 Input Differential trigger Low TTL low 14 SyncControl8 Output Sync Control 8 TTL 2.7 V @75 4B - 4C Ohm 15 PVcc_1 Output Fused supply for cameras 12 V, 1100 mA TTL 2A - 3A 4A - 5A 5A - 5B, 6A - 6B, 3C 4C All signals with 1.0 Vpp level are AC-coupled and terminated with 75 Ohm to GND. The connector case of connectors X100 and X101 is connected to shield potential which is separated from signal ground. If only the video inputs are required a standard VGA monitor cable with BNC connectors on the monitor end may be used. Power supply output: On pin 15 is 12V delivered to supply the video camera. The current that can be drawn from this pin is limited with a PTC resistor (Imax ca. 1100 mA). 93 Chapter 3. Hardware Reference 3.6.3.2. Hirose-Connectors (X102-X105) p3i_ASYNC/F Description The pin layout of the connectors X102 - X105 can be modified using the jumper J100 - J103. The jumper setting is described in the table below. Default Jumpering J100 - J103 Table 3.34. Jumpering for J100 - J103 p3i_ASYNC/F A B 1 2 3 4 5 6 7 8 9 10 94 Chapter 3. Hardware Reference Layout Hirose Connectors X102-X105 Table 3.35. Layout Hirose Connectors X102-X105 p3i_ASYNC/F Pin Conn./Signal DirectionDescription Level 1 GND - Signal Ground 0V 2 PVcc0 for X102 Output Fused Supply for Cameras 12 V, 1100 mA Jumper J100 J103 PVcc1 for X103 PVcc2 for X104 PVcc3 for X105 3 GND - Signal Ground 0V 4 Video0 for X102 Input Video Input 0 for X102 0.7 Vpp Video, 0.3 Vpp Sync Video1 for X103 Video Input 1 for X103 Video2 for X104 Video Input 2 for X104 Video3 for X105 Video Input 3 for X105 5 GND - Signal Ground 0V 6 NC - - - 6 SyncControl0 for X102 Output Sync Control 0 for X102 TTL 3.2 V @ 75 Ohm SyncControl3 for X103 Sync Control 3 for X103 SyncControl6 for X104 Sync Control 6 for X104 SyncControl9 for X105 Sync Control 9 for X105 7 NC 7 7 - - SyncControl1 for X102 Output Sync Control 1 for X102 TTL 3.2 V @ 75 Ohm SyncControl4 for X103 Sync Control 4 for X103 SyncControl7 for X104 Sync Control 7 for X104 SyncControl10 for X105 Sync Control 10 for X105 EXTCLK0 for X102 EXTCLK1 for X103 - Input External Clock 0 for X102 TTL, max. 32 MHz External Clock 1 for X103 95 10A - 10B 9A - 9B 8A - 8B Chapter 3. Hardware Reference Pin Conn./Signal DirectionDescription EXTCLK2 for X104 External Clock 2 for X104 EXTCLK3 for X105 External Clock 3 for X105 Level 8 GND - Signal Ground 0V 9 NC - - - 9 SyncControl2 for X102 Output Sync Control 2 for X102 TTL 3.2 V @ 75 Ohm SyncControl5 for X103 Sync Control 5 for X103 SyncControl8 for X104 Sync Control 8 for X104 SyncControl11 for X105 Sync Control 11 for X105 9 9 EXTCLK0 for X102 Input External Clock 0 for X102 TTL EXTCLK1 for X103 External Clock 1 for X103 EXTCLK2 for X104 External Clock 2 for X104 EXTCLK3 for X105 External Clock 3 for X105 Video4 for X102 Input Video input 4 for X102 Video5 for X103 Video input 5 for X103 Video6 for X104 Video input 6 for X104 Video7 for X105 Video input 7 for X105 0,7 Vpp Video, 0,3 Vpp Sync Jumper J100 J103 7A - 7B 6A - 6B 5A - 5B 10 NC - - - 10 GND - Signal Ground 0V 4A - 4B 10 GPI0 for X102 Input General Purpose Input 0 for X102 TTL 3A - 3B GPI1 for X103 General Purpose Input 1 for X103 GPI2 for X104 GPI3 for X105 General Purpose Input 2 for X104 General Purpose Input 3 for X105 11 NC - - - 11 PVcc Output Fused Supply for Cameras 12 V, 1100 mA 2A - 2B 11 SyncControl2 for X102 Output Sync Control 2 for X102 TTL 1A - 1B SyncControl5 for X103 Sync Control 5 for X103 SyncControl8 for X104 Sync Control 8 for X104 SyncControl11 for Sync Control 11 for X105 96 Chapter 3. Hardware Reference Pin Conn./Signal DirectionDescription Level - 0V Jumper J100 J103 X105 12 GND Signal Ground Power supply output: On pin 2 and 11 may 12V delivered to supply the video camera. The current that can be drawn from this pin is limited with a PTC resistor (Imax ca. 1100 mA). 97 Chapter 3. Hardware Reference 3.6.3.3. Digital Outputs Connector (10-Pin Header X106) p3i_ASYNC/F Layout 10-Pin Header X106 Table 3.36. Layout 10-Pin Header X106 p3i_ASYNC/F Pin Signal Direction Level Pin Signal Direction Level 1 CamControl0 Output TTL 3.2 V @ 75 Ohm 2 GND 0V - 3 CamControl1 Output TTL 3.2 V @ 75 Ohm 4 GND 0V - 5 CamControl2 Output TTL 3.2 V @ 75 Ohm 6 GND 0V - 7 CamControl3 Output TTL 3.2 V @ 75 Ohm 8 GND 0V - 9 GND 0V - 10 GND 0V - 3.6.3.4. Power Connector (X700) p3i_ASYNC/F Layout 3,5" Floppy-Type Power Connector X700 Table 3.37. Layout 3,5" Floppy-Type Power Connector X700 p3i_ASYNC/F Pin Signal Direction Description Level 1 NC - Not connected - 2 GND - Power ground 0V 3 GND - Power ground 0V 4 12 V Input Power for Cameras 12 V, 3.0 A 98 Chapter 3. Hardware Reference 3.6.4. Hex-Switch (Board-ID-Select) p3i_ASYNC/F Switch S500 is used to set the board ID. If more than one frame grabber is plugged into the PC, they must have distinct board IDs unequal to "0". 3.6.5. Status-LEDs p3i_ASYNC/F There are 4 LEDs for status information: frame grabber LED Table 3.38. frame grabber LED p3i_ASYNC/F LED Description LED1: Board selected - when the frame grabber is initialized, the LED is switched on LED2: Capture - Acquisition in progress LED3: FiFo overrun - The FiFo run full LED4: FiFo Write Enable - valid data is written into the FiFo These LEDs may not be used in applications but may help to analyse problems in cooperation with ELTEC Elektronik AG support 99 Chapter 3. Hardware Reference 3.7. p3i_MOCO/PMC-Hardware 3.7.1. Block Diagram p3i_MOCO/PMC 100 Chapter 3. Hardware Reference 3.7.2. Technical Details for p3i_MOCO/PMC The p3i_MOCO/PMC is a PMC frame grabber, designed to digitize up to two monochrome cameras and one Y/C (or CVBS) camera. The non-synchronized cameras are digitize parallel. The monochrome cameras, can be run either in free running or in restart/reset mode. The pixel clock is divided down from an internal Oscillator (up to 180 MHz) or is taken directly from the pixel clock input for camera synchronous digitization. The A/D conversion rates are programmable up to 30 MHz. The colour camera is digitize with 13.5 MHz, there up to 720 pixel per line. The output format is YUV 4:2:2 or RGB with 24. Up to four cameras (two monochrome and one Y/C or two monochrome and two CVBS) can be connected to the grabber by combining the two 15 pin SUB-D connectors. The three images are stored in separate memory regions as separate images. There is no need to synchronize the cameras. The region of interest, i.e. the part of the video information that is acquired, can be defined on a pixel basis for all three video inputs with the same values - not always the whole frame has to be acquired. For each of the two monochrome channels, a own trigger input and sequencer is included, to met the different timings from restart cameras. 3.7.2.1. Video Input p3i_MOCO/PMC Video inputs can be connected to the two 15-pin VGA-Type connectors X100 and X101. The four video inputs are AC-coupled and terminated with 75 Ohm resistors. 3.7.2.2. Sync Input p3i_MOCO/PMC The sync-inputs are composite-sync and taken from the video-inputs. 101 Chapter 3. Hardware Reference 3.7.2.3. Clock Input p3i_MOCO/PMC The clock used to digitize the two monochrome channels is generated either by an on-board PLL, synchronized to the horizontal camera sync with a pixel jitter of less than 7 ns or it is taken directly from the pixel clock input for camerasynchronous digitization. When cameras with clock-output are used, the pixel clock may be taken from the camera by connecting it to the 15-pin VGA-Type Connectors (X100 and X101). The external clock is AC-coupled and restored to TTL-Level. To compensate different delays between the video- and the clock-input, the phase of the clock can be shifted in steps of 180°. The clock input is single-ended TTL; it is terminated at the receiving end (input) with a 75 Ohm resistor. Caution: Use a separate shielded cable for the clock to minimize cross-talk to video. 102 Chapter 3. Hardware Reference 3.7.2.4. Trigger Input p3i_MOCO/PMC The p3i_MOCO/PMC has TTL trigger inputs with additional outputs used to trigger cameras. Strobe lights can also be triggered by the trigger inputs. Trigger inputs can be connected to the two 15-pin HD (X100,X101). This trigger input is level- or edge-sensitive, dependent of the camera file. See also: el_EnableExternalTrigger 3.7.2.5. Digital Outputs p3i_MOCO/PMC There are 4 General-Purpose-Outputs(GPOs) available for sync and camera control. They are used for controlling cameras by the board (not intended to be used for application programming, used by ELTEC Elektronik AG for camera adaption). 103 Chapter 3. Hardware Reference 3.7.2.5.1. Sync Control Output 0,1,3 and 4 p3i_MOCO/PMC Each Output can be mapped to one of 8 available signals: • Static output • Sync-generator Horizontal-sync • Sync-generator Vertical-sync • Internal Trigger • Sequencer bit 2 • Sequencer bit 3 • Sequencer bit 4 • Sequencer bit 5 The logical polarity (High-/ Low-active) is independently programmable for every output. The user cannot map this signals, this is done by the camerafile only. 3.7.2.6. Power Supply out p3i_MOCO/PMC To supply the cameras with power, there are two outputs with 12 V. Each output is protected with two self healing (PTC) 1100 mA fuses connected in parallel. To use the power supply outputs, the 3,5" Floppy-type connector must be plugged to X700. 3.7.2.7. Data Transfer p3i_MOCO/PMC Since the frame grabber is a busmaster card, the video data of a frame or a whole sequence is moved to memory per DMA-transfer. There is no need for the CPU to support this process. The maximum transfer rate in an ideal system is restricted to max 105 Mbytes/s by the PCI bus, but this is a best case. In a real application the transfer rate depends on the chipset, graphic card and other active Busmaster cards. 104 Chapter 3. Hardware Reference 3.7.3. Jumpers and Connectors for p3i_MOCO/PMC Before any connectors or jumpers are plugged in or out, be sure that the ESD guidelines are compliance. When a cable is plugged into the board's connector, then it must be ensured that a possible voltage difference is equalized thru the connectors shield. This can be ensured by the following design features: • All connected cable must be shielded • At the board side, the cable shield must be connected with the connectors shield • At the other cable side, ground must be connected to shield with a resistance, less than 100 kohm To connect monochrome cameras with BNC-Output use the ELTEC Elektronik AG cable V-CABL-183A. The board has several jumpers which are used to adapt it to cameras with special features. (for further details see Appendix A: Supported Cameras) The jumpering may change the pinout of some connectors. With the default jumpering the board is set up for the use of CCIR/EIA-Cameras with no special features. Jumpers and Connectors Placement p3i_MOCO/PMC 105 Chapter 3. Hardware Reference 3.7.3.1. 15-pin VGA-Type Connector Video0 (X100) p3i_MOCO/PMC Description The pin layout of the connectors X100 and X101 can be modified using the jumper J100-J101. The jumper setting is described below. Default Jumpering J101 - J100: (default: no jumpers) Table 3.39. Default Jumpering J101 - J100 p3i_MOCO/PMC A B 1 2 3 4 5 6 7 8 106 Chapter 3. Hardware Reference Layout 15-pin VGA-Type Connector X100, X101 Table 3.40. Layout 15-pin VGA-Type Connector X100 p3i_MOCO/PMC Pin Signal Direction Description Level 1 Video0 Input Video BW0 0.7 Vpp Video 0.3 Vpp Sync 2 Video1 Input Video BW2 0.7 Vpp Video 0.3 Vpp Sync 3 NC - - - 4 NC - - - 5 GND - Ground 0V 6 GND - Ground 0V 7 GND - Ground 0V 8 GND - Ground 0V 9 EXTTRIG_0 Input Trigger input 0 TTL 9 EXTTRIG_0+ Input Differential trigger input TTL 0 high 10 GND - Ground 11 EXTTRIG_0- Input Differential trigger input TTL 0 low 12 EXTCLK_0 Input External clock 0, max. 30 MHz TTL, rising edge 13 SyncControl0 Output Sync control 0 TTL 14 SyncControl1 Output Sync control 1 TTL 15 PVcc Output Fused supply for cameras 12 V, 2200 mA Jumper 1A-1B 6A-B 5A-5B 0V 107 2B - 3B Chapter 3. Hardware Reference Table 3.41. Layout 15-pin VGA-Type Connector X101 p3i_MOCO/PMC Pin Signal Direction Description Level Jumper 1 Video1 Input Video BW1 0.7 Vpp Video 0.3 Vpp Sync 2 NC - - - 3 Y S-Video Input Video Y or CVBS_0 0.7 Vpp Video 0.3 Vpp Sync 4 C S-Video Input Video C or CVBS_1 0.7 Vpp Video 0.3 Vpp Sync 5 GND - Ground 0V 6 GND - Ground 0V 7 GND - Ground 0V 8 GND - Ground 0V 9 EXTTRIG_1 Input Trigger input 1 TTL 2A-2B 7A-7B 9 EXTTRIG_1+ Input Differential trigger input TTL 1 high 8A-8B 10 GND - Ground 11 EXTTRIG_1- Input Differential trigger input TTL 1 low 12 EXTCLK_1 Input External clock 1, max. 30 MHz TTL, rising edge 13 SyncControl3 Output Sync control 3 TTL 14 SyncControl4 Output Sync control 4 TTL 15 PVcc Output Fused supply for cameras 12 V, 2200 mA 0V 7A - 8A All signals with 1.0 Vpp level are AC-coupled and terminated with 75 Ohm to GND. The connector case of connectors X100 and X101 is connected to shield potential which is separated from signal ground. If only the video inputs are required a standard VGA monitor cable with BNC connectors on the monitor end may be used. Power supply output: On pin 15 is 12V delivered to supply the video camera. The current that can be drawn from this pin is limited with a PTC resistor (Imax ca. 1100 mA). 108 Chapter 3. Hardware Reference 3.7.3.2. Power Connector (X700) p3i_MOCO/PMC Layout 3,5" Floppy-Type Power Connector X700 Table 3.42. Layout 3,5" Floppy-Type Power Connector X700 p3i_MOCO/PMC Pin Signal Direction Description Level 1 NC - Not connected - 2 GND - Power ground 0V 3 GND - Power ground 0V 4 12 V Input Power for Cameras 12 V, 3 A 109 Chapter 3. Hardware Reference 3.8. p3i_ASYNC/PMC-Hardware 3.8.1. Block Diagram p3i_ASYNC/PMC 110 Chapter 3. Hardware Reference 3.8.2. Technical Details for p3i_ASYNC/PMC The p3i_ASYNC/PMC is a PMC frame grabber, designed to digitize up to four parallel non-synchronized monochrome cameras, where the cameras can be run either in free running or in restart/reset mode. Up to four cameras can be connected to the grabber by combining the two 15 pin SUB-D connectors. Four seperate multiplexers allow you to switch the input channels as shown in the table below. The four images are stored in separate memory regions as separate monochrome images. There is no need to synchronize the cameras. The pixel clock is divided down from an internal Oscillator (up to 180 MHz) or is taken directly from the pixel clock input for camera synchronous digitization. The A/D conversion rates are programmable up to 30 MHz . The region of interest, i.e. the part of the video information that is acquired, can be defined on a pixel basis for all 4 video inputs with the same values - not always the whole frame has to be acquired. For every channel, a own trigger input and sequencer is included, to met the different timings from restart cameras. 3.8.2.1. Video Input p3i_ASYNC/PMC Video inputs can be connected to the two 15-pin VGA-Type connectors X100 and X101. The four video inputs are AC-coupled and terminated with 75 Ohm resistors. Four independent multiplexers distribute the signals to the four A/D converters. Each has a subset from the four video inputs. The multiplexers are controlled by software. Table 3.43. Possible Input Selections p3i_ASYNC/PMC Converter 0 (EL_ADC0) Converter 1 (EL_ADC1) Converter 2 (EL_ADC2) Converter 3 (EL_ADC3) Video0 (EL_INPUT_R_A) Video1 (EL_INPUT_G_A) Video2 (EL_INPUT_B_A) Video3 (EL_INPUT_Y_A) Video2 (EL_INPUT_B_A) Video3 (EL_INPUT_Y_A) Video0 (EL_INPUT_R_A) Video1 (EL_INPUT_G_A) 3.8.2.2. Sync Input p3i_ASYNC/PMC The sync-input is composite-sync and taken from one of the multiplexed video-inputs. 111 Chapter 3. Hardware Reference 3.8.2.3. Clock Input p3i_ASYNC/PMC The clock used to digitize all four channels is generated either by an on-board PLL, synchronized to the horizontal camera sync with a pixel jitter of less than 7 ns or it is taken directly from the pixel clock input for camerasynchronous digitization. When cameras with clock-output are used, the pixel clock may be taken from the camera by connecting it to the 15-pin VGA-Type Connectors (X100 and X101). The external clock is AC-coupled and restored to TTL-Level. To compensate different delays between the video- and the clock-input, the phase of the clock can be shifted in steps of 180°. The clock input is single-ended TTL; it is terminated at the receiving end (input) with a 75 Ohm resistor. Caution: Use a separate shielded cable for the clock to minimize cross-talk to video. 112 Chapter 3. Hardware Reference 3.8.2.4. Trigger Input p3i_ASYNC/PMC The p3i_ASYNC/PMC has TTL trigger inputs with additional outputs used to trigger cameras. Strobe lights can also be triggered by the trigger inputs. Trigger inputs can be connected to the two 15-pin HD (X100,X101). This trigger input is level- or edge-sensitive, dependent of the camera file. See also: el_EnableExternalTrigger 3.8.2.5. Digital Outputs p3i_ASYNC/PMC There are 12 General-Purpose-Outputs(GPOs) available for sync and camera control. They are used for controlling cameras by the board (not intended to be used for application programming, used by ELTEC Elektronik AG for camera adaption). 113 Chapter 3. Hardware Reference 3.8.2.5.1. Sync Control Output 0..11 p3i_ASYNC/PMC Each Output can be mapped to one of 8 available signals: • Static output • Sync-generator Horizontal-sync • Sync-generator Vertical-sync • Internal Trigger • Sequencer bit 2 • Sequencer bit 3 • Sequencer bit 4 • Sequencer bit 5 The logical polarity (High-/ Low-active) is independently programmable for every output. The user cannot map this signals, this is done by the camerafile only. 3.8.2.6. Power Supply out p3i_ASYNC/PMC To supply the cameras with power, there are two outputs with 12 V. Each output is protected with two self healing (PTC) 1100 mA fuses connected in parallel. To use the power supply outputs, the 3,5" Floppy-type connector must be plugged to X700. 3.8.2.7. Data Transfer p3i_ASYNC/PMC Since the frame grabber is a busmaster card, the video data of a frame or a whole sequence is moved to memory per DMA-transfer. There is no need for the CPU to support this process. The maximum transfer rate in an ideal system is restricted to max 105 Mbytes/s by the PCI bus, but this is a best case. In a real application the transfer rate depends on the chipset, graphic card and other active Busmaster cards. 114 Chapter 3. Hardware Reference 3.8.3. Jumpers and Connectors for p3i_ASYNC/PMC Before any connectors or jumpers are plugged in or out, be sure that the ESD guidelines are compliance. When a cable is plugged into the board's connector, then it must be ensured that a possible voltage difference is equalized thru the connectors shield. This can be ensured by the following design features: • All connected cable must be shielded • At the board side, the cable shield must be connected with the connectors shield • At the other cable side, ground must be connected to shield with a resistance, less than 100 kohm To connect monochrome cameras with BNC-Output use the ELTEC Elektronik AG cable V-CABL-183A. The board has several jumpers which are used to adapt it to cameras with special features. (for further details see Appendix A: Supported Cameras) The jumpering may change the pinout of some connectors. With the default jumpering the board is set up for the use of CCIR/EIA-Cameras with no special features. Jumpers and Connectors Placement p3i_ASYNC/PMC 115 Chapter 3. Hardware Reference 3.8.3.1. 15-pin VGA-Type Connector Video0 (X100) p3i_ASYNC/PMC Description The pin layout of the connector X100 can be modified using the jumper J100-J101. The jumper setting is described below. Default Jumpering J100 - J101: Table 3.44. Default Jumpering J100 - J101 p3i_ASYNC/PMC A B 1 2 3 4 5 6 7 8 116 Chapter 3. Hardware Reference Layout 15-pin VGA-Type Connector X100, X101 Table 3.45. Layout 15-pin VGA-Type Connector X100 p3i_ASYNC/PMC Pin Signal Direction Description Level 1 Video0 Input Video BW0 0.7 Vpp Video 0.3 Vpp Sync 2 Video2 Input Video BW2 0.7 Vpp Video 0.3 Vpp Sync 3 SyncControl6 Output Sync control 6 TTL 4 SyncControl7 Output Sync control 7 TTL 4A - 4B 4 SyncControl8 Output Sync control 8 TTL 4A - 5A 4 SyncControl2 Output Sync control 2 TTL 4A - 3A 5 GND - Ground 0V 6 GND - Ground 0V 7 GND - Ground 0V 8 GND - Ground 0V 9 EXTTRIG0 Input Trigger input 0 TTL 10 EXTTRIG2 Input Trigger input 2 TTL 11 EXTCLK_2 Input External clock 2, max. 30 MHz TTL, rising edge 12 EXTCLK_0 Input External clock 0, max. 30 MHz TTL, rising edge 13 SyncControl0 Output Sync control 0 TTL 14 SyncControl1 Output Sync control 1 TTL 2B - 3B 14 SyncControl2 Output Sync control 2 TTL 3A - 3B 15 PVcc Output Fused supply for cameras 12 V, 2200 mA 117 Jumper Chapter 3. Hardware Reference Table 3.46. Layout 15-pin VGA-Type Connector X101 p3i_ASYNC/PMC Pin Signal Direction Description Level Jumper 1 Video1 Input Video BW1 0.7 Vpp Video 0.3 Vpp Sync 2 Video3 Input Video BW3 0.7 Vpp Video 0.3 Vpp Sync 3 SyncControl9 Output Sync control 9 TTL 4 SyncControl10 Output Sync control 10 TTL 6A - 6B 4 SyncControl11 Output Sync control 11 TTL 5B - 6B 4 SyncControl5 Output Sync control 5 TTL 6B - 7B 5 GND - Ground 0V 6 GND - Ground 0V 7 GND - Ground 0V 8 GND - Ground 0V 9 EXTTRIG1 Input Trigger input 1 TTL 10 EXTTRIG3 Input Trigger input 3 TTL 11 EXTCLK_3 Input External clock 3, max. 30 MHz TTL, rising edge 12 EXTCLK_1 Input External clock 1, max. 30 MHz TTL, rising edge 13 SyncControl3 Output Sync control 3 TTL 14 SyncControl4 Output Sync control 4 TTL 7A - 8A 14 SyncControl5 Output Sync control 5 TTL 7A - 7B 15 PVcc Output Fused supply for cameras 12 V, 2200 mA All signals with 1.0 Vpp level are AC-coupled and terminated with 75 Ohm to GND. The connector case of connectors X100 and X101 is connected to shield potential which is separated from signal ground. If only the video inputs are required a standard VGA monitor cable with BNC connectors on the monitor end may be used. Power supply output: On pin 15 is 12V delivered to supply the video camera. The current that can be drawn from this pin is limited with a PTC resistor (Imax ca. 2200 mA). 118 Chapter 3. Hardware Reference 3.8.3.2. Power Connector (X700) p3i_ASYNC/PMC Layout 3,5" Floppy-Type Power Connector X700 Table 3.47. Layout 3,5" Floppy-Type Power Connector X700 p3i_ASYNC/PMC Pin Signal Direction Description Level 1 NC - Not connected - 2 GND - Power ground 0V 3 GND - Power ground 0V 4 12 V Input Power for Cameras 12 V, 3.0 A 3.8.3.3. Board-ID-Select Jumper p3i_ASYNC/PMC If more than one frame grabber is plugged into the computer system, they must have distinct board IDs unequal to "0". Jumper J100/101 pins 1A and 1B are used to set the board ID. Table 3.48. Board-ID-Select Jumper (J100, J101) p3i_ASYNC/PMC J100: 1A - 1B Board ID open 3 close 1 119 Chapter 3. Hardware Reference 120 Chapter 3. Hardware Reference 3.9. Specifications 3.9.1. Electrical Specifications Table 3.49. Electrical Specifications Description Min. Typ. Max. Unit Video input voltage 0.5 0.7 0.7 Vpp Sync input voltage 0.15 0.3 0.4 Vpp Offset input voltage -4 +4 V AC 0.2 5 Vpp Offset + AC -4 4 V Differntial input voltage 2.0 7 Vpp Common input voltage -25 +25 V 3.15 3.75 V 0 0.1 V 3.6 4.0 V 0 0.1 V Composite video Input Clock Trigger Input Sync / Camera Control Output @75 Ohm Output high voltage 3.0 Output low voltage @10 kOhm Output high voltage 3.3 Output low voltage Power Supply out Output voltage 12 V Output current 1.1 A Output current PMGrabber_6 2.1 A Power Supply +5 V (PCI-Connector) 550 mA Power Supply +12 V (PCI-Connector) 200 mA Power Supply +12 V (Power-Connector) 3.0 A Power Requirement 121 Chapter 3. Hardware Reference 3.9.2. Environmental Conditions Storage Temperature: -20 °C - 70 °C Operating Temperature: 0 °C - 55 °C (0,1 m/s forced air cooling) Maximum Operating Humidity: 85 % relative 122 Chapter 4. Trouble Shooting - if it does not work Check if the driver and the user mode software are installed properly. See chapter 3. frame grabber is not found by software: Make sure the frame grabber is correctly plugged into the PCI-connector. If mechanical problems can be excluded refer to the driver installation guide to see if the driver has been installed correctly. Mixing up the recommended installation order of hard and software can be a possible reason for an incorrectly installed driver. Rolling, corrupted image: A live image that is visible after starting the configuration program but rolling may be an indication, that the PCI bus speed is not fast enought. If not, the motherboard chip set might be to slow. This is especially true if a stable image can be seen with smaller horizontal region-of-interest (ROI) settings. Try switching off live mode in the configuration program. If the image is corrupted and there is no dependency from the horizontal acquisition width, the graphics board may be responsible for long PCI blocking times. Disabling video acceleration in the control panel may help; additionally, switching to a lower pixel depth (8 bpp instead of 16 or 24) can be helpful. No image in a special acquisition mode: First must be ensured that all channels work properly. The board has to be jumpered to the default mode (please have a look to the hardware reference). Connect a standard free running CCIR or EIA camera to the first channel and start the configuration program . Select live acquisition. An imagebuffer will be shown in a window. Switch the camera to the other camera inputs and select the corresponding sync input and image buffer from the Configuration/Hardware/Packing mode menu of the configuration program. if a RGB camera is connected please select 1xRGB24 from Configuration/Hardware/Packing mode menu of the configuration program. Getting support: Under some circumstances you may not succeed in getting everything running. Then you can contact us but we need the system configuration as exactly as possible. For that purpose we have prepared a support request form where you can fill in your configuration and submit this form (by fax or E-mail) together with the support request - using this form will help us to help you faster. 123 Chapter 5. Programmers Reference 5.1. Overview 5.1.1. Introduction Frame Grabber configuration tools is the software foundation for ELTEC Elektronik AG frame grabber family. It is the unified interface used across all frame grabber products. Frame Grabber configuration tools is one of the most powerful low-level frame grabber interfaces available on the market. It combines three essential advantages: • Fast and optimized access to the frame grabber hardware. • Relieves the program developer from all hardware dependent stuff. • Unifies the frame grabber interface to switch between the grabber family members. Special care has been taken to simplify the use of complex camera features like restart-reset modes or acquisition of image sequences. Applications ranging from simple single image grabbing, up to programming your frame grabber to become a real image sequence machine, are all easily supported by Frame Grabber configuration tools. 5.1.2. Main Features • Generic software interface for the grabber product line. • Real-time image acquisition • Configuration and setup utility included • Easy setup file handling to store different configurations. • Powerful virtual to physical memory management during run-time. • Makes handling of image sequences as easy as single images. • DLL with complete frame grabber control. 5.1.3. Technical Details The heart of each frame grabber is ist PCI DMA controller. All boards work without the need of a frame buffer on-board. Image data is stored directly in the PC s main memory. ELTEC Elektronik AG is using one of the most sophisticated PCI DMA controllers available. ELTEC Elektronik AG frame grabber DMA means FAST & FLEXIBLE. Flexible DMA schemes (scatter-gather DMA - known from UNIX network drivers) allow the acquisition of complete sequences without CPU intervention and without missing a single frame. So, the main advantage of the PCI bus, fast 124 Chapter 5. Programmers Reference data transfer PCI burst transfers is extended by ELTEC Elektronik AG with an intelligent PCI DMA. The Frame Grabber configuration tools make all these features available at your finger tips. ELTEC Elektronik AG s scatter-gather DMA is used to handle paged ad-dresses, resulting in linear, contiguous images appearing in main memory for easy access. With Frame Grabber configuration tools and your frame grabber you are able to break through all restrictions which exist on other PCI frame grabber solutions: • Your frame grabber is able to acquire directly into linear memory. • Frame buffer memory is allocated during run-time, NOT during Windows® startup; Low-level software supplied. • Drivers for Windows® 98 SE/ME/NT/2000 with acquisition into main memory. • Windows® -based test/setup program. • On-line documentation supplied as Windows® Help. • Reallocation of frame buffer memory is easy With this flexible memory management of the Frame Grabber configuration tools it is easy to use the whole available main memory of your PC to store numbers of different and long image sequences, filling many megabytes of memory. It is as easy as storing a single frame. Only this flexibility gives you the security that your application is able to adapt to different memory needs during run-time and is able to use the whole memory which is physically available on your PC. 5.1.4. Software Concept Frame Grabber configuration tools consists of a device driver and a Dynamic Link Library (DLL). It is only natural that the DLL supports the whole frame grabber hardware. Setup of ADC, look-up table, offset/gain, camera multiplexer, region of interest (acquisition window dimensions), camera selection and setup file support are part of the DLL. Permanent (live), single shot and sequence acquisition of images can be requested and the various states of the acquisition (active/finished) can be inquired. A test and setup utility, running also under Windows®, allows to adjust all relevant camera parameters and have them stored by the DLL in a file for further use in user applications. It supplies Video-in-a-Window display by using Windows® functions, thus enabling overlapped acquisition windows. The same utility supports test and configuration of the frame grabber board under Windows®. 5.1.5. Source code samples Sample source code for using the driver DLL with custom imaging routines is included as well as sample code to set up the frame grabber board, start single shot acquisition and display the image with Windows® display functions and DirectDraw®. With Frame Grabber configuration tools you are able to concentrate on the important things of the application and not waste time with the Frame Grabber hardware. Please have a look at the code example below to see how easy it is to set up a frame grabber board and acquire an image sequence, which could include as many frames as you want (dependent on the available PC main memory). The samples can be downloaded from ELTEC Elektronik AG [http://www.eltec.de] selecting 125 Chapter 5. Programmers Reference support/drivers and updates. 5.1.6. Industrial requirements Frame Grabber configuration tools has an extensive built-in camera support making it extremely easy to use non-standard camera features (e.g. restart/reset). Further, all signals essential to industrial applications are integrated into the Frame Grabber configuration tools. Signals for pixel synchronous acquisition (external clock) and process control (external trigger) are supported. 5.1.7. Cameras With the default jumpering the board is set up for the use of CCIR/EIA-Cameras with no special features. The software supports this camera types by default. A list of cameras with special features which are already adapted to the software can be found in Appendix A. 5.1.8. Developing own applications The supplied software includes all the files you need to develop applications. It is required that you include only one header file. This file includes all constant definitions, type definitions and function prototypes. After compiling your application you need to link it with one of the different libraries. if your application is to run under Windows, you need to link it with the import library eleye516.lib and run it using the dll eleye516.dll. Note that the camera file eleye516.cam ( see Appendix A ) has to reside in the same directory as eleye516.dll. see ELTEC Elektronik AG [http://www.eltec.de] selecting support/drivers and updates for examples of application development using VC++ 5.1.9. Allocating Image Memory The advanced security-technique and virtual address-concepts of modern operation systems makes it more difficult to request image memory which is accessible on fixed addresses or by multiple applications. Additionally, modern video hardware is using flexible and fast DMA data transfers to move the images to memory. But using DMA means that access to physical memory is needed to transfer the image data into on board or system memory. There are several solutions to provide the video hardware with necessary physical addresses. With ELTEC Elektronik AG's imaging API there are different possibilities to request or to create image memory. Dependent on the operating system used the library function el_InitHW() and el_NewMemBuffer() are able to work with user defined or internal defined image buffers. In general the library function mentioned above are allocating image memory and the user needs not to care about requesting access permission and organizing and mapping the physical image memory to the virtual address space of a user program. After the acquisition is finished the application is able to access images in a very transparent way by using the supplied image pointers to walk through the image. But there are different conditions depending on the operating system used to work with image memory allocated by the application. For example if an application must use fixed memory addresses or more than one application must access the image data to process different areas of the image simultaneous. For this purposes the functions el_InitHW() and el_NewMemBuffer() are able to work with user defined image buffers in the same way as they work with buffers defined inside these functions. 5.1.10. Multiple Grabbers The software can handle multiple grabbers using the same library. The grabbers need not to be of the 126 some kind they must only belong to the same 'family' like p3i_RGB, p3i_MONO, p3i_QUADRO, p3i_ASYNC and p3i_ASYNC/PMC. Because the grabbers of a family may have different hardware resources the function of a few API calls might differ slightly. Please referer to the software reference. Using grabbers of different families is more complicated because two libraries have to be used. This leads to a collision of the function names in the libraries. So simple linking of both libraries to an application does not work.Bit depending on the operation system the are possibilites, like dynamical linking, to overcome this problem. 5.1.11. Error Handling In case of failure of a function call, the function el_GetErrorCode can be used to get information of the cause. A list of error codes follows later in this chapter. 5.1.12. Downloading the software Please download our software from the web site ELTEC Elektronik AG [http://www.eltec.de] selecting support/drivers and updates or ask our support ( ). 5.1.13. Image Sequences - Program flow Image sequences are a very versatile tool for solving some common problems in imaging: Functional description: An image sequence consists of a n frames. Each frame is located at a contiguous memory region, the different frames are not allocated contiguously, however. A single snapshot means that a complete sequence of frames is acquired without any CPU intervention. After the snapshot all frames of the sequence are present in memory. Continuous acquisition (live) means that after the last frame of the sequence is in memory the acquisition starts again with the first frame. Swing buffers: Swing buffers are used for continuous acquisition where one image buffer is being acquired into and the other is being evaluated; after one frame time the role of the two buffers is interchanged. The most common method is to implement them with interrupts. However, image sequences can be used here, also. A short sequence of 2..4 frames with continuous acquisition makes a first-class swing (ping-pong) buffer. How far has the acquisition progressed? Since the acquisition is done completely in hardware, the CPU has no implicit knowledge about which frame is ready for image processing: It can be inquired by el_TestFrameCount. Another method is to write a distinct pattern (0xFF00FF00 e.g.) into frame memory and to test if it has been overwritten by the acquisition process. SAMPLE: // This sample shows the overall sequence of settings things up and acquiring a sequence. int SizeX=748; int SizeY=576; int NumberOfFrames = 100; /* This needs more than 40 MB of main memory */ BoardId = el_OpenHW( 0, 0); /* Get board handle */ el_InitContext( BoardId, SetupFileName); 127 /* Initialize library software structures */ /* Initialize HW and allocate frame buffer */ framearray =(BYTE**)el_InitHW( BoardId, 0, SizeX, SizeY, NumberOfFrames, 0, 0); /* optional change of hardware parameters come here */ el_Acquire( BoardId, EL_SNAP); /* real-time acquisition of 100 frames */ el_WaitAcq( BoardId); /* wait until sequence has been acquired */ /* optional display the sequence */ /* image processing comes here */ el_Close(BoardId, 0); /* clean up library structures, close HW */ 5.1.14. Calling the library function from languages other than C/C++ All library functions (e.g. el_OpenHW) are exported wiht _cdecl calling conventions. To be able to use the library from other languages (e.g. Visual Basic) all routines are exported as _stdcall too. These _stdcall version are named the same, but have a second _. The _stdcall version of el_OpenHW is el__OpenHW. Usage under Visual Basic To use the dll functions under Visual Basic you must declare them. Declare Function el__OpenHW Lib "eleyeX16" (ByVal HexSwitch As Long, ByVal Mode As Long) As Long eleyeX16 must be replace be the name of the DLL. Usage under Pascal For Pascal or Delphi you can use the _cdecl version as well. Declare the routines in a seperate unit. Example Unit grabber_routines; interface { The "cdecl" Version is used. } function el_OpenHW(HexSwitch, Mode: longint):longint; cdecl; ... implementation const LIBNAME = 'eleyex16.dll'; function el_OpenHW; cdecl; external LIBNAME; ... begin end. eleyex16.dll denotes the name of the dll. 5.1.15. Virtual Grabbers The use Virtuals Grabbers is a concept to handle several independent units on one piece of hardware. So it is possibe to control a colour and a black and white aquisition unit as two grabbers. Virtual grabbers are opened using el_OpenHWEx the hex switch selects the board and the SubId 128 Chapter 5. Programmers Reference parameter is used to select one of the virtual grabber one the board. el_OpenHW can still be used but it can only open the first virtual grabber. Because the units on a board might not be totally independent virtual grabbers have to be opened and used within one process. If multitasking is required threads have to be used. Virtual grabbers can be identified with el_GetBoardIdentifiers . If at least one "SubId" element in the list filled with EL_BOARD_IDENTIFIER structures is not eqal 0 all grabbers with the same HexSwitch element are virtual grabbers. 5.2. Library Functions 5.2.1. Overview of library functions Table 5.1. Initialization Initialization el_OpenHW el_InitContext el_InitHW el_CloseHW Table 5.2. Configuration and Video Input Configuration and Video Input el_SetInputRefLevel el_SetSyncInPort el_SetVideoInPort el_SetInputMux el_EnableSyncGenerator el_SelectCamera el_GetSelectedCamera el_GetSupportedCamFeaturesEx el_EnableExtPixelClock el_EnableExternalTrigger Table 5.3. Acquisition and Buffer Management Acquisition and Buffer Management el_Acquire el_AcquireEx el_SetAcqWindow el_NewMemBuffer el_FreeMemBuffer 129 Chapter 5. Programmers Reference el_SetPackingMode el_SetAcqMemFormat el_AssignBuffer el_CreateMemBuffer Table 5.4. Timing/Synchronisation Timing/Synchronisation el_WaitFrameEnd el_WaitFrameStart el_WaitAcqEnd el_WaitFieldEnd el_TestFrame el_TestFrameCount el_TestField el_TestAcq el_TestVSync Table 5.5. File I/O File I/O el_WriteSetupFile Table 5.6. Miscellanious Miscellanious el_SetOutputs el_ResetOutputs el_GetSetting el_GetNumOfBoards el_GetSWRevision el_GetHWRevision el_GetErrorCode el_GetErrorCodeEx el_GetScriptPara el_SetScriptPara Table 5.7. Camera Adaptation module functions 130 Camera Adaptation module functions 5.2.2. el_Acquire long el_Aquire (long BoardId, EL_ACQUISITIONMODE Mode); Starts acquisition for a single frame/field (snap) or for continuous (live) acquisition PARAMETERS: BoardId : board ID returned by el_OpenHW Mode: • live: EL_LIVE • snap: EL_SNAP • or be aborted: EL_ABORT RETURN VALUE: 0 if OK -1 if ERROR See el_GetErrorCode for details. DESCRIPTION: Single buffer acquisition: EL_LIVE: switches to live mode. A continuous real-time acquisition takes place. EL_SNAP: If acquisition is in live mode the acquisition is terminated after the current image has been acquired. If not in live mode, the acquisition is started for a single frame/field. The acquisition stops automatically after one frame/field has been acquired. Use el_TestAcq to wait for acquisition complete. Image sequence acquisition: An image sequence is defined with el_InitHW or el_NewMemBuffer if a FrameCount greater than '1' was supplied. Then the following behavior can be expected with el_Acquire : EL_LIVE starts an endless sequence acquisition (ring buffer acquisition). In such a case the number of the current frame can be inquired with el_TestFrameCount . The end of each frame/field acquired can be inquired with el_TestFrame without stopping the acquisition. EL_SNAP acquires exactly one sequence ( number of frames acquired is equal to FrameCount ). Use el_TestFrameCount to detect the acquisition of a frame inside a sequence or el_TestAcq to wait for the whole sequence to complete. See also: Sequences Acquisition and external trigger: If an external trigger is supplied to control the acquisition, the video hardware should be switched to live mode (call el_Acquire with parameter mode set to EL_LIVE). In case of single-buffer acquisition each trigger pulse causes the hardware to acquire exactly one frame/field. In case of sequence acquisition 131 each trigger causes the hardware to acquire one frame of the sequence. If you call el_Acquire with mode set to EL_SNAP, the first following pulse causes an acquisition. Every following pulse has no effect. Therefore, EL_SNAP can be used to disable external trigger acquisition temporarily. EL_ABORT can be used to disable image acquisition imediately. CAVEATS: el_Acquire returns immediately. Therefore, el_TestAcq has to be used to determine the end of an acquisition. There are several other options to inquire the status of an acquisition. Refer to the descriptions of the different el_Test functions supplied in the on-line help. If live mode is selected and image processing as well as display is active during acquisition, the PCI bus bandwidth may be exceeded, which can be seen from a rolling picture . EXAMPLE : see el_OpenHW SEE ALSO: EL_ACQUISITIONMODE, el_OpenHW , el_NewMemBuffer 5.2.3. el_AcquireEx long el_AquireEx (long BoardId, EL_ACQUISITIONMODE Mode, long *pChannels, long *pStart, long *pLength, long NoOfChan, long Reserved); Starts acquisition for a single frame/field (snap) or for continuous (live) acquisition PARAMETERS: BoardId : board ID returned by el_OpenHW Mode: • live: EL_LIVE • snap: EL_SNAP • or be aborted: EL_ABORT pChannels: is intended to select specific channles, not used at the moment set to 0 pStart: array with index of start frame, for each channel pLength: array with length of each sub sequence, for each channel NoOfChan: length of arrays used before, 4 for most grabbers, 1 for p3i_MONO Reserved: set to 0 RETURN VALUE: 0 if OK -1 if ERROR See el_GetErrorCode for details. DESCRIPTION: This function is an extended version of el_Acquire . for a geneal description have a look there. 132 Chapter 5. Programmers Reference el_AcquireEx is used to start an aquisiton on the given chanels filling just a part of the originally allocated sequence(s). The start positions for each channel have to be stored in the pStart array. The length of the sequences in the pLength array. Future versions of the software might use the pChannels array to select special DMA channels. At the moment a 0 pointer has to be used for pChannels and all channels are set up by the function. So NoOfChan has to be ser to 1 for p3i_MONO and to 4 for all other grabbers. It is possible to assign one buffer to more than one channel. If one buffer withe the sequence length SEQ_LEN has been assigned to all DMA channels the example below would fill the first quater of the buffer with data from the first camera, the second quater with dater from the second camera and so on. An overlapping of subsequences in one buffer is not allowed and can lead to unpredictable effects. EXAMPLE : #define CHNO 4 // number of channels long pStart[CHNO]; pStart[0] = 0; pStart[1] = 2 * SEQ_LEN/4; pStart[2] = 3 * SEQ_LEN/4; pStart[3] = 4 * SEQ_LEN/4; long pLength[CHNO]; pLength[0] = SEQ_LEN/4; pLength[1] = SEQ_LEN/4; pLength[2] = SEQ_LEN/4; pLength[3] = SEQ_LEN/4; el_AcquireEx(BoardId, EL_SNAP, 0, pStart, pLength, CHNO, 0); SEE ALSO: el_Acquire 5.2.4. el_AssignBuffer void ** el_AssignBuffer ( long BoardId, long ChannelNumber, long BufferNo, double ScaleX, double ScaleY, long Reserved1, long Reserved2 ); Assigns a memory buffer to a DMA channel. The scaling factors are fixed to 1.0 . PARAMETERS: BoardId : board ID returned by el_OpenHW ChannelNumber : DMA channel (0,1,2,3) BufferNo :Buffer number returned by el_CreateMemBuffer ScaleX : Scaling factor X-size 1.0 ScaleY : Scaling factor Y-size 1.0 Reserved1 : reserved for future use Reserved2 : reserved for future use 133 Chapter 5. Programmers Reference RETURN VALUE: Pointer to pointer array if OK 0 if ERROR. See el_GetErrorCode for details. Description: Scaling factors are fixed to 1.0 and depending on the packing mode (see el_SetPackingMode ) up to 4 channels are available. el_AssignBuffer can also be used to get the memory pointer of a buffer assigned to a DMA channel. Get the buffer ID with el_GetSetting (BoardIf, EL_BUFFERID, CannelNumber) and reassign the buffer using this Id with el_AssignBuffer . The return value is the desired pointer. If you assign a buffer that is used at the moment to an other channel make sure to disconnect it first. This is done by calling el_AssignBuffer with the old cannel number and BufferNo=0. Otherwise the old and the new channel acquire into the same buffer which leads to corrupt images. Only with " Dual Mode " cameras and with buffers that were created with EL_ACQUISITIONFORMAT = EL_DUAL acquiring with two channts into one buffer leads to correct images. p3i_MONO: Only channel 0 is availabe. In a later software release packing mode EL_PACKER_MONO_5_6_5 will be available. In this case channel 0 is used to strore a pseudo 5-6-5 RGB image and channel 2 is used to store the image data as B/W image. SEE ALSO: el_CreateMemBuffer EXAMPLE: Allocate four buffers, each one for the channels for p3i_QUADRO // // in our sample we will suppose only one frame sequence // nSequenceLength = 1; // // free all buffer before allocating new // long BuffId; for(int i=0; i<4; i++) { NewBuffIds[i]=0; } for( i=0; i<4; i++) { // get buffer ID assigned to channel i BuffId=el_GetSetting(nBoardID, EL_BUFFERID, i); // delete buffer if(BuffId >0) el_FreeMemBuffer(0,BuffId); } // // Allocate four buffers, each one for the channels for p3i_QUADRO // ppVideoMemory_0 = el_InitHW( nBoardID, NULL, nSizeX, nSizeY, nSequenceLength , 0, &NewBuffIds[0]); if (ppVideoMemory_0 < 0 ) { ReportError( "el_InitHW" ); return; } el_AssignBuffer(nBoardID,0, NewBuffIds[0], 1.0, 1.0, 0, 0); 134 ppVideoMemory_1 = el_CreateMemBuffer(nBoardID, 0, nSizeX, nSizeY, (long *) &nSequenceLength, 0, EL_PACKER_Y, EL_INTERLACE, &NewBuffIds[1]); if (ppVideoMemory_1 < 0 ) { ReportError( "el_CreateMemBuffer" ); return; } el_AssignBuffer(nBoardID,1, NewBuffIds[1], 1.0, 1.0, 0, 0); ppVideoMemory_2 = el_CreateMemBuffer(nBoardID, 0, nSizeX, nSizeY, (long *) &nSequenceLength, 0, if (ppVideoMemory_2 < 0 ) { ReportError( "el_CreateMemBuffer" ); return; } el_AssignBuffer(nBoardID,2, NewBuffIds[2], 1.0, 1.0, 0, 0); ppVideoMemory_3 = el_CreateMemBuffer(nBoardID, 0, nSizeX, nSizeY, (long *) &nSequenceLength, 0, if (ppVideoMemory_3 < 0 ) { ReportError( "el_CreateMemBuffer" ); return; } el_AssignBuffer(nBoardID,3, NewBuffIds[3], 1.0, 1.0, 0, 0); for p3i_MONO allocate 4 buffers and switch the input channel ppVideoMemory_0 = el_InitHW( nBoardID, NULL, nSizeX, nSizeY, nSequenceLength , 0, &NewBuffIds[0]); if (ppVideoMemory_0 < 0 ) { ReportError( "el_InitHW" ); return; } ppVideoMemory_1 = el_CreateMemBuffer(nBoardID, 0, nSizeX, nSizeY,(long *) &nSequenceLength, 0, EL_PACKER_Y, EL_INTERLACE, &NewBuffIds[1]); if (ppVideoMemory_1 < 0 ) { ReportError( "el_CreateMemBuffer" ); return; } ppVideoMemory_2 = el_CreateMemBuffer(nBoardID, 0, nSizeX, nSizeY,(long *) &nSequenceLength, 0, EL_PACKER_Y, EL_INTERLACE, &NewBuffIds[2]); if (ppVideoMemory_1 < 0 ) { ReportError( "el_CreateMemBuffer" ); return; } ppVideoMemory_3 = el_CreateMemBuffer(nBoardID, 0, nSizeX, nSizeY, (long *) &nSequenceLength, 0, EL_PACKER_Y, EL_INTERLACE, &NewBuffIds[3]); if (ppVideoMemory_1 < 0 ) { ReportError( "el_CreateMemBuffer" ); return; } el_AssignBuffer(nBoardID,0, NewBuffIds[0], 1.0, 1.0, 0, 0); nRc = el_SetInputMux(m_nBoardID, EL_INPUT_R_A, EL_ADCBW0, 0); nRc = SnapAndWait(); 135 el_AssignBuffer(nBoardID,0, NewBuffIds[1], 1.0, 1.0, 0, 0); nRc = el_SetInputMux(m_nBoardID, EL_INPUT_G_A, EL_ADCBW0, 0); nRc = SnapAndWait(); el_AssignBuffer(nBoardID,0, NewBuffIds[2], 1.0, 1.0, 0, 0); nRc = el_SetInputMux(m_nBoardID, EL_INPUT_R_A, EL_ADCBW0, 0); nRc = SnapAndWait(); el_AssignBuffer(nBoardID,0, NewBuffIds[3], 1.0, 1.0, 0, 0); nRc = el_SetInputMux(m_nBoardID, EL_INPUT_G_A, EL_ADCBW0, 0); nRc = SnapAndWait(); 5.2.5. el_CloseHW long el_CloseHW ( long BoardId, long Mode ); Switches hardware back to idle state: Acquisition and DMA stopped. Releases allocated memory. Context becomes invalid. Parameter 'Mode' not implemented. PARAMETERS: BoardId : board ID returned by el_OpenHW long Mode : not implemented RETURN VALUE: 0 if OK -1 if ERROR See el_GetErrorCode for details. SEE ALSO: el_InitHW 5.2.6. el_CreateMemBuffer void ** el_CreateMemBuffer ( long BoardId, void** ppMemStart, long SizeX, long SizeY, long *pFrameCount, long Pitch, long PackingMode, long MemForm, long* pBufferNo ); Similar to el_NewMemBuffer the routine allocates image memory. Use el_AssignBuffer to assign the buffer to a DMA channel. PARAMETERS: BoardId : board ID returned by el_OpenHW ppMemStart : Pointer to array of pointers to picture buffers. NULL pointer terminates array. Only used if user allocated memory should be locked. SizeX: hor. size of frame buffers SizeY: vert. size of frame buffers pFrameCount: pointer to a long variable holding the number of frames allocated. If there is not enough memory to allocate all frames, the number of frames that could be allocated is returned 136 Chapter 5. Programmers Reference Pitch: hor. pixel offset between subsequent video lines PackingMode: Packing mode for this buffer. See el_SetPackingMode MemForm: The memory format (EL_INTERLACE or EL_NONINTERLACE) pBuffNo: Pointer to frame buffer identifier RETURN VALUE: pointer to memory array if OK 0 if ERROR See el_GetErrorCode for details. SEE ALSO: el_NewMemBuffer , el_FreeMemBuffer , el_AssignBuffer EXAMPLE: see el_AssignBuffer 5.2.7. el_EnableExternalTrigger long el_EnableExternalTrigger ( long BoardId, long CamSel, long On ); Enables the use of an external trigger for B/W or RGB cameras. In this mode the camera runs free and an external high level signal enables the acquisition. This mode is not available for cameras that run in restart/reset mode. PARAMETERS: BoardId : board ID returned by el_OpenHW CamSel : not used, set to 0 On : flag to switch on or off RETURN VALUE: 0 if OK -1 if ERROR. See el_GetErrorCode for details. SEE ALSO: el_EnableExtPixelClock 5.2.8. el_EnableExtPixelClock long el_EnableExtPixelClock ( long BoardId, long CamSel, long Value, long Value ); Enables the use of an external sampling clock for B/W and RGB cameras. Value should be as near as possible to frequency of the clock supplied to the grabber. PARAMETERS: BoardId : board ID returned by el_OpenHW CamSel : not used, set to 0 137 Chapter 5. Programmers Reference Value : frequence of camera clock in Hz On : flag to switch on or off RETURN VALUE: 0 if OK -1 if ERROR. See el_GetErrorCode for details. SEE ALSO: el_GetSelectedCamera 5.2.9. el_EnableSyncGenerator long el_EnableSyncGenerator ( long BoardId, long Select, long On ); Enables the on-board video sync generator. PARAMETERS: BoardId : board ID returned by el_OpenHW Select : not used set to 0 On : enable/disable SyncGenerator RETURN VALUE: 0 if OK -1 if ERROR. See el_GetErrorCode for details. The sync signals of the grabber have to be transmitted to the camera by setting jupers or by apporpriate cabling. Refer to the general camera descrption part of this documentation for details. 5.2.10. el_FreeMemBuffer long el_FreeMemBuffer ( void** MemStart, long BufferNo ); This function releases the previously allocated buffers so that the memory is available for the system again. PARAMETERS: MemStart: set to NULL or Pointer to array of pointers to picture buffers. NULL pointer terminates array. BufferNo : identifer of buffer to be freed RETURN VALUE: 0 if OK -1 if ERROR. See el_GetErrorCode for details. 138 CAVEATS: 'BufferNo' specifies the buffer or sequence to be released. If user allocated memory has been used set MemStart to the array used for the allocation of the memory. 5.2.11. el_GetBoardIdentifiers long el_GetBoardIdentifiers ( EL_BOARD_IDENTIFIER *pArray, long StructSize, long ArrayLength, long *pNumOfBoards ); Fills the EL_BOARD_IDENTIFIER with informations about the installed grabber boards. At the moment a name the hex switch setting and a sub id is returned. For sub IDs > 0 el_OpenHWEx has to be used to open the virtual grabber . PARAMETERS: pArray : user array of EL_BOARD_IDENTIFIER stuctures StructSize : size of a single array element ArrayLength : number of array elements *pNumOfBoards : long pointer to return number of grabbers RETURN VALUE: number of bytes copied in each array element if OK -1 if ERROR. See el_GetErrorCode for details. CAVEATS: If the number of bytes is less than the actual structure size of EL_BOARD_IDENTIFIER an older Dll has been used, in which the structure had less elements. In this case the unknown structure elements remain uninitialised. SEE ALSO: EL_BOARD_IDENTIFIER long BoardCount; EL_BOARD_IDENTIFIER IdList[16]; long ByCount=el_GetBoardIdentifiers(IdList, sizeof(EL_BOARD_IDENTIFIER), 16, &BoardCount); if(ByCount > 0) printf("%ld boards found",BoardCount); if( sizeof(EL_BOARD_IDENTIFIER) > ByCount) printf("old Dll, only first %ld bytes of structure were set up",ByCount); 5.2.12. el_GetDriverRevision char * el_GetDriverRevision ( long *Release, long *Revision ); Inquires revision of the grabbers hardware driver. Release : Pointer to long with release Revision : Pointer to long with revision 139 RETURN VALUE: pointer to revision string if OK or NULL if error. See el_GetErrorCode for details. EXAMPLE: long hwrevlo, hwrevhi, swrevhi, swrevlo, drrevhi, drrevlo; el_GetHWRevision( BoardId, &hwrevhi, &hwrevlo ); el_GetSWRevision( &swrevhi, &swrevlo ); el_GetDriverRevision( &drrevhi, &drrevlo ); 5.2.13. el_GetErrorCode long el_GetErrorCode ( void ); DESCRIPTION: Inquire error. RETURN VALUE: The Error Number SEE ALSO: Error Codes 5.2.14. el_GetErrorCodeEx long el_GetErrorCodeEx ( char *pszBuffer, long lnLen, long nLanguage ); DESCRIPTION: Inquire error description string. pszBuffer: Buffer to be filled with error description string. lnLen: Length of the buffer that should be filled. nLanguage: Language of description. Not used yet, set to 0. RETURN VALUE: The Error Number Fills the buffer with a string that gives a short error description and informs where in the library the error occured . SEE ALSO: Error Codes 5.2.15. el_GetHWRevision char * el_GetHWRevision ( long BoardId, long *High, long *Low ); Inquires hardware revision of the video hardware. 140 Chapter 5. Programmers Reference PARAMETERS: BoardId : board ID returned by el_OpenHW High : Pointer to long with high part of revision Low : Pointer to long with low part of revision RETURN VALUE: pointer to revision string if OK or NULL if error. See el_GetErrorCode for details. EXAMPLE: long hwrevlo, hwrevhi, swrevhi, swrevlo, drrevhi, drrevlo; el_GetHWRevision( BoardId, &hwrevhi, &hwrevlo ); el_GetSWRevision( &swrevhi, &swrevlo ); el_GetDriverRevision( &drrevhi, &drrevlo ); 5.2.16. el_GetNumOfBoards long el_GetNumOfBoards ( void, ); Inquires number of installed boards that can be accessed with the software used. This function can be called prior to any other API function to indicate the number of boards available. RETURN VALUE: Number of boards number of boards found or '-1' if ERROR. See el_GetErrorCode for details. CAVEATS: Be sure to use different board selects for each frame grabber board available in the computer. Otherwise el_GetNumOfBoards returns an error. Please refer to the hardware help how to set the board select. SEE ALSO: el_OpenHW 5.2.17. el_GetScriptPara long el_GetScriptPara ( long BoardId, EL_SCRIPT_PARA *Para, long StructLen, long ArrayLen ); DESCRIPTION: for cameras like restart cameras the grabber has to generate a camera specific timing. For some of these cameras, the user can influence some timing prameters (e.g. exposure time) with one or more parameters. This function reads the current values, the parameter descriptions and the minimum and maximum values. PARAMETERS: BoardId : board ID returned by el_OpenHW 141 Chapter 5. Programmers Reference Para : parameter array Len : length of the array RETURN VALUE: 0 at the moment, further releases return the number of bytes copied into the structure if OK -1 if ERROR. See el_GetErrorCode for details. The meaning of these parameters is highly camera dependent. Please have a look at the camera descriptions in Appendix A . EXAMPLE: EL_SCRIPT_PARA pTimingPar[3]; el_GetScriptPara(wBoardId, pTimingPar, sizeof EL_SCRIPT_PARA, 3); // // // // BoardID pointer to timing parameter array size of triming parameter structure number of array elements for(i=0; i < 3; i++) { printf("Timing Parameter%d:\n",i); if(pTimingPar[i].description[0] == 0) { printf("not used\n"); } else { printf("Description: %s\n",pTimingPar[i].description); printf("Value : %d\n",pTimingPar[i].value); printf("Min Value : %d\n",pTimingPar[i].min); printf("Max Value : %d\n",pTimingPar[i].max); } } SEE ALSO: el_SetScriptPara , EL_SCRIPT_PARA 5.2.18. el_GetSelectedCamera long el_GetSelectedCamera ( long BoardId, char *Buffer, long BufferLen ); DESCRIPTION: Gets the current camera name. PARAMETERS: BoardId : board ID returned by el_OpenHW Buffer : Buffer for the camera name BufferLen : length of the buffer RETURN VALUE: 0 if OK 142 -1 if ERROR. See el_GetErrorCode for details. SEE ALSO: el_SelectCamera 5.2.19. el_GetSetting long el_GetSetting ( long BoardId, EL_FGITEM Item, long Select ); PARAMETERS: BoardId : board ID returned by el_OpenHW Item : Constant selecting item to get Select : if the 'Item' is used for several (hardware) units, 'Select' distinguishes between them. Otherwise 0. DESCRIPTION: Returns the context value selected with Item. Virtually all context settings can be inquired with this function - also minimum and maximum values, such as for acquisition size. Possible values for Item see EL_FGITEM and the el_... defines. If the values of independent hardware units (e.g. ADCs) should be inquired the parameter 'Select' determines which value is read. Typical values for 'Select' are 0..4 or the defines used to setup the hardware unit (e.g. EL_ADCBW1 for the second ADC). RETURN VALUE: value of item selected if OK -1 if ERROR. See el_GetErrorCode for details. SEE ALSO: EL_FGITEM EXAMPLE: maxxwid = el_GetSetting (BoardId, EL_MAXACQSIZEX, 0)); if( maxxwid == -1 ) { bErrorOnGetSetting = TRUE; } 5.2.20. el_GetSupportedCamFeaturesEx long el_GetSupportedCamFeaturesEx ( long BoardId, long Cam, EL_CAMFEATURES *Feature, long StructSize ); PARAMETERS: BoardId : board ID returned by el_OpenHW Cam : formerly used Camera identifier, now used for mode selection Feature : Camfeature Structure StructSize : Size of Camfeature Structure DESCRIPTION: Fills camera feature structure 'Feature' for selected camera. The feature list contains all features of the selected camera supported with the current software release of the ELTEC Elektronik AG API. Retrieves only cameras supported by the hardware used. 143 Because in the new software releases the camera is only selected by name, the parameter has changed its meaning: Value GETFIRSTCAMFEATURE: retrieves the first camera in the list. Value GETNEXTCAMFEATURE: retrieves the next camera in the list. GETFEATURESBYNAME: searches for a camera which name was placed in the 'info' prarmeter of the 'Feature' structure RETURN VALUE: 0 at the moment, further releases return the number of bytes copied into the structure if OK -1 if ERROR. See el_GetErrorCode for details. 5.2.21. el_GetSWRevision char * el_GetSWRevision ( long *Release, long *Release ); PARAMETERS: BoardId : board ID returned by el_OpenHW Release : Pointer to long with release Revision : Pointer to long with revision DESCRIPTION: Inquires software revision of the API library. RETURN VALUE: pointer to revision string if OK NULL if ERROR. See el_GetErrorCode for details. EXAMPLE: long hwrevlo, hwrevhi, swrevhi, swrevlo, drrevhi, drrevlo; el_GetHWRevision( BoardId, &hwrevhi, &hwrevlo ); el_GetSWRevision( &swrevhi, &swrevlo ); el_GetDriverRevision( &drrevhi, &drrevlo );--> 5.2.22. el_InitContext long el_InitContext ( long BoardId, char *Filename ); PARAMETERS: BoardId : board ID returned by el_OpenHW Filename : name of parameter file with path name DESCRIPTION: Initializes internal software structures with data read from a setup file. This data will be used to initialize the video hardware by el_InitHW() later. 144 Chapter 5. Programmers Reference RETURN VALUE: 0 if OK -1 if ERROR. See el_GetErrorCode for details. DESCRIPTION: If Filename is NULL,the following default data will prepared for initialization: CCIR camera timing, interlace If the file specified with Filename is not found or can't be opened a error is returned. CAVEATS: No setup of hardware is done. This function sets up the software parameter structure only. SEE ALSO: el_InitHW 5.2.23. el_InitHW void** el_InitHW ( long BoardId, void** MemStart, long SizeX, long SizeY, long FrameCount, long Pitch, long *BuffNo ); PARAMETERS: BoardId : board ID returned by el_OpenHW MemStart : Pointer to array of pointers to picture buffers, NULL pointer terminates array. SizeX : hor. size of frame buffers SizeY : vert. size of frame buffers FrameCount : number of frames allocated Pitch : hor. pixel offset in pixel between subsequent video lines BuffNo : Pointer to frame buffer identifier DESCRIPTION: Initializes the video hardware with parameters prepared with el_InitContext(). RETURN VALUE: Pointer to image pointer array if OK 0 if ERROR. See el_GetErrorCode for details. Library defined Image Memory Buffers: If MemStart is NULL el_InitHW allocates the necessary memory for the requested picture (frame) buffers. FrameCount specifies the number of buffers in a sequence. If FrameCount is 0, the value for the frame 145 Chapter 5. Programmers Reference count is determined by the setupfile used with el_InitContext. el_InitHW allocates as much frame buffers as specified with FrameCount. The pointers to these frame buffers are stored in an array allocated by el_InitHW . A pointer to this array is returned if enough memory for frame buffers is available. See also: Sequences It is not allowed to modify the values in this array, because it is used every time the buffer is reselected. Please make a copy of this array and use the entries of the copy to access the image. Each pointer of the array points to a contiguous image frame buffer. This ensures that you can read and write image data from any location in the image just by modifying the supplied pointers (or the copies). Pitch specifies the offset in pixel between the start locations of two following lines in an image. If Pitch is set to 0, the width of the image is used as pitch (on HiPerCam1 Pitch is always equal to SizeX). Every change of the image width (e.g. by calling el_SetAcqWindow ) will change the pitch too, if the buffer was created with the Pitch parameter set to 0. Otherwise it is fixed to the specified value. User defined Image Memory Buffers: User defined image memory buffers can be used by the library for image acquisition under the following conditions: If MemStart is not NULL it is expected that MemStart points to an array of valid image buffer pointers. The supplied pointer array must be NULL terminated. Furthermore it is expected that SizeX and SizeY are not 0 and specify the X/Y dimension of each image buffer allocated by the user. In this case el_InitHW does not allocate image memory it uses the supplied image buffers. The size of the current acquisition window is adapted to the supplied SizeX/SizeY values to make the image data fit into the supplied memory buffers. FrameCount specifies the number of buffers in a sequence. If FrameCount is 0/1 only a single buffer is used for image acquisition. Pitch specifies the offset in pixel between the start locations of two following lines of an image. Pitch must supply the value (horizontal X dimension) used to allocate the image memory buffer. With user defined image buffers the Pitch is fixed to the specified value, e.g. a call to el_SetAcqWindow will not change the Pitch. The image buffer pointers supplied with MemStart are returned by el_InitHW() for compatibility reasons. Identification of Image Memory Buffers: If more than one sequence is defined the returned value in *BuffNo can be used by el_NewMemBuffer to switch between sequences already allocated. If only one sequence is used, BuffNo can be set to NULL (WARNING NULL can not be used with current software release). In this case no identifier is assigned for the buffer. CAVEATS: When the function is called, all frame buffers created before are invalid, and a new buffer or sequence is created depending on the parameters of the function. Single buffers and sequences can be freed by the function el_FreeMemBuffer . User defined image memory: To use user defined image memory together with el_InitHW some conditions have to mentioned: If image memory is allocated with malloc() or with user specific allocation routines the start address of each image buffer passed to el_InitHW must be page (on HiPerCam1 0x20000) aligned otherwise el_InitHW will return with error. To request page aligned memory, please use one of the following methods: 146 The function VirtualAlloc() reserves or commits a region of memory in the virtual address space of your application. Memory allocated with VirtualAlloc() can not be exported to other applications. To use memory mapped files as shared memory for multiple applications use the functions CreateFileMapping() and MapViewOfFiles(). For detailed information, please refer to the function description within the Windows SDK.Allocating Image Memory SEE ALSO: el_NewMemBuffer , el_FreeMemBuffer EXAMPLE: // Initialize buffers with default sizes. if((vidbufpoi = el_InitHW (BoardId, NULL, 0, 0, 0, 0, 0)) == NULL){ sprintf( str, "Initializing video hardware. (err-no: %d)", el_GetErrorCode() ); MessageBox( NULL, str, "Error", MB_OK ); /* Windows only */ bErrorOnHardwareInit = TRUE; } 5.2.24. el_NewMemBuffer void** el_NewMemBuffer ( long BoardId, void** MemStart, long SizeX, long SizeY, long FrameCount, long Pitch, long *BuffNo ); PARAMETERS: BoardId : board ID returned by el_OpenHW MemStart : Pointer to array of pointers to picture buffers. NULL pointer terminates array. SizeX : hor. size of frame buffers SizeY : vert. size of frame buffers FrameCount : number of frames allocated Pitch : hor. pixel offset between subsequent video lines BuffNo : Pointer to frame buffer identifier DESCRIPTION: Activates and/or allocates memory buffer for acquisition. RETURN VALUE: Pointer to pointer array if OK . 0 if ERROR. See el_GetErrorCode for details. Library defined Image Memory Buffers: If MemStart is NULL el_NewMemBuffer() allocates the necessary memory for the requested picture (frame) buffers. The size of the frame buffers allocated and the size of the images acquired is specified with SizeX and SizeY. 147 FrameCount specifies the number of buffers in a sequence. If FrameCount is 0, the value for the frame count is determined by the setup file used with el_InitContext . el_NewMemBuffer allocates as much frame buffers as specified with FrameCount. The pointers to these frame buffers are stored in an array allocated by el_NewMemBuffer . A pointer to this array is returned if enough memory for frame buffers is available. See also: Sequences It is not allowed to modify the values in this array, because it is used constantly, the buffer is reselected. Please make a copy of this array (if auto-incrementing pointers are needed) and use the entries of the copy to access the image. Each pointer of the array points to a contiguous image frame buffer. This ensures that you can read and write image data from any location in the image just by modifying the pointers supplied. Pitch specifies the pixel offset between the start locations of two following lines in an image. If Pitch is set to 0, the width of the image is used as pitch (on HiPerCam1 Pitch is always equal to SizeX). Every change of the image width (e.g. by calling el_SetAcqWindow ) will change the pitch too, if the buffer was created with the Pitch parameter set to 0. Otherwise it is fixed to the specified value. User defined Image Memory Buffers: User defined image memory buffers can be used by the library for image acquisition under the following conditions: If MemStart is not NULL it is expected that MemStart points to an array of valid image buffer pointers. The supplied pointer array must be NULL terminated. Furthermore it is expected that SizeX and SizeY are not 0 and specify the X/Y dimension of each image buffer allocated by the user. Then el_NewMemBuffer does not allocate image memory it uses the supplied image buffers. The size of the current acquisition window is adapted to the supplied SizeX/SizeY values to make the image data fit into the supplied memory buffers. FrameCount specifies the number of buffers in a sequence. If FrameCount is 0/1 only a single buffer is used for image acquisition. Pitch specifies the offset between the start locations of two following lines in an image. Pitch must supply the value (horizontal X dimension) used to allocate the image memory buffer. With user defined image buffers the Pitch is fixed to the specified value, e.g. a call to el_SetAcqWindow will not change the Pitch. The image buffer pointers supplied with MemStart are returned by el_InitHW for compatibility reasons. Identification of Image Memory Buffers: If new memory buffers should be created by el_NewMemBuffer or if new user defined memory buffers are passed to el_NewMemBuffer the pointer used as parameter 'BuffNo' has to point to a long value initialised with 0. Then a new buffer or sequence is added and the identifier of the new buffer is placed in *BuffNo. If the pointer used for'BuffNo" points not to a 0 value the value is interpreted as a buffer handle and the function tries to switch to the specified buffer sequence. In this case no new buffer sequence is created. For a discussion of sequences used as swing buffers see Sequences CAVEATS: When the function is called a new buffer or sequence is created depending on the parameters of the function. Single buffers and sequences can be freed by the function el_FreeMemBuffer . User defined image memory To use user defined image memory together with el_NewMemBuffer() some conditions have to mentioned: If image memory is allocated with malloc() or with user specific allocation routines (on HiPerCam1 0x20000) the start address of each image buffer passed to el_NewMemBuffer must be page aligned 148 Chapter 5. Programmers Reference otherwise el_NewMemBuffer will return with error. Windows only: To request page aligned memory, please use one of the following methods: The function VirtualAlloc() reserves or commits a region of memory in the virtual address space of your application. Memory allocated with VirtualAlloc() can not be exported to other applications. To use memory mapped files as shared memory for multiple applications use the functions CreateFileMapping() and MapViewOfFiles(). For detailed information please refer to the function description within the Windows SDK. Allocating Image Memory SEE ALSO: el_InitHW 5.2.25. el_OpenHW long el_OpenHW ( long BoardSelect, long Mode ); Basic setup of selected video hardware - no initialization of video frontend. el_OpenHW returns an unique board ID for each video hardware. The board ID returned by this function will be needed for all subsequent calls of the library to access the corresponding video hardware. PARAMETERS: BoardSelect: board number Mode: force basic setup yes/no RETURN VALUE: Board ID of board initialized successfully -1 if ERROR. See el_GetErrorCode for details. DESCRIPTION: If the board specified with BoardSelect is not initialized yet, el_OpenHW() does the basic setup of the video hardware and returns an unique board ID. If the board specified withBoardSelect is already initialized, an error is returned. To force a basic setup of the video hardware, if it is initialized or not, the parameter Mode must be set to 1. Mode = 1 must only be used when it is made sure that no other application is using the same video hardware. CAVEATS: If a single board is used BoardSelect can be set to 0. With 0 the first board found on the bus is initialised. If you use multiple boards in one PC the BoardSelect supplied must be higher than 0 and correspond to the value set with the on-board hex switch of the grabber board. Otherwise you will get no board ID for the grabber hardware. For example: If the hex switch on the board is set to '8' BoardSelect must be equal '8' to get the board ID. Errors may occure if an invalid BoardSelect parameter or a software revision incompatible with the hardware revision is used. Other reasons are that ' el_OpenHW ' was called for the second time with Mode = 0 or that two or more grabber boards have the same hex switch value. 149 Chapter 5. Programmers Reference SEE ALSO: el_CloseHW , el_GetNumOfBoards EXAMPLE: // Open the hardware nBoardID = el_OpenHW( nHexSwitch, 0 ); if ( nBoardID < 0 ) { ReportError( "el_OpenHW" ); return FALSE; } // // Init context // char *pName = (szContextFile && szContextFile[0]) ? szContextFile : NULL; int nRc = el_InitContext( nBoardID, pName ); if (0 != nRc) { int nError = el_GetErrorCode(); return FALSE; } // // Allocate Frame-Buffers // long nDummy = 0; ppVideoMemory = el_InitHW( nBoardID, NULL, 0, 0, nSequenceLength, 0, &nDummy ); if ( !ppVideoMemory ) { nError = el_GetErrorCode(); return FALSE; } nRc = el_Acquire( nBoardID, EL_SNAP ); if ( 0 != nRc ) { nError = el_GetErrorCode(); return FALSE; } else { // Wait for Acquisition end nRc = el_WaitAcqEnd( nBoardID ); if ( 1 != nRc ) { nError = el_GetErrorCode(); return FALSE; } } // // Get settings // nSizeX = el_GetSetting(nBoardID, EL_ACQSIZEX, 0); nSizeY = el_GetSetting(nBoardID, EL_ACQSIZEY, 0); 5.2.26. el_OpenHWEx long el_OpenHWEx ( long BoardSelect, long Mode, char *pFirmWare, long SubId, long Reserved ); Extended version of el_OpenHW, which allows the selection of a special firmware version (not implemented yet). If a board with virtual grabber s is used these virtual grabber s can be opened using the SubId parameter. For the basic functionality please refer to el_OpenHW 150 PARAMETERS: BoardSelect: board number Mode: force basic setup yes/no pFirmWare: not used yet, sould allow to load a special firmware version SubId: only used on grabber with virtual grabber s to open them. Reserved: reseved for further use. Set to 0. RETURN VALUE: Board ID of board initialized successfully -1 if ERROR. See el_GetErrorCode for details. SEE ALSO: el_GetBoardIdentifiers EXAMPLE: long BoardId[16]; long LastHex=-1; int i; long BoardCount; EL_BOARD_IDENTIFIER IdList[16]; // get list of all installed boards long ByCount=el_GetBoardIdentifiers(IdList, sizeof(EL_BOARD_IDENTIFIER), 16, &BoardCount); // open all boards installed in the computer for(i=0; i< BoardCount; i++) { BoardId[i] = el_OpenHWEx( IdList[i].HexSwitch, 0,"",IdList[i].SubId,0 ); if(LastHex == IdList[i].HexSwitch) { if(LastHex == IdList[i-1].HexSwitch) { printf(" %s is a virtual sub grabber",IdList[i-1].Name); } printf(" %s is a virtual sub grabber",IdList[i].Name); } LastHex = IdList[i].HexSwitch; } 5.2.27. el_ResetOutputs long el_ResetOutputs ( long BoardId, long Value ); PARAMETERS: BoardId : board ID returned by el_OpenHW 151 Value : Output value DESCRIPTION: This function is used to reset available output lines on the hardware. Each bit of Value refers to an output line. Therefore, all bits set in Value reset the correspondent output line. RETURN VALUE: 0 if OK -1 if ERROR. See el_GetErrorCode for details. Valid bits are EL_CAMCTRL0 to EL_CAMCTRL3 which control the signals on X106 5.2.28. el_SelectCamera long el_SelectCamera ( long BoardId, char *CameraName ); PARAMETERS: BoardId : board ID returned by el_OpenHW CameraName : The camera name DESCRIPTION: Sets a camera defined in the camera file. RETURN VALUE: 0 if OK -1 if ERROR. See el_GetErrorCode for details. SEE ALSO: el_GetSelectedCamera EXAMPLE: // // Get camera name // szCameraName = new char [50]; nRc = el_GetSelectedCamera(nBoardID, szCameraName, 50); if (0 != nRc) { ReportError( "el_GetSelectedCamera" ); return; } 5.2.29. el_SetAcqMemFormat long el_SetAcqMemFormat ( long BoardId, EL_ACQUISITIONMODE Mode ); PARAMETERS: BoardId : board ID returned by el_OpenHW Format : acquisition format 152 Chapter 5. Programmers Reference DESCRIPTION: Sets the memory acquisition format, which is not necessarily identical with the camera format. RETURN VALUE: 0 if OK -1 if ERROR. See el_GetErrorCode for details. EL_NONINTERLACE stores each field coming from the camera to the same memory line addresses. Each field is stored to the lines 0, 1, 2, 3, ... within the allocated buffer. EL_INTERLACE is used for storing two-field frames. The first field is stored to the lines 0, 2, 4, ... and the second field to the lines 1, 3, 5, ... within the allocated buffer. The value EL_DUAL can be used for cameras like the Teli 3700 or Jai MV 10, which can transfer two frames simultanuously on two different video outputs. Please refer to the 'cameras.htm' file. EL_NONINTERLACE and EL_INTERLACE can also be used in an combination with _EVEN or _ODD. Acquisition formats with these endings wait for a special field to start the aquisition whereas the standard formats start with the next field coming from the camera. SEE ALSO: EL_ACQUISITIONFORMAT 5.2.30. el_SetAcqWindow long el_SetAcqWindow ( long BoardId, long StartX, long StartY, long SizeX, long SizeY ); PARAMETERS: BoardId : board ID returned by el_OpenHW StartX : hor. start of image StartY : vert. start of image SizeX : hor. size of image SizeY : vert. size of image DESCRIPTION: Sets acquisition window relative to camera image (video-timing) in units of pixels. The absolute start position within video timing is calculated internally by the DLL and depends on the camera type selected with el_SelectCamera . Therefore, the DLL makes the necessary post-settings for each camera to ajust the upper and the left margin. If StartX and StartY are set to '0', the acquisition window starts with the first valid upper left pixel of the camera. Therefore, the caller does not have to care about invalid pixels (black front porch) in the camera timing. RETURN VALUE: 0 if OK -1 if ERROR. See el_GetErrorCode for details. SizeX and SizeY specify the amount of pixels that should be acquired and transferred to the frame buffers allocated. If the allocated frame buffers are smaller than SizeX * SizeY, an error is returned. StartX + 153 Chapter 5. Programmers Reference SizeX resp. StartY + SizeY must not be smaller than the limits imposed by the camera. The maximum values for SizeX/SizeY can be inquired with el_GetSetting . If the acquisition memory format is set to interlace acquisition, all acquisition window parameters must be specified as frame-related values. If the acquisition memory format is set to non-interlace, the window parameters must be specified as field-related values. The hardware does not allow to set the window parameter in units of one pixel. Therefore, the values programmed can be inquired with el_GetSetting (EL_ACQSTARTX, EL_ACQSTARTY, EL_ACQSIZEX, EL_ACQSIZEY). SEE ALSO: el_SetAcqMemFormat EXAMPLE: el_SetAcqWindow( BoardId, StartX, StartY, SizeX, SizeY ); 5.2.31. el_SetInputMux long el_SetInputMux ( long BoardId, long CamSel, long AdcSel, long Reserved ); PARAMETERS: BoardId : board ID returned by el_OpenHW CamSel : Camera Input EL_INPUT_R_A to EL_INPUT_Y_B AdcSel : ADC converter to be used [EL_ADCBW0 - EL_ADCBW3] Reserve : not used set to 0 RETURN VALUE: 0 if OK -1 if ERROR. See el_GetErrorCode for details. p3i2: Connects one of the 8 inputs [EL_INPUT_R_A - EL_INPUT_Y_B] to one of the ADCs [EL_ADCBW0 - EL_ADCBW3] According to el_SetPackingMode the output of the ADCs in fed into an DMA channel whereas the sync signal is stripped from the input of the ADCs according to el_SetSyncInPort. Due to the structure of this video crossbar EL_ADCBW0 and EL_ADCBW2 can only be connected to the red and blue inputs (EL_INPUT_R... EL_INPUT_B...) whereas EL_ADCBW1 and EL_ADCBW3 can only be connected to the green and the additional luminance inputs (EL_INPUT_G... EL_INPUT_Y...). p3i_MONO: Because this board has only one ADC, the video cross bar has as different structure so that all inputs are useable. So EL_ADCBW0 can be connected to all inputs. 5.2.32. el_SetInputRefLevel long el_SetInputRefLevel ( long BoardId, long CamSel, long LevelLow, long LevelHigh ); PARAMETERS: 154 BoardId : board ID returned by el_OpenHW CamSel : selects color channel LevelLow : Reference level (black) in mV LevelHigh : Reference level (white) in mV DESCRIPTION: Sets ADC reference levels (black and white reference). RETURN VALUE: 0 if OK -1 if ERROR. See el_GetErrorCode for details. Dependent on the video board the parameter CamSel has the following meaning: Use the following defines for CamSel to specify the color/BW channels: EL_ADCRGB: set all channels to the specified bottom/top level EL_ADCRED/EL_ADCBW0: set only red channel/first ADC EL_ADCGREEN/EL_ADCBW1: set only green channel/second ADC EL_ADCBLUE/EL_ADCBW2: set only blue channel/third ADC EL_ADCBW3:/EL_ADCBW2: set fourth ADC LevelLow specifies the ADCs bottom reference level voltage. All video data below this voltage will be digitized as zero (black). LevelHigh specifies the ADCs top reference level voltage. All video data above this voltage will be digitized as 255 (white). The minimum and maximum ADC reference levels supported by the correspondent hardware can be inquired by el_GetSetting . Use the following defines to get the allowed ranges with el_GetSetting : EL_MINADCREFBOTTOM : minimum ADC bottom ref. level EL_MAXADCREFBOTTOM : maximum ADC bottom ref. level EL_MINADCREFTOP : minimum ADC top ref. level EL_MAXADCREFTOP : minimum ADC top ref. level Not all values specified by LevelLow and LevelHigh can be set by the hardware. Therefore, el_SetInputRefLevel will choose the nearest reference value for bottom and top that can be achieved. The actual settings can be inquired with el_GetSetting (use EL_ADCREFBOTTOM, EL_ADCREFTOP). 5.2.33. el_SetOutputs long el_SetOutputs ( long BoardId, long Value ); 155 PARAMETERS: BoardId : board ID returned by el_OpenHW Value : Output value DESCRIPTION: This function is used to set output lines, if available on the hardware. Each bit of Value refers to an output line. Therefore, all bits set in Value set the correspondent output line. RETURN VALUE: 0 if OK -1 if ERROR. See el_GetErrorCode for details. Valid bits are EL_CAMCTRL0 to EL_CAMCTRL3 corresponding to GPO 12 - GPO 15 on X106 5.2.34. el_SetPackingMode long el_SetPackingMode ( long BoardId, long Mode ); PARAMETERS: BoardId : board ID returned by el_OpenHW Mode : Selects the packing mode DESCRIPTION: Determines the format color data is stored in memory. Bits/pixel is the actual number of bits used in memory: 24-bit mode uses ¾ of a longword to conserve bandwidth and also to save memory. RETURN VALUE: 0 if OK or -1 for error. See el_GetErrorCode for details. Table 5.8. Packing Modes (ADC) Packing Modes ADC0 ADC1 ADC2 ADC3 EL_PACKER_Y stored in buffer 0 stored in buffer 1 stored in buffer 2 stored in buffer 3 EL_PACKER_NOP bit 0-7 buffer 0 bit 5-15 buffer bit 16-23 0 buffer 0 not used bit 24-31 in buffer 0 filled with 0 EL_PACKER_RGB lowest byte buffer 0 next byte buffer 0 not used EL_PACKER_RGBY bit 0-7 buffer 0 bit 8-15 buffer bit 16-23 0 buffer 0 bit 24-31 buffer 0 EL_PACKER_5_6_5 bit 0-4 buffer 0 bit 5-10 buffer bit 11-15 8 bit B/W pixel next byte buffer 0 156 Chapter 5. Programmers Reference 0 buffer 0 in buffer 1 EL_PACKER_5_5_5 bit 0-4 buffer 0 bit 5-9 buffer 0 bit 10-14 buffer 0 8 bit B/W pixel in buffer 1 EL_PACKER_MONO_5_6_5 16 bit pseudo RGB pixel in buffer 0 8 bit B/W pixel 8 bit B/W pixel in buffer 1 in buffer 2 EL_PACKER_MONO_5_5_5 15 bit pseudo RGB pixel in buffer 0 8 bit B/W pixel 8 bit B/W pixel in buffer 1 in buffer 2 CAVEATS: Switching packing modes takes some time since the DMA controller is initialized after every switch. SEE ALSO: EL_PIXELSIZE in EL_FGITEM 5.2.35. el_SetScriptPara long el_SetScriptPara ( long BoardId, long *Para, long Len ); PARAMETERS: BoardId : board ID returned by el_OpenHW Para : parameter array Len : length of the array DESCRIPTION: for cameras like restart cameras the grabber has to generate a camera specific timing. For some of these cameras, the user can influence some timing prameters (e.g. exposure time) with one or more parameters of the parameter array 'Para'. RETURN VALUE: 0 at the moment, further releases return the number of bytes copied into the structure if OK -1 if ERROR. See el_GetErrorCode for details. The meaning of these parameters is highly camera dependent. Please have a look at the camera description coming with the camera file. el_SetScriptPara sets new values for the current camera. EXAMPLE: long pPara[3]; pPara[0] = 123; pPara[1] = 467; pPara[2] = 890; el_SetScriptPara(wBoardId, pPara, 3); // BoardID // array of longs // number of elements 157 Chapter 5. Programmers Reference SEE ALSO: el_GetScriptPara 5.2.36. el_SetSyncInPort long el_SetSyncInPort ( long BoardId, long CamSel ); PARAMETERS: BoardId : board ID returned by el_OpenHW CamSel : selects camera DESCRIPTION: Selects camera port to be used for synchronization. This does not have to be the same port as the video input port; useful when synchronized cameras are employed. RETURN VALUE: 0 if OK -1 if ERROR. See el_GetErrorCode for details. Use the following defines for CamSel: For the p3i_MONO grabber this command has no effect. The sync source is identical to the video source. For the other grabbers this table can be used: EL_SYNC0 sync taken from input of ADCBW0 EL_SYNC1 sync taken from input of ADCBW1 EL_SYNC2 sync taken from input of ADCBW2 EL_SYNC3 sync taken from input of ADCBW3 use el_SetInputMux to determine which signal is is send to which ADC input. 5.2.37. el_SetVideoInPort long el_SetVideoInPort ( long BoardId, long CamSel ); CamSel : selects camera DESCRIPTION: CamSel selects the camera input port for acquisition. RETURN VALUE: 0 if OK -1 if ERROR. See el_GetErrorCode for details. Use the following defines for CamSel: 158 use of el_SetInputMux apreciated, only for compatibility reasons following mode have been implemented: EL_CAMIN0-EL_CAMIN03 or 0-7: connects the desired input(EL_INPUT_R_A - EL_INPUT_Y_B) to the first ADC. Only on p3i_MONO boards all inputs ar available. On all other grabbers only even values (EL_CAMIN0,EL_CAMIN2,4,6) are allowed EL_CAMRGB0: used for p3i_RGB: connects the 4 inputs on the first connector to the 4 ADCs. EL_CAMRGB1: used for p3i_RGB: connects the 4 inputs on the second connector to the 4 ADCs. 5.2.38. el_TestAcq long el_TestAcq ( long BoardId ); DESCRIPTION: Test if acquisition is active (on). This function can be used as a replacement for el_WaitAcqEnd if the programmer wants to check different other conditions or works on the image while he is waiting for the end of a acquisition e.g. useful in a multitasking environment. RETURN VALUE: 1 if aquisition is running 0 if aquisition is not running -1 if ERROR. See el_GetErrorCode for details. Single buffer acquisition A single snap was triggered with acquisition mode EL_SNAP. Then el_TestAcq() returns '0' after the frame was transferred into memory. During acquisition '1' is returned. Image sequence acquisition: A single sequence acquisition was triggered with acquisition mode EL_SNAP. Then el_TestAcq() returns '0' after the last frame of the sequence was transferred to memory. During sequence acquisition '1' is returned. Only p3i_ASYNC and p3i_ASYNC/PMC: Due to the four independent channles of the grabber each byte of the return value represents the state of one channel. e.g. (returnvalue >> 8) & 0xff represents the state of the second channel. CAVEATS: This function looks at the DMA transfer of data into data memory and not directly to the camera's frame timing. EXAMPLE // Acquire one frame el_Acquire (BoardId, EL_SNAP); do { ...; } while( el_TestAcq( BoardId ) || Timeout-- ); 159 5.2.39. el_TestField long el_TestField ( long BoardId ); DESCRIPTION: Test if a field is active. This function is used to test if a DMA transfer (an acquisition) is present at the moment. This is true if one of the two fields of an interlace frame is acquired. Therefore, el_TestField is able to determine each field during an interlace acquisition. If a non-interlace acquisition is present el_TestField returns '1' while a field is present. RETURN VALUE: '1', '2' during active field time for 1st and 2nd field '0' otherwise -1 if Error. See el_GetErrorCode for details. CAVEATS: This function looks at the DMA transfer of data into data memory and not directly to the camera's frame timing. This function can be used as a replacement for el_WaitFieldEnd if the programmer wants to check different other conditions while waiting for the end of a field (e.g. useful in a multitasking environment). Due to the four independent channles of the grabber each byte of the return value represents the state of one channel. e.g. (returnvalue >> 8) & 0xff represents the state of the second channel. 5.2.40. el_TestFrame long el_TestFrame ( long BoardId ); DESCRIPTION: Test if frame is active. This function is used to test if a DMA transfer (an acquisition) is present at the moment. This is true if one of the two fields of an interlace frame or the field of a non-interlace frame is acquired. el_TestFrame() ignores the VSYNC phase between the two fields of an interlaced frame. RETURN VALUE: 1 during active frame time 0 otherwise -1 if ERROR. See el_GetErrorCode for details. CAVEATS: This function looks at the DMA transfer of data into data memory and not directly to the camera#s frame timing. This function can be used as a replacement for el_WaitFrameEnd(), if the programmer wants to check different other conditions while waiting for the end of a frame (e.g. useful in a multitasking environment). Only p3i_ASYNC and p3i_ASYNC/PMC: Due to the four independent channles of the grabber each byte of the return value represents the state of one channel. e.g. (returnvalue >> 8) & 0xff represents the state of the second channel. 160 Chapter 5. Programmers Reference 5.2.41. el_TestFrameCount long el_TestFrameCount ( long BoardId ); DESCRIPTION: Returns contents of the frame-counter. el_TestFrameCount is used to determine the currently used acquisition buffer during a running sequence acquisition. It is ensured that the frame count returned specifies the frame which is present in memory. Consequently, el_TestFrameCount can be used to pick a single frame out of a big image sequence during acquisition easily. RETURN VALUE: modulo 255 of the number of the last completly acquired frame if OK -1 if Error. See el_GetErrorCode for details. CAVEATS: The counter is incremented by every transfered frame. After an el_Acquire command this 8 bit counter is set to 0. Immediately after the completion of the first image the counter value is increased to 1 and for every following image the value is increased until 255 has been reached. With the end of the following image the counter is reset to 0. Due to this behavior a sequence length equal to a power-of-two is recommended because then the actual image number can be obtained by a simple modulo operation. Only p3i_ASYNC and p3i_ASYNC/PMC: Due to the four independent channles of the grabber each byte of the return value represents the state of one channel. e.g. (returnvalue >> 8) & 0xff repesents the state of the second channel 5.2.42. el_TestVSync long el_TestVSync ( long BoardId ); DESCRIPTION: Returns status of VSYNC signal on active SYNC input channel. RETURN VALUE: Status of VSYNC signal if OK -1 if Error. See el_GetErrorCode for details. In contrast to the other grabbers the function reports the occurrence of a v-sync since the last call of the function. A typical use would be to call the functions once to clear a possibly latched sync and to wait for the next sync in a loop afterwards. Be aware that this behavior is not thread save. RETURN: Status of VSYNC signal; '-1': error return. 5.2.43. el_WaitAcqEnd long el_WaitAcqEnd ( long BoardId ); DESCRIPTION: Wait until acquisition is finished. 161 Chapter 5. Programmers Reference RETURN VALUE: 0 if OK -1 if ERROR. See el_GetErrorCode for details. Single buffer acquisition A single snap was triggered with acquisition mode EL_SNAP. Then el_WaitAcqEnd returns after the frame was transferred into memory. Image sequence acquisition: A single sequence acquisition was triggered with acquisition mode EL_SNAP. Then el_WaitAcqEnd returns after the last frame of the sequence was transferred to memory. See also: Sequences Only p3i_ASYNC and p3i_ASYNC/PMC: Due to the four independent channels of the grabber the function returns only if ALL acquisitions have ended. If a different behavior is needed build a loop using el_TestAcq . CAVEATS: This function looks at the end of the DMA transfer of data into data memory and not directly to the camera's frame timing. It returns only when the DMA transfer of frames is finished and the acquisition is stopped, or a time-out is reached. Therefore, this function can be used to determine the end of an acquisition triggered with el_Acquire . SEE ALSO: el_TestAcq EXAMPLE: // Acquire one frame/sequence el_Acquire (BoardId, EL_SNAP); // wait until frames are present in memory if( el_WaitAcqEnd( BoardId ) == -1 ) { if( el_GetErrorCode() == EL_E_ACQTIMEOUT ) { MessageBox (NULL, "No video input.", "Error", MB_OK); } } 162 5.2.44. el_WaitFieldEnd long el_WaitFieldEnd ( long BoardId ); DESCRIPTION: Waits until current video field is finished; i.e. the next vertical sync occurs. Function reserved - do not use in current implementation. Only p3i_ASYNC and p3i_ASYNC/PMC: Due to the four independent channels of the grabber the function is not usable. Instead the use of el_TestField is recommended. RETURN VALUE: 0 if OK -1 if ERROR. See el_GetErrorCode for details. 5.2.45. el_WaitFrameEnd long el_WaitFrameEnd ( long BoardId ); DESCRIPTION: Waits for frame end. RETURN VALUE: 0 if OK -1 if ERROR. See el_GetErrorCode for details. CAVEATS: This function waits for the end of image data transfer into the memory. Therefore, el_WaitFrameEnd does not wait directly for the camera's frame timing. It returns when the DMA transfer of the current frame is finished, or a time-out is reached. If video hardware is in live mode, this function can be used to determine the end of a current frame. Only p3i_ASYNC and p3i_ASYNC/PMC: Due to the four independent channels of the grabber the function returns only if ALL frames have ended. Using asynchronous cameras it is likely that as least one channel is acquiring a frame so the function would only return because of a timeout. To overcome this problem the use of el_TestFrame is recommended. SEE ALSO: el_TestFrame Example: // Switch to live acquisition CountFrames = 0; el_Acquire (BoardId, EL_LIVE); // count frames and do somthing while(CountFrames < 100){ if( el_WaitFrameEnd( BoardId ) == -1 ) if( el_GetErrorCode() == EL_E_ACQTIMEOUT ) { MessageBox (NULL, "No video input.", "Error", MB_OK); } else { 163 CountFrames++; // do something } } 5.2.46. el_WaitFrameStart long el_WaitFrameStart ( long BoardId ); DESCRIPTION: Wait for frame start. RETURN VALUE: 0 if OK -1 if ERROR. See el_GetErrorCode for details. CAVEATS: This function waits for the start of image data transfer into memory. Therefore, el_WaitFrameStart waits not directly for the camera's frame timing. It returns when the DMA transfer of the current frame is started, or a time-out is reached. If video hardware is in live mode, this function can be used to determine the start of a current frame acquisition. Only p3i_ASYNC and p3i_ASYNC/PMC: Due to the four independent channels of the grabber the function is not usable. Instead the use of el_TestFrame is recommended. SEE ALSO: el_TestFrame Example: // Start acquisition for a single frame/sequence el_Acquire (BoardId, EL_SNAP); // wait for start of DMA transfer into memory if( el_WaitFrameStart( BoardId ) == -1 ) { if( el_GetErrorCode() == EL_E_ACQTIMEOUT ) { MessageBox (NULL, "No video input.", "Error", MB_OK); } // Now start image processing algorithm on current image while // transferring it ! 5.2.47. el_WriteSetupFile long el_WriteSetupFile ( long BoardId, char* Filename, long Overwrite ); Filename : pointer to string with name of setup file and path Overwrite : '1' if file should be overwritten, '0' otherwise DESCRIPTION: Saves all current settings into a file. If the file specified with 'Filename' exists, it is not updated. Only if Overwrite is set to '1' the function can be forced to overwrite an existing file. If Overwrite is set to '0' and the file exists the function will return '-1' and the error code is set to EL_E_FILEEXIST. RETURN VALUE: 164 Chapter 5. Programmers Reference 0 if OK -1 if ERROR. See el_GetErrorCode for details. The setuptfile are not compatible for the different grabbers. Must be used before el_CloseHW . EXAMPLE: if ( el_WriteSetupFile(BoardId, Filename, 0 ) == -1) { if( el_GetErrorCode() == EL_E_FILEEXIST){ el_WriteSetupFile(BoardId, Filename, 1 ) } else { // e.g. wrong path specified or other I/O error } } 5.3. Defines 5.3.1. EL_ACQUISITIONFORMAT UDSED IN: el_SetAcqMemFormat , el_CreateMemBuffer Table 5.9. Acquisition format EL_NONINTERLACE non interlaced EL_INTERLACE interlaced EL_NONINTERLACE_ODD single field, only odd EL_INTERLACE_ODD interlaced starting with odd fields EL_NONINTERLACE_EVEN single field, only even EL_INTERLACE_EVEN interlaced starting with even fields EL_FORMAT4 reserved for future releases EL_FORMAT5 reserved for future releases EL_FORMAT6 reserved for future releases EL_FORMAT7 reserved for future releases EL_DUAL Dual mode for dual mode cameras * 5.3.2. EL_ACQUISITIONMODE UDSED IN: el_Acquire Table 5.10. Acquisitionmode EL_SNAP stop acquisition or acquisition of one frame EL_LIVE live acquisition EL_ABORT abort ongoing acquisition immediately 165 Chapter 5. Programmers Reference 5.3.3. Error codes Error and warning codes returned by el_GetErrorCode and el_GetErrorCodeEx Table 5.11. Warning codes EL_W_WRONGREVISIONCRC 4 Wrong CRC in hardware revision EEPROM EL_W_ACQWINDOWTOOBIG 3 Acquisition window too big for the camera selected; will be made smaller automatically EL_W_INLUTINDEXTOOBIG 2 The requested entry of the input look-up table does not exist. Valid values are 0..255. EL_W_HWALREADYOPENED 1 The hardware has been opened without subsequent close. This may indicate that another task uses the DLL already, which will lead to errors. The cause may also be, that the DLL was not closed properly by an aborted task which can be tolerated. Table 5.12. Unknown error codes EL_UNKNOWNERROR 0 Unknown error EL_E_WRONGBOARDSELECT -1 Board select parameter in function el_OpenHW invalid. EL_E_HWNOTOPENED -2 Hardware has not been opened - call 'el_OpenHW' prior to the offending call. EL_E_BIOSNOTCORRECT -3 PCI Bios may not be present. The BIOS call 'Find PCI Bios' did not return correct values. This call verifies no hardware access yet, it checks only that the BIOS can handle PCI functions and that it complies with PCI rev. 2.0. EL_E_NOPCEYEFOUND -4 No gabber board could not be found on PCI. This indicates that the PCI Bios of the computer is not capable of finding the grabber. Grabbers can be identified by the driver in a unique way ('Find PCI device' and software-readable signature string) Table 5.13. Error codes EL_E_PCEYESYSTEMMEMORY -5 EL_E_FRAMEBUFALLOC -6 Memory for the frame buffer in the requested size could not be allocated. Closing other applications may help. EL_E_CONTEXTNOTINIT -7 The driver-internal context structure must be initialized first by calling el_InitContext. 166 EL_E_HWNOTINIT -8 Call el_InitHW before using other functions. EL_E_PITCHTOOSMALL -9 The acquisition pitch is smaller than the horizontal image size. EL_E_MEMORYALLOC -10 Internal memory allocation failed. Closing other applications may help. EL_E_WRONGCAMERASELECT -11 An invalid camera input number (0..3) is given. EL_E_ACQWINDOWTOOBIG -12 The acquisition window is too big for the camera selected. May indicate not enough memory. See description of ' el_NewMemBuffer '. EL_E_WRONGBOARDID -13 No board with this ID is open. EL_E_ADCREFLEVELS -14 Invalid reference values for analog-to-digital converter given. EL_E_FILEOPEN -15 File not existing or otherwise not accessible. EL_E_FILEIO -16 Read or write error during file I/O. EL_E_FILECHECKSUM -17 Wrong checksum for setup parameter file. Parameter file corrupted. Write new file or restore backup file. EL_E_UNKNOWNSETUPVERSION -18 Version code in setup file wrong. Setup file may have been written with newer driver version. Write or use new setup file. EL_E_FRAMEBUFFREE -19 Attempt to free frame buffer failed. EL_E_FILEEXIST -20 Attempted to write existing file. EL_E_UNKNOWNACQMODE -21 A number for a non-existing acquisition mode is given. EL_E_FUNCNOTAVAILABLE -22 Not implemented yet or wrong function code. EL_E_ACQTIMEOUT -23 The driver waits a certain time (about 5 frame times) for the acquisition to finish. Normally, this error occurs when the camera is not connected or powered down. EL_E_INVALIDPARAMETER -24 Invalid function parameter supplied. EL_E_INVALIDPOINTER -25 Invalid pointer supplied. EL_E_WRONGPCEYE386REV -26 The driver DLL needs another program, a so-called VxD, to function properly. This program was found but has a revision not fitting with the current DLL. EL_E_UNKNOWNACQFORMAT -27 A number for a non-existing acquisition format is given. EL_E_READREVISIONINFO -28 The hardware revision info PROM on the grabber cannot be read. EL_E_WRONGBUFFERNO -29 A number for a non-existing buffer is given. EL_E_EXTCLKNOTSUPPORTED -30 This message is sent when hardware revision 0.x (1.A) is used with external camera clock. The external clock input is not supported for this hardware revision. Or this software does not support external clock for the current camera. EL_E_RESTARTNOTSUPPORTED -31 This message is sent when hardware revision 0.x (1.A) is used in restart mode. The external trigger input is not supported for this hardware revision. Or this software does not support restart for the 167 current camera. EL_E_SHUTTERNOTSUPPORTED -32 This message is sent when hardware revision 0.x (1.A) is used with shutter control. Or this software does not support shutter control for the current camera EL_E_INIPCIBASE1NOTSET -33 The grabbers I/O-mapped hardware address could not be set by the BIOS. EL_E_INIPCIEXP1NOTSET -34 The grabbers memory-mapped hardware address is set to a value equal 0. EL_E_BIOSFUNCTIONCALL -35 The Bios did not execute one of the following PCI Bios callsproperly (returned an error): 'Find PCI device', 'Write configuration word', 'Read configuration word'. The Bios call did finish without an error, but the address cannot be read back. May indicate that the boards does not sit firmly in its connector. EL_E_NOHARDWARESUPPORT -36 This special feature is not supported by the used hardware revision. EL_E_FRAMECOUNTTOOBIG -37 The value for framecount is greater than the max. possible value. EL_E_DATAFIFOOVERFLOW -38 The transfer of image data is corrupted. The last image transferred is not correct. EL_E_DEVICENOTPCEYE -39 The selected device is no supported framegrabber. EL_E_WRONGSELECT -40 The select is out of range. EL_E_VXD_NOT_PRESENT -41 The driver is not installed. Check installation. EL_E_BUFFER_TOO_LARGE -42 No longer valid EL_E_DEVICENOTPCEYE2 -43 The device is not a PCEYE2. EL_E_NO_MEMORY -44 Error allocating memory. EL_E_MULTIPLEBOARDID -45 Same hex switch setting for multiple identical grabbers. EL_E_WRONG_PIXEL_CLOCK -46 Wrong pixel clock. EL_E_UNSUPPORTEDCAMERA -47 Unsupported camera. EL_E_UNKNOWNCAMERA -48 Unknown camera. EL_E_WRONGADCSELECT -49 Wrong selection. EL_E_NOCELUT -50 No color encoding LUT installed. Table 5.14. Extended error codes EL_E_INVALIDSCALEFACTOR -97 scaling factor not supported EL_E_NOCAMERAFILE -98 camerafile "xxx.cam" not found in the directory of the dll. EL_E_IOTIMEOUT -99 a timeout during the internal grabber comunication has occured. EL_E_CANTMAPPOINTER -100 can not map an internal hardware address to a pointer. EL_E_IRQNOTIMPLEMENTED -300 IRQs are not implemented on this platform. 168 Chapter 5. Programmers Reference EL_E_IRQISENABLED -301 IRQ is enabled. EL_E_IRQNOTENABLED -302 IRQ is not enabled. EL_E_IRQNOTAVAILABLE -303 IRQs are not available, check correct driver load order. EL_E_IRQINVALIDEVENT -304 Invalid IRQ-event type, use one of 'EL_IRQ_...'. EL_E_IRQINVALIDBOOST -305 Invalid priority boost. EL_E_IRQOPENEVENT -306 Error opening event. EL_E_IRQINTERNALERROR -307 Internal error setting up IRQs. EL_E_WRONGTASKID -500 Internal errorcode EL_E_BUFFERNULLPTR -501 User defined buffer pointer is NULL. EL_E_WRONGBUFFERALIGN -502 User defined buffer has wrong DMA alignment. EL_E_WRONGPITCH -503 Pitch is wrong EL_E_WRONGFRAMESIZE -504 Framesize not supported by the sensor. EL_E_WRONGACQFORMAT -505 Acquisition format not supported by the sensor. EL_E_WRONGINTERRUPTMODE -506 selected interrupt mode unknown. SE ALSO el_GetErrorCode , el_GetErrorCodeEx 5.3.4. EL_FGITEM Virtually all context settings can be inquired with these arguments - also minimum and maximum values, such as for acquisition size. This struct can be used for inquiring the actual parameters of the video hardware. SEE ALSO: el_GetSetting Table 5.15. EL_FGITEM EL_ACQSIZEX size x of acquisition window EL_ACQSIZEY size y of acquisition window EL_ACQSTARTX start x of acquisition window relative to camera EL_ACQSTARTY start y of acquisition window relative to camera EL_MAXACQSIZEX max. acquisition size x of currently used camera EL_MAXACQSIZEY max. acquisition size y of currently used camera EL_VIDEOINPUTPORT values can not be inquired EL_MAXVIDEOINPUTPORTS maximum number of video inputs EL_SYNCINPUTPORT currently used sync input EL_MAXSYNCINPUTPORTS maximum numbers of sync inputs EL_ADCREFBOTTOM ADC bottom reference level currently used. Selec = EL_ADCBW0 ... EL_ADCBW3 EL_ADCREFTOP ADC top reference level currently used. Selec = EL_ADCBW0 ... EL_ADCBW3 EL_MINADCREFBOTTOM minimum ADC bottom reference level EL_MAXADCREFBOTTOM maximum ADC bottom reference level 169 Chapter 5. Programmers Reference EL_MINADCREFTOP minimum ADC top reference level L_MAXADCREFTOP maximum ADC top reference level EL_LIVEMODE HW in Live mode? (EL_ACQUISITIONMODE) EL_CAMERAFORMAT Camera is interlace/non-interlace - for enquiry only EL_EXTCLOCK External clock currently used EL_EXTTRIGGER External trigger currently used EL_MEMACQFORMAT Memory acquisition format (EL_ACQUISITIONFORMAT). Select used to choose between buffers connected to DMA channels 0-3. EL_PIXELSIZE Size of one pixel in bits; e.g. 8 bits for b/w images EL_MEMPIXELSIZE Size of one pixel in memory; eg. 16 bits for a 10 bits pixel. Select used to choose between buffers connected to DMA channels 0-3. EL_PACKINGMODE How the data is placed into memeory see also el_SetPacingMode. Select used to choose between buffers connected to DMA channels 0-3. EL_FRAMECOUNT number of frames in a sequence. Select used to choose between buffers connected to DMA channels 0-3. EL_FRAMEBUFPITCH pitch of the selected buffer see also el_NewMemBuffer. Select used to choose between buffers connected to DMA channels 0-3. EL_BUFFERID retrieves the buffer ID connected to an DMA buffer. Select used to choose between buffers connected to DMA channels 0-3. 5.4. Data Structures 5.4.1. EL_CAMFEATURES An entry of the camera feature list This structture can be used for inquiring the (maximum) parameters the grabbers supports for the specific camera. The actual settings can be inquired with el_GetSetting (...). el_GetCamFeatures() will initialize this structure, if the first entry (SpecialFeature.StructureSize) is set to sizeof (EL_CAMEXTENSIONS). If not, el_GetSupportedCamFeaturesEx will return the standard features. typedef struct { EL_CAMERATYPE Cam; /* Camera manufacture code */ char info[32]; /* Additional camera info */ long Interlace; /* Interlace(1)/Noninterlace(0) */ 170 long ExtClock; /* External clock in use = 1,internal = 0*/ double PixelClk; /* if ExtClock -> Pixel clock in MHz */ long Restart; /* use restart feature of camera */ double Rtime; /* specify min. time of restart pulse in us */ long Shutter; /* programmable camera shutter = 1 */ double Stime; /* specify min. shutter time in units of line durations, if possible */ long IntStartX, IntStartY, IntSizeX, IntSizeY; /* Acq. Window parameters for internal pixel clock */ long ExtStartX, ExtStartY, ExtSizeX, ExtSizeY; /* Acq. Window parameters for external pixel clock */ long ColourSystem; /* Color encoding Systems supported by Camera (only colour grabber) */ long OutputSignals; /* Color output signals delivered by Camera (only colour grabber) */ long AlignmentX; /* Pixel alignment X direction */ long AlignmentY; /* Pixel alignment Y direction */ long Reserved5; /* Reserved for further extensions */ long Reserved6; /* Reserved for further extensions */ } EL_CAMFEATURES; 5.4.2. EL_BOARD_IDENTIFIER USED IN: el_GetBoardIdentifiers used to retieve informations about the installed boards typedef struct { char Name[32]; // name of the board long HexSwitch; // hex switch setting of the board long SubId; // used to select sub grabbers if several virtual grabbers are hosted on one board } EL_BOARD_IDENTIFIER; 5.4.3. EL_SCRIPT_PARA USED IN: el_GetScriptPara The grabber has a so called sequencer on board, which is used for restart cameras. The configuration file of these cameras may contain some user parameters, which can be in your program. typedef struct { long value; // The current value (can be changed with el_SetScriptPara ) long min; // Minvalue long max; // Max value char description[32]; // Description of the parameter 171 } EL_SCRIPT_PARA; SEE ALSO: el_SetScriptPara 172 Chapter 6. Samples 6.1. Programming example This small programming example shows how to use the basic API functions to setup the grabber hardware for getting a snap shot from the camera into memory. The import library eleye516.lib (compiler dependent) has to be specified in your development tool. #include "elpceye5.h" #define IMAGE_WIDTH 560 #define IMAGE_HEIGHT 480 int main(int argc, char* argv[]) { long Err, nRet = 0; long wBoardID; long wBufID; void ** ppVideoMemory; // open the grabber wBoardID = el_OpenHW(0, 1); if( wBoardID < 0) { printf( "Errorcode:%d\n", el_GetErrorCode() ); return false; } // initialize with default values nRet = el_InitContext(wBoardID, NULL); if( nRet != 0) { printf( "Errorcode:%d\n", el_GetErrorCode() ); return false; } wBufID = 0; // initialize HW and allocate memory for the image ppVideoMemory = el_InitHW(wBoardID, NULL, IMAGE_WIDTH, IMAGE_HEIGHT, 1, 0, &wBufID); if ( !ppVideoMemory ) { printf( "Errorcode:%d\n", el_GetErrorCode() ); return false; } . . . setup the display . . // aquire one snap shot nRet = el_Acquire(wBoardID, EL_SNAP); if( nRet != 0) { printf( "Errorcode:%d\n", el_GetErrorCode() ); return false; 173 Chapter 6. Samples } nRet = el_WaitAcqEnd(wBoardID); if(nRet < 0){ printf("Failed!!"); } else { printf("Snap!!"); } . . . call the display server . // close the grabber el_CloseHW(wBoardID, NULL); return(true); } Open the hardware. The routine returns -1 or a board identifier, which is used in subsequent function calls. Initializes internal software structures with data read from a setup file. This data will be used to initialize the video hardware by el_InitHW() later. Initializes the video hardware with parameters prepared with el_InitContext(). Returns pointer to image pointer array if OK or 0 if ERROR. Starts acquisition for a single frame/field (snap) or for continuous (live) acquisition Wait until acquisition is finished. Close the hardware. Use the board id returned by el_OpenHW. 6.2. Additional programming examples More samples for building applications using MS VisualC++ may be downloaded from the web site ELTEC Elektronik AG [http://www.eltec.de] selecting support/drivers and updates The following samples are supplied: • DirectDraw Sample This example shows how to use Direct Draw to display images with ELTEC Elektronik AG grabbers. • DisplayImage Sample This example shows how to display an image grabbed with an ELTEC Elektronik AG frame grabber into a window using the display class CElDib. • JustDisplay Sample (SDK) This Win32 SDK example shows how to use the class CElDib to display images. • JustDisplay Sample (MFC) This MFC example shows how to use the class CElDib to display images. • Sequence Sample This program shows how to grab image sequences with an ELTEC Elektronik AG grabber. The 174 Chapter 6. Samples program is a MFC single document application • MultipleApplication Sample This example shows how to use memory mapped files to share grabber memory between different applications. • Quadro Sample This sample is intended for the ELTEC Elektronik AG p3i_QUADRO frame grabber, exemplifing how to set up the hardware to be able to use four simultaneous monochrome channels. 175 Appendix A. Cameras A.1. Introduction The frame grabber board is jumpered by default to use CCIR/EIA-Cameras with no special features. The software supports this camera types by default. Cameras with special features which are already adapted to the software are listed later in this appendix. To use the special features the frame grabber board has to be jumpered and connected as described below. The software adaptation is done by ELTEC Elektronik AG and included in the camera file eleye516.cam which has to reside in the same directory as eleye516.dll. if you don't find your camera in the list below ask the ELTEC Elektronik AG support ( ) to check if an adaptation is possible. A.2. External Camera Sync Industrial cameras often accept an external sync singnal for the syncronous opeartion of several cameras. Most of these cameras accept the HS singnal on pin 6 and the VS signal on pin 7 of the 12 pin hirose connector. Please refer to your cameras manual to find out if your camera follows this semi standard. Because this pins can also be used aus sync outpus make sure your camera is configured for sync input. Connecting a camera configured to sync output with the grabber can damage the camera, the grabber or both!! The folling instructions asume a semi standard camera with HS input on pin 6 and VS input on pin 7 of the 12 pin hirose connector: • Grabbers with hirose connectors set Jumper 9A-9b and 10A-10B • Grabber with 15 pin Min-D connectors: HS is given out on GPO 0,3,6 and 9. VS is given out on GOP 1,4,7,10. Please refer to the hardware guide to find out on which pins these signals are available. With appropriate jumper settings it shold be possible to have a HS singnal on pin 13 and a VS sinal on pin 14. A.3. Overview of Cameras with special features supported by the software Table A.1. Overview of Cameras Cameras p3i_MONO p3i_RGB p3i_QUADROp3i_ASYNC 1. Sony XC-55 X X 2. Sony XC-HR50 X X 176 Appendix A. Cameras 3. Sony XC-HR70 4. JAI CV-M50 X X X 5. JAI CV-M70 X 6. JAI CV-M77 X X X 7. JAI A50C/A60C X X X X 8. JAI A11 X X X X 9. Sony XC8500 X X X X X X 10. Sony XC-003P 11. Teli 3910 X X X 12. JAI CV-M10 177 Appendix A. Cameras A.4. Sony XC-55 A.4.1. Cabling of Sony XC-55 for p3i_QUADRO/p3i_ASYNC Camera types There are 4 camera types you can use with the Sony XC-55. For details how to set the camera to the different modes please have a look at your camera manual. A.4.1.1. Sony XC-55 interlaced If you want to use the XC55 as a simple interlaced EIA camera, take this mode. This mode may be preferred to test whether grabber and camera work. For external synchronization set jumpers 10A-10B and 9A-9B on J100-J103 A.4.1.2. Sony XC-55 fullframe If the camera is set into non interlaced mode and you do not need a trigger use this camera type. For external synchronization set jumpers 10A-10B and 9A-9B on J100-J103 A.4.1.3. Sony XC-55 E-DONPISHA II This camera type is used with the so called E-Donpisha II fullframe mode of the XC-55. To use this mode with the p3i_QUADRO the sync generator must be enabled . The external trigger must be connected to the p3i_QUADRO trigger input. The exposure time can be adjusted. This can be done with the configuration program or by calling the routine el_SetScriptPara from your program. The routine gets an array with 2 long integer variables. The first one can be used to get very short exposure times on a time scale of 2 pixel clock periods whereas the second one can be used for longer exposure times with a resolution of one line length (~64us). If this second parameter is set to a value > 0 a jitter of a line period is introduced. For this reason it should only be used for exposure times of several hundred line periods. Set these jumpers in jumper array J104 to use the opto coupler on pin 13 and 14: 5A-5B,6A-6B,3C-4C For the trigger signal set jumpers 10A-10B, 9A-9B and 7A-7B on J100-J103 The trigger has to be applied like this: Table A.2. Grabber Trigger Sony XC-55 E-DONPISHA II Grabber Trigger Pin 13 Min-D Connector (X101) on grabber (TRIG_IN 1 +) external trigger signal Pin 14 Min-D Connector ((X101)on grabber (TRIG_IN1 -) ground of external trigger signal A.4.1.4. Sony XC-55 Rest. Res. This camera type is used for the restart / reset mode. Here again the sync generator must be enabled and the trigger must be connected. In this mode the exposure time can be set by the first user variable in el_SetScriptPara. The exposure time is a multiple of the variable and 63,56 micro seconds, the time between two horizontal syncs. 178 Appendix A. Cameras The minimum value is 522. Set these jumpers in jumper array J104 to use the opto coupler on pin 13 and 14: 5A-5B,6A-6B,3C-4C For the trigger signal set jumpers 10A-10B and 9A-9B on J100-J103 The trigger has to be applied like this: Table A.3. Grabber Trigger Sony XC-55 Rest. Res. Grabber Trigger Pin 13 Min-D Connector (X101) on grabber (TRIG_IN+) external trigger signal Pin 14 Min-D Connector ((X101)on grabber (TRIG_IN-) ground of external trigger signal A.4.1.5. Sony XC-55 Long Time Exp The camera settings for this camera type are the same as for Sony XC-55 Rest. Res.. In contrast, you do not need a trigger pulse. If you start an acquisition, the camera is reset, the image is exposed and transferred automatically. You can set the exposure time the same way as in the restart mode. In this mode the very first image acquired after initializing the grabber may not be exposed properly. For the control signals set jumpers 10A-10B and 9A-9B on J100-J103 For the p3i_ASYNC the trigger described above works only on camera 0, for cameras 1-3 also use these inputs: Table A.4. trigger p3i_ASYNC camera 1 on X101 Pin 9 (TRIG_IN+) ,Pin 11 (TRIG_IN-) camera 2 on X101 Pin 1 (TRIG_IN+) ,Pin 2 (TRIG_IN-) camera 3 on X101 Pin 3 (TRIG_IN+) ,Pin 4 (TRIG_IN-) Please make sure that the jumper array for X101 has default setting for p3i_QUADRO. A.5. Sony XC-HR50 A.5.1. Cabling of Sony XC-HR50 for p3i_QUADRO/p3i_ASYNC Camera types: There is a free running and a restart camera type you can use with the Sony XC-HR50. For details how to set the camera to the different modes please have a look at your camera manual. For connecting the camera to the frame grabber a standard 12 pin Hirose cable can be used. Set the HD/VD switch to "EXT". Especially when you use external synchronization make sure that your camera is configured to accept HD and VD as input. 179 Appendix A. Cameras A.5.1.1. Warning! Please do NOT!!! set jumper 2A-2B on J100-J103. This will damage your camera! A.5.1.2. Sony XC-HR50 free running (used when no triggeing is needed) If you want to use the Sony XC-HR50 as a free running camera, take this mode. This mode may be preferred to test wether grabber and camera are working. For external synchronization set jumpers 10A-10B and 9A-9B on J100-J103. A.5.1.3. Sony XC-HR50 Mode1 ( recommended restart mode) For the use of this mode the camera has to be set to "MODE 1" (DIP 6 set to OFF DIP 7 and 8 to ON) and the trigger pulse width has to be used for exposure control (DIP 1 to 4 set to OFF). To use this mode the sync generator must be enabled . The external trigger must be connected to the p3i_QUADRO trigger input. The exposure time can be adjusted. This can be done with the configuration program or by calling the routine el_SetScriptPara from your program. The routine gets an array with 2 long integer variables. The first one can be used to get very short exposure times on a time scale of 2 pixel clock periods whereas the second one can be used for longer exposure times with a resolution of one line length (~64us). If this second parameter is set to a value > 0 a jitter of a line period is introduced. For this reason it should only be used for exposure times of several hundred line periods. Set these jumpers in jumper array J104 to use the opto coupler on pin 13 and 14: 5A-5B,6A-6B,3C-4C For the trigger signal set jumpers 10A-10B, 9A-9B and 1A-1B on J100-J103 The trigger has to be applied like this: Table A.5. Sony XC-HR50 Mode1 Grabber Trigger Pin 13 Min-D Connector (X101) on grabber (TRIG_IN 1 +) external trigger signal Pin 14 Min-D Connector ((X101)on grabber (TRIG_IN1 -) ground of external trigger signal Table A.6. p3i_ASYNC only: Camera 1 - 3 camera 1 on X101 Pin 9 (TRIG_IN+), Pin 11 (TRIG_IN-) camera 2 on X101 Pin 1 (TRIG_IN+), Pin 2 (TRIG_IN-) camera 3 on X101 Pin 3 (TRIG_IN+), Pin 4 (TRIG_IN-) Please make sure that the jumper array for X101 has default setting for p3i_QUADRO. A.5.1.4. Sony XC-HR50 Mode1 partial (higher image frequence possible, but only for the experienced user, no support) This is an experimental mode which allows several misconfigurations of the camera. Because the 180 Appendix A. Cameras documentation of Sony is not sufficient, the experienced user has to find out working parmeter sets for v-sync length, vertical image size and trigger frequency. The v-sync length can be set by the third script parameter and determines how many lines are skipped at the beginning of an image. For every period 11 lines seem to be skipped. The camera can be retriggered immediately after the v-sync has been reseted but applying the trigger to early will produce distortions as dancing white pixels or double exposed images. The cabeling is identical to Sony XC-HR50 Mode1 . A.6. Sony XC-HR70 A.6.1. Cabling of Sony XC-HR70 for p3i_QUADRO/p3i_ASYNC Camera types: There is a free running and a restart camera type you can use with the Sony XC-HR70. For details how to set the camera to the different modes please have a look at your camera manual. For connecting the camera to the frame grabber a standard 12 pin Hirose cable can be used. Set the HD/VD switch to "EXT". Due to an undocumented timing restriction of the camera, a workaround had to be implemented which introduces an additional jitter of 3.5 us to the exposure time for all Modes. This will introduces noticeable fluctuation of the image brightness for short exposure times, but can not be avoided in order to capture undistorted images. Please make sure that your camera is configured to accept HD and VD as input. A.6.1.1. Warning! Please do NOT!!! set jumper 2A-2B on J100-J103. This will damage your camera! A.6.1.2. Sony XC-HR70 ( used when no triggeing is needed) If you want to use the Sony XC-HR70 as a free running camera, take this mode. This mode may be preferred to test whether grabber and camera are working. External synchronization has to be used, because the camera does not provide a v-sync signal in the video, so set jumpers 10A-10B and 9A-9B on J100-J103. A.6.1.3. Sony XC-HR70 Mode1 ( recommended restart mode) For the use of this mode the camera has to be set to "MODE 1" (DIP 6 set to OFF DIP 7 and 8 to ON) and the trigger pulse width has to be used for exposure control (DIP 1 to 4 set to OFF). To use this mode the sync generator must be enabled . The external trigger must be connected to the p3i_QUADRO trigger input. The exposure time can be adjusted. This can be done with the configuration program or by calling the routine el_SetScriptPara from your program. The routine gets an array with 2 long integer variables. The first one can be used to get very short exposure times on a time scale of 2 pixel clock periods whereas the second one can be used for longer exposure times with a resolution of one line length (~64us). If this second parameter is set to a value > 0 a jitter of a line period is introduced. For this reason it should only be used for exposure times of several hundred line periods. Set these jumpers in jumper array J104 to use the opto coupler on pin 13 and 14: 5A-5B,6A-6B,3C-4C For the trigger signal set jumpers 10A-10B, 9A-9B and 1A-1B on J100-J103 181 Appendix A. Cameras The trigger has to be applied like this: Table A.7. Sony XC-HR70 Mode1 Grabber Trigger Pin 13 Min-D Connector (X101) on grabber (TRIG_IN 1 +) external trigger signal Pin 14 Min-D Connector ((X101)on grabber (TRIG_IN1 -) ground of external trigger signal Table A.8. p3i_ASYNC only: Camera 1 - 3 camera 1 on X101 Pin 9 (TRIG_IN+), Pin 11 (TRIG_IN-) camera 2 on X101 Pin 1 (TRIG_IN+), Pin 2 (TRIG_IN-) camera 3 on X101 Pin 3 (TRIG_IN+), Pin 4 (TRIG_IN-) Please make sure that the jumper array for X101 has default setting for p3i_QUADRO. A.6.1.4. Sony XC-HR70 Mode1 partial (higher image frequence possible, but only for the experienced user, no support) This is an experimental mode which allows several misconfigurations of the camera. Because the documentation of Sony is not sufficient, the experienced user has to find out working parmeter sets for v-sync length, vertical image size and trigger frequency. The v-sync length can be set by the third script parameter and determines how many lines are skipped at the beginning of an image. For every period 11 lines seem to be skipped. The camera can be retriggered immediately after the v-sync has been reseted but applying the trigger to early will produce distortions as dancing white pixels or double exposed images. The cabeling is identical to Sony XC-HR70 Mode1 . 182 Appendix A. Cameras A.7. JAI CV-M50 A.7.1. Cabling of JAI CV-M50 for p3i_RGB/p3i_MONO All cabling recommendations are just usable for cameras with default configuration. A non default configuration might damage the camera or the grabber! Be aware that the trigger input of the grabber is designed for a 5V signal and inputs of cameras for 5V or even less (please refer to your camera manual). Higher voltages e.g. 24V SPS-level will destroy the grabber or the camera!!!. Especially when you use external synchronization make sure that your camera is configured to accept HD and VD as input. For the JAI M50 camera different combinations of trigger are implemented A.7.1.1. Trigger Modes Table A.9. Trigger Modes JAI CV-M50 free running: No triggering. For synchronization connect HD to Pin 13 and VD to Pin 14 of the 15 Pin Min-D connector. Camera Trigger: Trigger resets camera and grabber is started by the WEN signal of the camera. Use of stereo mode not recommended. For cabling look at the following table: Table A.10. Camera and Grabber Camera Grabber and trigger signal Pin 5 Multi Connector (Trigger Input) external trigger signal Pin 6 Multi Connector (WEN) Pin 9 Min-D Connector (X100) on the grabber (TRIG_IN+) Pin 3 Multi Connector (GND) Pin 11 Min-D Connector (X100) on the grabber (TRIG_IN-)ground of external trigger signal Grabber Trigger: Trigger is send to grabber that synchronizes it to the H-sync and sends it to the camera. Delay of up to 64 us between trigger and exposed picture. Stereo mode of cameras possible (not tested) because of synchronization of H-sync. For stereo mode connect HS to pin 13 of Min-D connector. Grabber is triggered by the falling edge of the signal. To compensate the delay between the trigger signal and the readout of the picture, the first script parameter must be set with el_SetScriptPara, depending on the cameras shutter speed according to the following table. In the configuration program this can also be done by the "Sequencer Parameter" button in the camera dialogue. 183 Appendix A. Cameras Table A.11. Shutter shutter speed exposure delay 1/10000 16 1/4000 18 1/2000 22 1/1000 30 1/500 46 1/250 78 1/125 142 1/50 270 For cabling look at the following table: Table A.12. Grabber, Camera and Trigger Grabber Camera and Trigger Pin 14 Min-D Connector on grabber Pin 5 Multi Connector (Trigger Input) Pin 5,6,7,or 8 Min-D Connector on grabber (GND) Pin 3 Multi Connector (GND) Pin 9 Min-D Connector grabber (TRIG_IN+) external trigger signal Pin 11 Min-D Connector on grabber (TRIG_IN-) ground of external trigger signal Long Time Exposure This mode is very similar to the camera trigger mode. So the he cabling is the same except that the trigger signal on pin 5 is not needed: Table A.13. Camera, Grabber and trigger signal Camera Grabber and trigger signal Pin 7 of 12 pin hirose Pin 14 Min-D Connector on grabber 184 Appendix A. Cameras A.7.1.2. Overview of supported combinations Table A.14. Overview of supported combinations Mode SW1 #4, #6 Comment JAI M50 interl. OFF, OFF free running JAI M50 nonintl. OFF, ON free running JAI M50 nonintl. Cam. Trg. ON, ON send trigger to camera, connect WEN with grabber JAI M50 nonintl. Grab. Trg. ON, ON send trigger to grabber, send signal on pin 14 to camera JAI M50 nonintl. Long Exp. ON, ON set internal camera jumper, connect VS with grabber 185 Appendix A. Cameras A.7.2. Cabling of JAI CV-M50 for p3i_QUADRO All cabling recommendations are just usable for cameras with default configuration. A non default configuration might damage the camera or the grabber! Be aware that the trigger input of the grabber is designed for a 5V signal and inputs of cameras for 5V or even less (please refer to your camera manual). Higher voltages e.g. 24V SPS-level will destroy the grabber or the camera!!!. Especially when you use external synchronization make sure that your camera is configured to accept HD and VD as input. For the JAI M50 camera different trigger modes are implemented A.7.2.1. Trigger Modes Table A.15. Trigger Modes Camera Trigger: Trigger resets camera and grabber is started by the WEN signal of the camera. Use of stereo mode not recommended. Set these jumpers in jumper array J104 to use the opto coupler on pin 13 an 14: 5A-5B,6A-6B,3C-4C For the remaining cabling refer to the following table: Table A.16. Camera, Grabber and trigger signal Camera Grabber and trigger signal Pin 5 of 6 pin Hirose connector (Trigger Input) external trigger signal Pin 6 of 6 pin Hirose connector (WEN) Pin 13 Min-D Connector (X101) on the grabber (TRIG_IN+) Pin 3 of 6 pin Hirose connector (GND) Pin 14 Min-D Connector (X101) on the grabber (TRIG_IN-)ground of external trigger signal Grabber Trigger: Trigger is send to grabber that synchronizes it to the H-sync and sends it to the camera. Delay of up to 64 us between trigger and exposed picture. Stereo mode of cameras possible (not tested) because of synchronization to H-sync. For stereo mode set jumpers 10A-10B on jumper arrays J100-J103. Grabber is triggered by the falling edge of the signal. To compensate the delay between the trigger signal and the readout of the picture, the first script parameter must be set with el_SetScriptPara, depending on the cameras shutter speed according to the following table. In the configuration program this can also be done by the "Sequencer Parameter" button in the camera dialogue. 186 Appendix A. Cameras Table A.17. Shutter exposure shutter speed exposure delay 1/10000 16 1/4000 18 1/2000 22 1/1000 30 1/500 46 1/250 78 1/125 142 1/50 270 Set following jumpers in jumper array J104 to use the opto coupler on pin 13 an 14: Jumper 5A-5B,6A-6B,3C-4C and 10B-10C to send the trigger signal to the camera. For the remaining cabling refer to the following table: Table A.18. Grabber, Camera and trigger Grabber Camera and trigger Pin 2 Min-D Connector (X101) on grabber Pin 5 of 6 pin Hirose connector (Trigger Input) Pin 5,6,7,or 8 Min-D Connector on grabber (GND) Pin 3 of 6 pin Hirose connector (GND) Pin 13 Min-D Connector (X101) grabber (TRIG_IN+) external trigger signal Pin 14 Min-D Connector (X101)on grabber (TRIG_IN-) ground of external trigger signal Long Time Exposure This mode is very similar to the camera trigger mode. So the he cabling is the same, except that the trigger signal on pin 5 is not needed and jumpers 9A-9B on jumper arrays J100-J103 have to be set. 187 Appendix A. Cameras A.7.2.2. Overview of supported combinations Table A.19. Overview of supported combinations Mode SW1 #4, #6 Comment JAI M50 interl. OFF, OFF free running JAI M50 nonintl. OFF, ON free running JAI M50 nonintl. Cam. Trg. ON, ON send trigger to camera, connect WEN with grabber JAI M50 nonintl. Grab. Trg. ON, ON send trigger to grabber, send signal on pin 14 to camera JAI M50 nonintl. Long Exp. ON, ON set internal camera jumper, connect VS with grabber 188 Appendix A. Cameras A.8. JAI CV-M70 A.8.1. Cabling of JAI CV-M70 for p3i_RGB All cabling recommendations are just usable for cameras with default configuration. A non default configuration might damage the camera or the grabber! Be aware that the trigger input of the grabber is designed for a 5V signal and inputs of cameras for 5V or even less (please refer to your camera manual). Higher voltages e.g. 24V SPS-level will destroy the grabber or the camera!!!. Especially when you use external synchronization make sure that your camera is configured to accept HD and VD as input. For the JAI M70 camera different combinations of trigger modes and scan modes have been implemented: A.8.1.1. Scan Modes Table A.20. Scan Modes interlaced: Two consecutive fields are composed to one frame. 33 ms frame rate. SW1 #5: OFF non interlaced: Field is equivalent to frame. Frame rate 33 ms. SW1 #5: ON A.8.1.2. Trigger Modes Table A.21. Trigger Modes free running: No triggering. For synchronization connect HD to Pin 13 and VD to Pin 14 of the upper 15 Pin Min-D (X100) connector. Camera Trigger: Trigger resets camera and grabber is started by the WEN signal of the camera. No delay between trigger and exposed picture. Camera has to be connected to lower Min-D Connector (X101). Trigger and synchronization signals are taken from the upper connector (X100). For the Mutiplexer Settings have a look at this image For cabling look at the following table: Table A.22. Camera, Grabber and trigger signal Camera Grabber and trigger signal Pin 5 Multi Connector (Trigger external trigger signal Input) Pin 6 Multi Connector (WEN) Pin 9 Min-D Connector (X100) on the grabber (TRIG_IN+) Pin 3 Multi Connector (GND) Pin 11 Min-D Connector (X100) on the grabber (TRIG_IN-) ground of external trigger signal 189 Appendix A. Cameras 190 Appendix A. Cameras Grabber Trigger: Trigger is send to to grabber which sends it to the camera. Grabber is triggered by the falling edge of the signal. Camera has to be connected to lower Min-D Connector (X101). Trigger and Synchronization signals are taken from the upper connector (X100). To compensate the delay between the trigger signal and the readout of the picture, the first script parameter must be set with el_SetScriptPara, depending on the cameras shutter speed according to the following table. In the configuration program this can also be done by the "Sequencer Parameter" button in the camera dialogue. Table A.23. Shutter exposure shutter speed exposure delay 1/10000 3 1/4000 5 1/2000 9 1/1000 17 1/500 33 1/250 64 1/125 127 1/100 159 1/60 254 For cabling look at the following table: Table A.24. Grabber, Camera and trigger Grabber Camera and trigger Pin 13 Min-D connector(X100) on grabber Pin 5 Multi Connector (Trigger Input) Pin 5,6,7,or 8 Min-D connector(X100) on grabber (GND) Pin 3 Multi Connector (GND) Pin 9 Min-D Connector(X100) grabber (TRIG_IN+) external trigger signal Pin 11 Min-D Connector(X100) on grabber (TRIG_IN-) ground of external trigger signal 191 Appendix A. Cameras Long Time Exposure This mode is very similar to the camera trigger mode. So the cabling is the same except that the trigger signal on pin 5 is not needed: Table A.25. Camera, Grabber and trigger signal Camera Grabber and trigger signal Pin 6 Multi Connector (WEN) Pin 9 Min-D Connector (X100) on the grabber (TRIG_IN+) Pin 3 Multi Connector (GND) Pin 11 Min-D Connector (X100) on the grabber (TRIG_IN-) ground of external trigger signal 192 Appendix A. Cameras A.8.1.3. Overview of supported combinations Table A.26. Overview of supported combinations Mode SW1 #4, #5 Comment JAI M50 interl. OFF, OFF free running JAI M50 nonintl. OFF, ON free running JAI M50 nonintl. Cam. Trg. ON, ON send trigger to camera, connect WEN with grabber JAI M50 nonintl. Grab. Trg. ON, ON send trigger to grabber, send signal on pin 13 to camera JAI M50 nonintl. Long Exp. ON, ON connect WEN with grabber 193 Appendix A. Cameras A.9. JAI A50C/A60C A.9.1. Cabling of JAI A50C/A60C for p3i_RGB/p3i_MONO All cabling recommendations are just usable for cameras with default configuration. A non default configuration might damage the camera or the grabber! Be aware that the trigger input of the grabber is designed for a 5V signal and inputs of cameras for 5V or even less (please refer to your camera manual). Higher voltages e.g. 24V SPS-level will destroy the grabber or the camera!!!. Especially when you use external synchronization make sure that your camera is configured to accept HD and VD as input. For the JAI A50/A60 camera different combinations of trigger modes have been implemented: A.9.1.1. Trigger Modes Table A.27. Trigger Modes free running: No triggering. For synchronization connect HD to Pin 13 and VD to Pin 14 of the 15 Pin Min-D connector. Camera Trigger: Trigger resets camera and grabber is started by the WEN signal of the camera.Edge mode and pulse width mode are possible but synchronization of trigger to h-sync is difficult or impossible. Use of stereo mode not recommended. For cabling look at the following table: Table A.28. Camera, Grabber and trigger signal Camera Grabber and trigger signal Pin 5 of 6 pin Hirose or pin 11 of 12 pin HiroseConnector (Trigger Input) external trigger signal Pin 10 of 12 pin Hirose Connector (WEN) Pin 9 Min-D Connector (X101) on the grabber (TRIG_IN+) Pin 12 or of 12 pin Hirose Connector (GND) Pin 11 Min-D Connector (X101) on the grabber (TRIG_IN-) ground of external trigger signal Grabber Trigger: edge mode pulse width Trigger is send to grabber that synchronizes it to the H-sync and sends it to the camera. Delay of up to 64 us between trigger and exposed picture. In the pulse width control mode the exposure time can be controlled by the first script parameter in steps of a h-sync period. Stereo mode of cameras possible (not tested) because of synchronization of H-sync. For stereo mode connect HS to pin 13 of Min-D connector. Grabber is triggered by the falling edge of the signal. 194 Appendix A. Cameras For cabling look at the following table: Table A.29. Grabber, Camera and trigger Grabber Camera and trigger Pin 14 Min-D Connector on grabber Pin 5 of 6 pin Hirose or pin 11 of 12 pin HiroseConnector (Trigger Input) Pin 5,6,7,or 8 Min-D Connector on grabber (GND) Pin 3 Multi of 6 pin or pin 12 of 12 pin Hirose Connector (GND) Pin 9 Min-D Connector (X100) grabber (TRIG_IN+) external trigger signal Pin 11 Min-D Connector (X100) on grabber (TRIG_IN-) ground of external trigger signal A.9.1.2. Overview of supported combinations Table A.30. Overview of supported combinations Mode ASCII Commands Comment JAI M50 interl. all free running, full resolution JAI A50/A60 edge mode TR=1, FR=0, SC=1, TP=0 just one field acquired JAI A50/A60 pulse control TR=2, FR=0, SC=1, TP=0 just one field acquired 195 Appendix A. Cameras A.9.2. Cabling of JAI A50C/A60C for p3i_QUADRO/p3i_ASYNC All cabling recommendations are just usable for cameras with default configuration. A non default configuration might damage the camera or the grabber! Be aware that the trigger input of the grabber is designed for a 5V signal and inputs of cameras for 5V or even less (please refer to your camera manual). Higher voltages e.g. 24V SPS-level will destroy the grabber or the camera!!!. Especially when you use external synchronization make sure that your camera is configured to accept HD and VD as input. For the JAI A50/A60 camera different trigger modes have been implemented: A.9.2.1. Trigger Modes Table A.31. Modes free running: No triggering. For synchronization connect set jumpers 10A-10B and 9A-9B on J100-J103 Camera Trigger: Trigger resets camera and grabber is started by the WEN signal of the camera. Edge mode and pulse width mode are possible but synchronization of trigger to h-sync is difficult or impossible. Use of stereo mode not recommended. Set jumpers 3A-3B on jumper arrays J100-J103 to send the WEN signal to the grabber. For the remaining cabling refer to the following table: Table A.32. Camera, Trigger signal Camera Trigger signal Pin 5 of 6 pin Hirose connector (Trigger Input) external trigger signal Pin 3 or of 6 pin Hirose Connector (GND) ground of external trigger signal Grabber Trigger: edge mode, pulse width Trigger is send to grabber that synchronizes it to the H-sync and sends it to the camera. Delay of up to 64 us between trigger and exposed picture. In the pulse width control mode the exposure time can be controlled by the first script parameter in steps of a h-sync period. Stereo mode of cameras possible (not tested) because of synchronization to H-sync. For stereo mode set jumpers 10A-10B on jumper arrays J100-J103. Grabber is triggered by the falling edge of the signal. Set jumpers 1A-1B on jumper arrays J100-J103 to send the trigger signal to the camera. For cabling look at the following table: 196 Appendix A. Cameras Table A.33. Camera, Trigger Camera Trigger Pin 13 Min-D Connector (X101) on grabber (TRIG_IN+) external trigger signal Pin 14 Min-D Connector (X101)on grabber (TRIG_IN-) ground of external trigger signal For the p3i_ASYNC the trigger described above works only on camera 0, for cameras 1-3 use these inputs: Table A.34. Camera 1 - 3 camera 1 on X101 Pin 9 (TRIG_IN+), Pin 11 (TRIG_IN-) camera 2 on X101 Pin 1 (TRIG_IN+), Pin 2 (TRIG_IN-) camera 3 on X101 Pin 3 (TRIG_IN+), Pin 4 (TRIG_IN-) Please make sure that the jumper array for X101 has default setting for p3i_QUADRO. A.9.2.2. Overview of supported combinations Table A.35. Overview of supported combinations Mode ASCII Commands Comment JAI A50/A60 interl. all free running, full resolution JAI A50/A60 edge mode TR=1, FR=0, SC=1, TP=0 just one field acquired JAI A50/A60 pulse control TR=2, FR=0, SC=1, TP=0 just one field acquired 197 Appendix A. Cameras A.10. JAI A11 A.10.1. Cabling of JAI A11 for p3i_RGB/p3i_MONO All cabling recommendations are just usable for cameras with default configuration. A non default configuration might damage the camera or the grabber! Be aware that the trigger input of the grabber is designed for a 5V signal and inputs of cameras for 5V or even less (please refer to your camera manual). Higher voltages e.g. 24V SPS-level will destroy the grabber or the camera!!!. Especially when you use external synchronization make sure that your camera is configured to accept HD and VD as input. For the JAI A11 camera different trigger modes have been implemented: A.10.1.1. Trigger Modes Table A.36. Camera 1 - 3 free running: No triggering. For synchronization connect HD to Pin 13 and VD to Pin 14 of the 15 Pin Min-D connector. Camera Trigger: Trigger resets camera and grabber is started by the WEN signal of the camera.Edge mode and pulse width mode are possible but synchronization of trigger to hsync is difficult or impossible. Use of stereo mode not recommended. For cabling look at the following table: Table A.37. Camera, Grabber and trigger signal Camera Grabber and trigger signal Pin 5 of 6 pin Hirose or pin 11 of 12 pin HiroseConnector (Trigger Input) external trigger signal Pin 10 of 12 pin Hirose Connector (WEN) Pin 9 Min-D Connector (X101) on the grabber (TRIG_IN+) Pin 12 or of 12 pin Hirose Connector (GND) Pin 11 Min-D Connector (X101) on the grabber (TRIG_IN-)ground of external trigger signal Grabber Trigger: edge mode / pulse width control / log time exposure Trigger is send to grabber that synchronizes it to the H-sync and sends it to the camera. Delay of up to 64 us between trigger and exposed picture. In the pulse width control mode the exposure time can be controlled by the first script parameter in steps of a h-sync period. Stereo mode of cameras possible (not tested) because of synchronization of H-sync. For stereo mode connect HS to pin 13 of Min-D connector. Grabber is triggered by the falling edge of the signal. Partial scan is supported for edge and pulse width control mode. For cabling look at the following table: 198 Appendix A. Cameras Table A.38. Grabber, Camera and trigger Grabber Camera and trigger Pin 14 Min-D Connector on grabber Pin 5 of 6 pin Hirose or pin 11 of 12 pin HiroseConnector (Trigger Input) Pin 5, 6, 7 or 8 Min-D Connector on grabber (GND) Pin 3 Multi of 6 pin or pin 12 of 12 pin Hirose Connector (GND) Pin 9 Min-D Connector (X100) grabber (TRIG_IN+) external trigger signal Pin 11 Min-D Connector (X100) on grabber (TRIG_IN-) ground of external trigger signal A.10.1.2. Overview of supported combinations Table A.39. Overview of supported combinations Mode ASCII Commands Comment JAI A11 non interlaced all free running, full resolution Jai A-11 edge mode TR=1, SC=0, TP=0 full resolution Jai A-11 pulse width TR=2, SC=0, TP=0 full resolution, exposure time controlled by first script parameter Jai A-11 longtime exposure TR=4 full resolution Jai A-11 edge mode partial TR=1, SC>0, TP=0 first script parameter must be set to number of effective lines Jai A-11 pulse width partial TR=2, SC>0, TP=0 Exposure time controlled by first script parameter, second script parameter must be set to number of effective lines 199 Appendix A. Cameras A.10.2. Cabling of JAI A11 for p3i_QUADRO/p3i_ASYNC All cabling recommendations are just usable for cameras with default configuration. A non default configuration might damage the camera or the grabber! Be aware that the trigger input of the grabber is designed for a 5V signal and inputs of cameras for 5V or even less (please refer to your camera manual). Higher voltages e.g. 24V SPS-level will destroy the grabber or the camera!!!. Especially when you use external synchronization make sure that your camera is configured to accept HD and VD as input. For the JAI A11 camera different trigger modes have been implemented: A.10.2.1. Trigger Modes Table A.40. Camera 1 - 3 free running: No triggering. For synchronization set jumpers 10A-10B and 9A-9B on J100-J103. Camera Trigger: Trigger resets camera and grabber is started by the WEN signal of the camera. Edge mode and pulse width mode are possible but synchronization of trigger to h-sync is difficult or impossible. Use of stereo mode not recommended. Set jumpers 3A-3B on jumper arrays J100-J103 to send the WEN signal to the grabber. For the remaining cabling refer to the following table: Table A.41. Camera, Grabber and trigger signal Camera Grabber and trigger signal Pin 5 of 6 pin Hirose connector (Trigger Input) external trigger signal Pin 3 or of 6 pin Hirose Connector (GND) ground of external trigger signal Grabber Trigger: edge mode / pulse width control / log time exposure Trigger is send to grabber that synchronizes it to the H-sync and sends it to the camera. Delay of up to 64 us between trigger and exposed picture. In the pulse width control mode the exposure time can be controlled by the first script parameter in steps of a h-sync period. Stereo mode of cameras possible (not tested) because of synchronization of H-sync. For stereo mode set jumpers 10A-10B on jumper arrays J100-J103. Grabber is triggered by the falling edge of the signal. Partial scan is supported for edge and pulse width control mode. Set jumpers 1A-1B on jumper arrays J100-J103 to send the trigger signal to the camera For the remaining cabling refer to the following table: 200 Appendix A. Cameras Table A.42. Grabber, Trigger Grabber Trigger Pin 13 Min-D Connector (X101) on grabber (TRIG_IN+) external trigger signal Pin 14 Min-D Connector ((X101) on grabber (TRIG_IN-) ground of external trigger signal For the p3i_ASYNC the trigger described above works only on camera 0, for cameras 1-3 also use these inputs: Table A.43. Camera 1 - 3 camera 1 on X101 Pin 9 (TRIG_IN+), Pin 11 (TRIG_IN-) camera 2 on X101 Pin 1 (TRIG_IN+), Pin 2 (TRIG_IN-) camera 3 on X101 Pin 3 (TRIG_IN+), Pin 4 (TRIG_IN-) Please make sure that the jumper array for X101 has default setting for p3i_QUADRO. A.10.2.2. Overview of supported combinations Table A.44. Overview of supported combinations Mode ASCII Commands Comment JAI A11 non interlaced all free running, full resolution Jai A-11 edge mode TR=1, SC=0, TP=0 full resolution Jai A-11 pulse width TR=2, SC=0, TP=0 full resolution, exposure time controlled by first script parameter Jai A-11 longtime exposure TR=4 full resolution Jai A-11 edge mode partial TR=1, SC>0, TP=0 first script parameter must be set to number of effective lines Jai A-11 pulse width partial TR=2, SC>0, TP=0 Exposure time controlled by first script parameter, second script parameter must be set to number of effective lines 201 Appendix A. Cameras A.11. Sony XC8500 A.11.1. Cabling of Sony XC8500 for p3i_RGB/p3i_MONO All cabling recommendations are just usable for cameras with default configuration. A non default configuration might damage the camera or the grabber! Be aware that the trigger input of the grabber is designed for a 5V signal and inputs of cameras for 5V or even less (please refer to your camera manual). Higher voltages e.g. 24V SPS-level will destroy the grabber or the camera!!!. Especially when you use external synchronization make sure that your camera is configured to accept HD and VD as input. For the Sony XC8500 camera different combinations of trigger modes and scan modes have been implemented: A.11.1.1. Scan Modes Table A.45. Scan Modes interlaced: Two consecutive fields are composed to one frame. 40 ms frame rate. SIGNAL=2I dual: The field at output 1 and the field at output 2 are combined to one frame. Frame rate 20 ms. SIGNAL=2I non interlaced: Field is equivalent to frame. Frame rate 40 ms. SIGNAL=1N A.11.1.2. Trigger Modes Table A.46. Trigger Modes free running: No triggering. For synchronization connect HD to Pin 13 and VD to Pin 14 of the 15 Pin Min-D connector. Camera Trigger: Not available with current hardware, because WEN can not drive opto coupler Grabber Trigger: Trigger is send to to grabber that synchronizes it to the H-sync and sends it to the camera. Delay of up to 64 us between trigger and exposed picture. Due to the readout latency of 20 ms in full frame restart mode only the 2I so called "dual mode" has been implemented. It needs an extra wire for the second video channel but is three times faster. To set up the dual mode look here. Dual Mode Stereo mode of two cameras possible because of synchronization of H-sync. For stereo mode connect HD to Pin 13 of the 15 Pin Min-D connector. Grabber is triggered by the rising edge of the signal. The exposure time is adjustable if external control has been selected at the camera. It can be controled by the configuration program or by calling the routine el_SetScriptPara in your program. The routine gets an array with 2 long integer variables. The first one is can be used to get very short exposure times on a time scale of 2 pixel clock periods 202 Appendix A. Cameras whereas the second one can be used for longer exposure times with a resolution of one line length (~64us). If this second parameter is set to a value > 0 a jitter of a line period is introduced. For this reason it should only be used for exposure times of several hundred line periods. For cabling look at the following table: Table A.47. Grabber, Camera and trigger Grabber Camera and trigger Pin 14 Min-D Connector Pin 2 Multi Connector (Trigger Input) Pin 5, 6, 7 or 8 Min-D Connector (GND) Pin 3 Multi Connector (GND) Pin 2 Min-D Connector BNC Video Out 2 Pin 9 Min-D Connector (TRIG_IN+) external trigger signal Pin 11 Min-D Connector (TRIG_IN-) ground of external trigger signal A.11.1.3. Overview of supported combinations Table A.48. Overview of supported combinations Mode SW1 #4, #5 Comment Sony XC8500CE noninterl. SIGNAL=1N, SHUTTER=N free running Sony XC8500 interl./dual SIGNAL=2I, SHUTTER=N set internal switches to reset mode 1V normal or external control. With external control script parameter 1 determines the exposure time T1 Sony XC8500 2I norm. gr. trg. SIGNAL=2I, SHUTTER=ED 203 full resolution, exposure time controlled by first script parameter Appendix A. Cameras A.11.2. Cabling of Sony XC8500 for p3i_QUADRO/p3i_ASYNC All cabling recommendations are just usable for cameras with default configuration. A non default configuration might damage the camera or the grabber! Be aware that the trigger input of the grabber is designed for a 5V signal and inputs of cameras for 5V or even less (please refer to your camera manual). Higher voltages e.g. 24V SPS-level will destroy the grabber or the camera!!!. Especially when you use external synchronization make sure that your camera is configured to accept HD and VD as input. For the Sony XC8500 camera different combinations of trigger modes and scan modes have been implemented: A.11.2.1. Scan Modes Table A.49. Scan Modes interlaced: Two consecutive fields are composed to one frame. 40 ms frame rate. SIGNAL=2I dual: The field at output 1 and the field at output 2 are combined to one frame. Frame rate 20 ms. SIGNAL=2I non interlaced: Field is equivalent to frame. Frame rate 40 ms. SIGNAL=1N A.11.2.2. Trigger Modes Table A.50. Trigger Modes free running: No triggering. For synchronization connect set jumpers 10A-10B and 9A-9B on J100-J103 Camera Trigger: Not available with current hardware, because WEN can not drive opto coupler Grabber Trigger: Trigger is send to to grabber that synchronizes it to the h-sync and sends it to the camera. Delay of up to 64 us between trigger and exposed picture. Due to the readout latency of 20 ms in full frame restart mode only the 2I so called "dual mode" has been implemented. It is three times faster.To set up the dual mode look here: Dual Mode The camera has to provide the second video signal on pin 9 and can only be connected to connector X102 or X104. On the jumper arrays J100 and J102 jumper 5AB has to be set. Stereo mode of two cameras (on X102 and X104) possible because of synchronization of H-sync. For stereo mode set jumpers 10A-10B on jumper arrays J100 and J102. Grabber is triggered by the rising edge of the signal. Set these jumpers in jumper array J104 to use the opto coupler on pin 13 and 14 and 10B-10C to enable the trigger signal: 5A-5B,6A-6B,3C-4C The exposure time is adjustable if external control has been selected at the camera. It can be controled by the configuration program or by 204 Appendix A. Cameras calling the routine el_SetScriptPara in your program. The routine gets an array with 2 long integer variables. The first one is can be used to get very short exposure times on a time scale of 2 pixel clock periods whereas the second one can be used for longer exposure times with a resolution of one line length (~64us). If this second parameter is set to a value > 0 a jitter of a line period is introduced. For this reason it should only be used for exposure times of several hundred line periods. For the remaining cabling refer to the following table: Table A.51. Grabber, Camera and trigger Grabber Camera and trigger Pin 2 Min-D Connector Pin 2 Multi Connector (Trigger Input) Pin 5, 6, 7 or 8 Min-D Connector (GND) Pin 3 Multi Connector (GND) Pin 13 Min-D Connector (TRIG_IN+) external trigger signal Pin 14 Min-D Connector (TRIG_IN-) ground of external trigger signal For the p3i_ASYNC the trigger described above works only on camera 0, for cameras 1-3 also use these inputs: Table A.52. Camera 1 - 3 camera 1 on X101 Pin 9 (TRIG_IN+), Pin 11 (TRIG_IN-) camera 2 on X101 Pin 1 (TRIG_IN+), Pin 2 (TRIG_IN-) camera 3 on X101 Pin 3 (TRIG_IN+), Pin 4 (TRIG_IN-) Please make sure that the jumper array for X101 has default setting for p3i_QUADRO. A.11.2.3. Overview of supported combinations Table A.53. Overview of supported combinations Mode SW1 #4, #5 Comment Sony XC8500CE noninterl. SIGNAL=1N, SHUTTER=N free running Sony XC8500 interl./dual SIGNAL=2I, SHUTTER=N free running Sony XC8500 2I norm. gr. trg. SIGNAL=2I, SHUTTER=ED 205 set internal switches to reset mode 1V normal or external control. With external control script parameter 1 determines the exposure time T1 Appendix A. Cameras A.12. Sony XC-003P A.12.1. Cabling of Sony XC-003P for p3i_RGB All cabling recommendations are just usable for cameras with default configuration. A non default configuration might damage the camera or the grabber! Be aware that the trigger input of the grabber is designed for a 5V signal and inputs of cameras for 5V or even less (please refer to your camera manual). Higher voltages e.g. 24V SPS-level will destroy the grabber or the camera!!!. Especially when you use external synchronization make sure that your camera is configured to accept HD and VD as input. For the Sony XC-003P camera different trigger modes have been implemented: A.12.1.1. Trigger Modes Table A.54. Trigger Modes free running: No triggering. For synchronization connect HD to Pin 13 and VD to Pin 14 of the upper 15 Pin Min-D (X100) connector. SizeX has to be reduced to 732 pixel when external synchronization is used. Donpisha Camera Trigger: Trigger resets camera and grabber is started by the WEN signal of the camera. Camera has to be connected to lower Min-D Connector (X101). Trigger and synchronization signals are taken from the upper connector (X100). For cabling look at the following table: Table A.55. Camera, Grabber and trigger signal Camera Grabber and trigger signal Pin 2 Multi Connector (Trigger Input) external trigger signal Pin 4 Multi Connector (WEN) Pin 9 Min-D Connector (X100) on the grabber (TRIG_IN+) Pin 3 Multi Connector (GND) Pin 11 Min-D Connector (X100) on the grabber (TRIG_IN-) ground of external trigger signal Donpisha Grabber Trigger: Trigger is send to to grabber which sends it to the camera. Grabber is triggered by the rising edge of the signal. Camera has to be connected to lower Min-D Connector(X101). Trigger and synchronization signals are taken from the upper connector(X100). For cabling look at the following table: 206 Appendix A. Cameras Table A.56. Grabber, Camera and trigger Grabber Camera and trigger Pin 14 Min D connector (X100) on grabber Pin 2 Multi Connector (Trigger Input) Pin 5,6,7,or 8 Min-D connector(X100) on grabber (GND) Pin 3 Multi Connector (GND) Pin 9 Min-D Connector(X100) grabber (TRIG_IN+) external trigger signal Pin 11 Min-D Connector(X100) on grabber (TRIG_IN-) ground of external trigger signal Restart Reset 4 (R.R. 4): Trigger is send to to grabber which sends it to the camera. The first overexposed frame is ignored and the second frame acquired. The grabber is triggered by the rising edge of the signal. Camera has to be connected to lower Min-D Connector (X101). Trigger and synchronization signals are taken from the upper connector (X100). Frame accumulation should be used. For cabling look at the following table: Table A.57. Grabber, Camera and trigger Grabber Camera and trigger Pin 14 Min-D connector (X100) on grabber Pin 2 Multi Connector (Trigger Input) Pin 5, 6, 7 or 8 Min-D connector (X100) on grabber (GND) Pin 3 Multi Connector (GND) Pin 9 Min-D Connector (X100) grabber (TRIG_IN+) external trigger signal Pin 11 Min-D Connector (X100) on grabber (TRIG_IN-) ground of external trigger signal Long Time Exposure To use this mode a shutter time of several frames and frame accumulation mode have to be selected in the on screen menu. The cabling is similar to the camera trigger mode but the trigger signal on pin 2 is not needed: Table A.58. Camera, Grabber and trigger signal Camera Grabber and trigger signal Pin 4 Multi Connector (WEN) Pin 9 Min-D Connector (X100) on the grabber (TRIG_IN+) Pin 3 Multi Connector (GND) Pin 11 Min-D Connector (X100) on the grabber (TRIG_IN-) ground of external trigger signal 207 Appendix A. Cameras A.13. Teli 3910 A.13.1. Cabling of Teli 3910 for p3i_RGB/p3i_MONO All cabling recommendations are just usable for cameras with default configuration. A non default configuration might damage the camera or the grabber! Be aware that the trigger input of the grabber is designed for a 5V signal and inputs of cameras for 5V or even less (please refer to your camera manual). Higher voltages e.g. 24V SPS-level will destroy the grabber or the camera!!!. Especially when you use external synchronization make sure that your camera is configured to accept HD and VD as input. For the Teli 3910 camera different combinations of trigger modes have been implemented: A.13.1.1. Trigger Modes Table A.59. Trigger Modes free running: No triggering. For synchronization connect HD to Pin 13 and VD to Pin 14 of the 15 Pin Min-D connector. Grabber Trigger: RTS Trigger is send to grabber that synchronizes it to the H-sync and sends Pulse Mode it to the camera. Delay of up to 64 us between trigger and exposed picture. In the RTS Pulse Mode the exposure time can be controlled by the first script parameter in steps of a h-sync period. For cabling look at the following table: Table A.60. Grabber, Camera and trigger Grabber Camera and trigger Pin 14 Min-D Connector on grabber Pin 4 of 6 pin Hirose Connector (Trigger Input) Pin 5, 6, 7 or 8 Min-D Connector on grabber (GND) Pin 3 Multi of 6 pin Hirose Connector (GND) Pin 9 Min-D Connector (X100) grabber (TRIG_IN+) external trigger signal Pin 11 Min-D Connector (X100) on grabber (TRIG_IN-) ground of external trigger signal Dip Switch for - RTS Pulse Mode (Restart Reset): Table A.61. Dip Switch for - RTS Pulse Mode (Restart Reset): Dip Sw 1 Sw 2 Sw 3 Sw 4 Sw 5 Sw 6 Sw 7 Sw 8 Off Off On Off Off Off Off Off 208 Appendix A. Cameras For cabling look at the following table: 209 Appendix A. Cameras Grabber Trigger: RTS Fix mode Trigger is send to grabber that synchronizes it to the H-sync and sends it to the camera. Delay of up to 64 us between trigger and exposed picture. In the RTS Pulse Mode the exposure time is determined by Sw4 - Sw6. For cabling look at the following table: Table A.62. Grabber, Camera and trigger Grabber Camera and trigger Pin 14 Min-D Connector on grabber Pin 4 of 6 pin Hirose Connector (Trigger Input) Pin 5, 6, 7 or 8 Min-D Connector on grabber (GND) Pin 3 Multi of 6 pin Hirose Connector (GND) Pin 9 Min-D Connector (X100) grabber (TRIG_IN+) external trigger signal Pin 11 Min-D Connector (X100) on grabber (TRIG_IN-) ground of external trigger signal Dip Switch for RTS Fix mode: Table A.63. Dip Switch for RTS Fix mode: Dip Sw 1 Sw 2 Sw 3 Sw 4 Sw 5 Sw 6 Sw 7 Sw 8 Off On On X X X Off Off 210 Appendix A. Cameras A.14. JAI CV-M10 A.14.1. Cabling of JAI CV-M10 for p3i_QUADRO/p3i_ASYNC All cabling recommendations are just usable for cameras with default configuration. A non default configuration might damage the camera or the grabber! Be aware that the trigger input of the grabber is designed for a 5V signal and inputs of cameras for 5V or even less (please refer to your camera manual). Higher voltages e.g. 24V SPS-level will destroy the grabber or the camera!!!. Especially when you use external synchronization make sure that your camera is configure to accept HD and VD as input. For the JAI M10 camera different combinations of trigger modes and scan modes have been implemented: A.14.1.1. Scan Modes Table A.64. Scan Modes interlaced: No triggering. For synchronization connect HD to Pin 13 and VD to Pin 14 of the 15 Pin Min-D connector. dual: The field at output 1 and the field at output 2 are combined to one frame. Frame rate 20 ms. SW1 #5:OFF The cameras have to provide the second video on pin 9 and jumper 5AB on J100-103 has to be set. To set up the dual mode look here: Dual Mode non interlaced: Field is equivalent to frame. Frame rate 40 ms. SW1 #5: ON A.14.1.2. Trigger Modes Table A.65. Trigger Modes free running: No triggering. For quadro mode set VD (9AB on J100-103) and HD (10AB on J100-103) jumpers. Camera Trigger: Trigger resets camera and grabber is started by the WEN signal of the camera. No delay between trigger and exposed picture. Use of several cameras in synchronous mode not recommended. 211 Appendix A. Cameras For cabling look at the following table: Table A.66. Grabber, Camera and trigger Grabber Camera and trigger Pin 13, X101: Trigger (+) input 0 WEN Signal of camera(s); Pin 6 of 6 pin hirose. Pin 9, X101: Trigger (+) input 1 (p3i_ASYNC only) Pin 1, X101: Trigger (+) input 2 (p3i_ASYNC only) Pin 3, X101: Trigger (+) input 3 (p3i_ASYNC only) connect the listed pins to ground (Pin 5,6,7,or 8) of grabber see left side for instruction, connect ground of grabber to ground of camera Pin 14, X101: Trigger (-) input 0 Pin 11, X101: Trigger (-) input 1 (p3i_ASYNC only) Pin 2, X101: Trigger (-) input 2 (p3i_ASYNC only) Pin 4, X101: Trigger (-) input 3 (p3i_ASYNC only) connect external triggers to Pin 5 (trigger in) of 6 pin hirose connector of camera(s) For jumper array of X101 the default setting for p3i_QUADRO is used. Grabber Trigger: Trigger is send to to grabber that synchronizes it to the H-sync and sends it to the camera. Delay of up to 64 us between trigger and exposed picture. Multi mode of up to four cameras possible because of synchronization of H-sync. For stereo mode just set HS jumpers. Grabber is triggered by the falling edge of the signal. To compensate the delay between the trigger signal and the readout of the picture, the first script parameter must be set with el_SetScriptPara, depending on the cameras shutter speed according to the following table. In the configuration program this can also be done by the "Sequencer Parameter" button in the camera dialogue. Table A.67. Shutter exposure shutter speed exposure delay 1/10000 0 1/4000 2 1/2000 6 1/1000 14 1/500 30 1/250 61 212 Appendix A. Cameras 1/125 123 1/60 261 1/50 311 213 Appendix A. Cameras For the Jumpers and the cabling look at the following tables: Table A.68. Overview A B C 1 2 3 4 5 6 7 8 9 10 11 12 Cables grabber trigger mode Table A.69. Grabber, Camera and trigger Grabber Camera and trigger Pin 13, X101: Trigger (+) input 0 external trigger signal(s) Pin 9, X101: Trigger (+) input 1 (p3i_ASYNC only) Pin 1, X101: Trigger (+) input 2 (p3i_ASYNC only) 214 Appendix A. Cameras Pin 3, X101: Trigger (+) input 3 (p3i_ASYNC only) Pin 2, X101: Trigger output 0 TRIG Signal of camera 0; Pin 5 of 6 pin hirose Pin 4, X101: Trigger output 1 TRIG Signal of camera 1; Pin 5 of 6 pin hirose Pin 14, X101: Trigger output 2 TRIG Signal of camera 2; Pin 5 of 6 pin hirose Pin 11, X101: Trigger output 3 TRIG Signal of camera 3; Pin 5 of 6 pin hirose 215 Appendix A. Cameras A.15. JAI CV-M77 A.15.1. Cabling of JAI CV-M77 for p3i_RGB All cabling recommendations are just usable for cameras with default configuration. A non default configuration might damage the camera or the grabber! Be aware that the trigger input of the grabber is designed for a 5V signal and inputs of cameras for 5V or even less (please refer to your camera manual). Higher voltages e.g. 24V SPS-level will destroy the grabber or the camera!!!. Especially when you use external synchronization make sure that your camera is configured to accept HD and VD as input. For the JAI M77 noninterlaced aquisition with different trigger modes is supported A.15.1.1. Trigger Modes Table A.70. Trigger Modes free running: No triggering. Camera Trigger: Trigger resets camera and grabber is started by the V-Sync of the camera. The connection of the WEN signal is not necessary. A delay of up to a h-sync period is introduced by the camera because of the cameras internal synchronisation of the exposure to the h-sync. In pulse-width mode, this can also introduce a jitter of a h-sync period to the exposure time. Use grabber trigger to avoid this. Camera has to be connected to lower Min-D Connector(X101). Trigger and synchronization signals are taken from the upper connector(X100). For the Mutiplexer Settings have a look at this image: RGB on X101 For cabling look at the following table: Table A.71. Camera, Grabber and trigger signal Camera Grabber and trigger signal Pin 5 Multi Connector (Trigger Input) external trigger signal Pin 3 Multi Connector (GND) ground of external trigger signal Grabber Trigger: Trigger is send to to grabber which sends it to the camera. Grabber is triggered by the falling edge of the signal. Camera has to be connected to lower Min-D Connector(X101). Trigger and Synchronization signals are taken from the upper connector(X100). For the mutiplexer settings have a look at this image: RGB on X101 216 Appendix A. Cameras Because the camera synchronizes the trigger to the h-sync the grabber does the same to avoid jitter in the pulse-width contol mode. In this mode a dead lock situation can occure if the camera misses a trigger pulse generated by the grabber. An el_SetScriptPara command can break this lock. For cabling look at the following table: Table A.72. Grabber, Camera and trigger Grabber Camera and trigger Pin 13 Min-D connector (X100) on grabber Pin 5 Multi Connector (Trigger Input) Pin 5, 6, 7 or 8 Min-D connector (X100) on grabber (GND) Pin 3 Multi Connector (GND) Pin 9 Min-D Connector (X100) grabber (TRIG_IN+) external trigger signal Pin 11 Min-D Connector (X100) on grabber (TRIG_IN-) ground of external trigger signal A.15.1.2. Overview of supported combinations Table A.73. Overview of supported combinations Mode SW1 #5, #6 Comment JAI M77 interl. OFF, OFF free running JAI M77 nonintl. Cam. Trg., ON, OFF edge pre-sel. send trigger to camera JAI M77 nonintl. Cam. Trg., ON, ON pulse width send trigger to camera, not recomended for short exposure time because of camera introduced jitter JAI M77 nonintl. Grab. Trg., ON, OFF edge pre-sel. send trigger to grabber, connect signal on pin 13 to camera JAI M77 nonintl. Grab. Trg., ON, ON pulse width send trigger to grabber, connect signal on pin 13 to camera 217 Appendix A. Cameras A.16. DMP 60H13 A.16.1. Cabling of DMP 60H13 for p3i_QUADRO/p3i_ASYNC Camera types: For the "DMP 60H13" camera different combinations of single/double speed, interlaced/progressive scan, internal/external sync and free running/restart have been implemented. A.16.1.1. Modes and Jumpers If the opto-coupler trigger input is used the rising slope starts the aquisition in all restart modes. If the TTL trigger input is used the falling slope starts the aquisition in these modes. Table A.74. DMP 60H13 Modes Mode Internal DIP switches Jumpers Software settings interlaced no jumpers interlaced (SW1-1: necessary OFF) Mode: "DMP 60H13 intl." no restart (SW1-2: ON) disable Sync. Generator Single speed (SW1-3: ON) int Sync(SW3: Front) interlaced with external sync. interlaced (SW1-1: 9A-9B OFF) 10A-10B no restart (SW1-2: ON) Mode: "DMP 60H13 intl." enable Sync. Generator Single speed (SW1-3: ON) ext Sync(SW3: Rear) interlaced with asynchronous trigger n/a n/a n/a interlaced with asynchronous trigger and external sync n/a n/a n/a progressive scan Progressive Scan (SW1-1: ON) no restart (SW1-2: ON) Single speed 218 no jumpers necessary Mode: "DMP 60H13 non intl." disable Sync. Generator Appendix A. Cameras (SW1-3: ON) int. Sync(SW3: Front) progressive scan with external sync Progressive Scan (SW1-1: ON) 9A-9B Mode: "DMP 60H13 non intl." 10A-10B no restart (SW21-1: ON) enable Sync. Generator Single speed (SW1-3: ON) ext Sync(SW3: Rear) double speed, progressive scan Progressive Scan (SW1-1: ON) no jumpers necessary no restart (SW1-2: ON) Mode: "DMP 60H13 non intl. dbl." disable Sync. Generator Double speed (SW1-3: OFF) int Sync(SW3: Front) double speed, progressive scan Progressive Scan with external sync (SW1-1: ON) 9A-9B 10A-10B no restart (SW1-2: ON) Mode: "DMP 60H13 non intl. dbl." enable Sync. Generator Double speed (SW1-3: OFF) ext Sync(SW3: Rear) progressive scan with asynchronous trigger 7A-7B Progressive Scan (SW1-1: ON) Mode: "DMP 60H13 rest." Restart (SW1-2: OFF) disable Sync. Generator Single speed (SW1-3: ON) Variable Shutter (SW1-5: ON) int Sync(SW3: Front) progressive scan with n/a n/a 219 Appendix A. Cameras asynchronous trigger and external sync n/a double speed, progressive scan Progressive Scan with asynchronous trigger (SW1-1: ON) 7A-7B Mode: "DMP 60H13 dbl. rest." Restart (SW1-2: OFF) disable Sync. Generator Double speed (SW1-3: OFF) Variable Shutter (SW1-5: ON) int Sync(SW3: Front) double speed, progressive scan n/a with asynchronous trigger and external sync n/a n/a Table A.75. p3i_ASYNC only: Camera 1 - 3 camera 1 on X101 Pin 9 (TRIG_IN+), Pin 11 (TRIG_IN-) camera 2 on X101 Pin 1 (TRIG_IN+), Pin 2 (TRIG_IN-) camera 3 on X101 Pin 3 (TRIG_IN+), Pin 4 (TRIG_IN-) In the triggered modes the vertical position has to be corrected with a script parameter according to the exposure time. This can be done with the configuration program or by calling the routine el_SetScriptPara from your program. The values are given below. Table A.76. Shutter shutter speed exposure delay 1/10000 10 1/4000 12 1/2000 16 1/1000 24 1/500 40 1/250 71 1/125 134 1/100 166 1/60 271 Please make sure that the jumper array for X101 has default setting for p3i_QUADRO. 220 Appendix A. Cameras A.17. DMP 70H13 A.17.1. Cabling of DMP 70H13 for p3i_QUADRO/p3i_ASYNC Camera types: For the "DMP 70H13" camera different combinations of single/double speed, interlaced/progressive scan, internal/external sync and free running/restart have been implemented. A.17.1.1. Modes and Jumpers Due to different pinouts of some camera versions it might be necessary to replace the jumper 7A-7B. The table below was build for a camera that has its trigger input on Hirose pin 9. If Hirose pin 11 is used for the trigger, replace jumper 7A-7B by 1A-1B if Hirose pin 7 is used replace jumper 7A-7B by 9A-9B The exposure time can be adjusted by software if a restart mode is used. This can be done with the configuration program or by calling the routine el_SetScriptPara from your program. The routine gets an array with 2 long integer variables. The first one can be used to get very short exposure times on a time scale of 2 pixel clock periods whereas the second one can be used for longer exposure times with a resolution of one line length (~64us). If this second parameter is set to a value > 0 a jitter of a line period is introduced. For this reason it should only be used for exposure times of several hundred line periods. If the opto-coupler trigger input is used the rising slope starts the aquisition in all restart modes. If the TTL trigger input is used the falling slope starts the aquisition in these modes. Table A.77. DMP 70H13 Modes Mode Internal DIP switches interlaced interlaced (SW1: OFF) Jumpers Software settings no jumpers necessary Mode: "DMP 70H13 intl." disable Sync. Generator no restart (SW2: ON) Single speed (SW3: ON) interlaced with external sync. interlaced (SW1: OFF) no restart (SW2: ON) Single speed (SW3: ON) ext. Sync (set Switch to rear) 9A-9B 10A-10B Mode: "DMP 70H13 intl." enable Sync. Generator interlaced with asynchronous trigger n/a n/a n/a interlaced with asynchronous trigger and external sync n/a n/a n/a progressive scan Progressive Scan (SW1: ON) no restart (SW2: ON) Single speed (SW3: ON) no jumpers necessary Mode: "DMP 70H13 non intl." disable Sync. Generator 221 Appendix A. Cameras progressive scan with external sync Progressive Scan 9A-9B (SW1: ON) no restart (SW2: ON) 10A-10B Single speed (SW3: ON) ext. Sync (set Switch to rear) double speed, progressive scan Progressive Scan (SW1: ON) no restart (SW2: ON) Double speed (SW3: OFF) no jumpers necessary Mode: "DMP 70H13 non intl." enable Sync. Generator Mode: "DMP 70H13 non intl. dbl." disable Sync. Generator double speed, progressive scan Progressive Scan 9A-9B with external sync (SW1: ON) no restart (SW2: ON) 10A-10B Double speed (SW3: OFF) ext. Sync (set Switch to rear) Mode: "DMP 70H13 non intl. dbl.", enable Sync. Generator progressive scan with asynchronous trigger Progressive Scan 7A-7B (SW1: ON) Restart (SW2: OFF) Single speed (SW3: ON) Variable Shutter (SW5: ON, SW6: OFF ) Mode: "DMP 70H13 rest." disable Sync. Generator progressive scan with asynchronous trigger and external sync Progressive Scan (SW1: ON) Restart 7A-7B (SW2: OFF) Single speed (SW3: ON) 10A-10B Variable Shutter (SW5: ON, SW6: OFF ) ext. Sync (set Switch to rear) Mode: "DMP 70H13 rest.", enable Sync. Generator double speed, progressive scan Progressive Scan 7A-7B with asynchronous trigger (SW1: ON) Restart (SW2: OFF) Double speed (SW3: OFF) Variable Shutter (SW5: ON, SW6: OFF ) Mode: "DMP 70H13 dbl. rest." disable Sync. Generator double speed, progressive scan Progressive Scan with asynchronous trigger and (SW1: ON) Restart 7A-7B external sync (SW2: OFF) 10A-10B Double speed (SW3: OFF) Variable Shutter (SW5: ON, SW6: OFF ) ext. Sync (set Switch to rear) Mode: "DMP 70H13 dbl. rest." enable Sync. Generator 222 Appendix A. Cameras Table A.78. p3i_ASYNC only: Camera 1 - 3 camera 1 on X101 Pin 9 (TRIG_IN+), Pin 11 (TRIG_IN-) camera 2 on X101 Pin 1 (TRIG_IN+), Pin 2 (TRIG_IN-) camera 3 on X101 Pin 3 (TRIG_IN+), Pin 4 (TRIG_IN-) Please make sure that the jumper array for X101 has default setting for p3i_QUADRO. 223 Appendix A. Cameras A.18. Default setting of jumper array for X101 on p3i_QUADRO Default setting of jumper array for X101 on p3i_QUADRO Table A.79. Overview A B C 1 2 3 4 5 6 7 8 9 10 11 12 224 Appendix B. FAQs B.1. Common FAQs B.1.1. What is synchronous acquisition? Synchronous acquisition means that all cameras run synchronously to each other. This is done by applying a horizontal and a vertical sync signal to each camera. For the p3i2 family these signal have to be taken from the on-board sync generator. Using sync signals from an extra camera is not possible. In restart mode synchronous operation is achieved by using the h-sync signal for the horizontal synchronisation. The vertical synchronisation is done by the trigger signal. One signal is used for all cameras. The preferred trigger mode in synchronous operation is grabber trigger, where the trigger signal is send to the grabber which send a trigger signal to the cameras that is synchronised to the camera timing. The synchronisation makes sure that the trigger signal is not applied to the cameras is critical timing phases, where one camera might react immediately to the signal whereas an other camera starts its restart timing one h-sync period later. B.1.2. What is asynchronous acquisition? Asynchronous acquisition is only possible with the p3i_ASYNC and p3i_ASYNC/PMC grabbers. The data of all cameras can only be stored as 8 bit per pixels b/w images. Up to fours cameras of the same type can be used and do not have to be (and can not be ) synchronised to each other. To control the progress of the acquisition of the four channels the function of some el_Test.... and el_Wait... functions have been changed. Please refer to the API documentation for details, because some of these functions do not work at all and some have a slightly different function. In the restart mode a trigger signal for each camera has to be provided. Please refer to the hardware documentation to see which jumpers have to be set and at which inputs the signals have to be applied. B.1.3. What are DMA channels? A DMA channel moves data from a source on the grabber to a buffer in the memory. Data sources on the grabber are fed by one or more ADCs which digitise the input signals. Before the transmission the data source packs the ADC values into long words according to the packing mode (e.g. red, green and blue in one word for RGB transmission, 4 b/w pixel for monochrome transmission or 2 b/w pixels each blown up to 16 bit RGB pixel with identical blue red and green values for pseudo RGB mode) The connection of a DMA channel to a buffer is done with el_AssignBuffer. The packing mode of the buffer determines the way the image data is packed at the source. If the packing mode of the target buffer is not supported by the data source or the buffer is not large enough for the acquired image an error is generated. It is possible to connect several DMA channels to one buffer (but not vice versa). Normally this does not make sense because the data of the two buffers overwrite each other. It happens sometimes by accident if the buffer is connected to a new channel without switching off the previously used 225 Appendix B. FAQs channel (calling el_AssignBuffer with channel ID 0). There is one exception if the memory acquisition format is set to el_DUAL. In this case the data is written to different lines within the buffer (if the camera adaptation supports this). For a camera like the JAI CV-M10 which provides even and odd field at the same time at two different outputs this can be used to transfer the even lines over one DMA-channel and the odd lines over another channel. B.1.4. What methods to allocate buffers do exist? The software can handle two different memory management methods. The first on is to apply a 0 pointer to the MemStart parameter of el_InitHW, el_NewMemBuffer, el_NewMemBufferEx or el_CreateMemBuffer. These functions return all a pointer to pointer list. The elements of the list then point to the memory buffers. Another method is to build a list like the one return by the functions mentioned above with self allocated memory. The pointer list must be one element longer than the number of frames in the sequence ( a single buffer can be seen as a sequence with the length 1) because the last element of the list has to be 0. For some software versions the addresses of the buffers have to lie on a page boundary (modulo 4096 = 0). Please refer to the software documentation for details. If the self generated list is used as the MemStart parameter of the functions mentioned above, the supplied memory areas are locked at their current physical position in the memory. This means that they are protected against being transferred into the swap file. The list returned by the function is identical to the supplied list. B.1.5. What is the Dual Mode? Special cameras deliver the even and the odd image on separate video channels simultaneously. The grabber can combine these channel to one image with twice of the normal frame rate. ppVidPtr = el_InitHW(.......,&nBufNo); : el_SetAcqMemFormat (nBoardId, EL_DUAL); el_SetVideoInPort(nBoardId, EL_CAMPARALLEL); ppVidPtr = el_AssignBuffer(nBoardId,1,nBufNo,1.0, 1.0,0,0); : set acquisition format of the buffer assigned to channel 0 to EL_DUAL. connect video data stream of input channel 1 to DMA channel 1. assign buffer also to channel 1. Data coming through this channel is sorted between the lines of channel 0. B.1.6. What is the Stereo Mode ? In the stereo mode the images of two cameras are stored in two different buffers. The two cameras have to be synchronized externally. The jumpers which have to be set are described in the 226 Appendix B. FAQs documentation of the camera file. if no setup file is used, el_InitSyncGenerator has to be called to chose the correct synchronization signals and with el_EnableSyncGenerator the generator has to be switched on. ppVidPtr = el_InitHW(.......,&nBufNo); : el_SetVideoInPort(nBoardId, EL_CAMPARALLEL); ppVidPtr2=el_NewMemBuffer(BoardId, 0, 0, 0, 1, 0, &nBufNo2) ; ppVidPtr = el_AssignBuffer(nBoardId,1,nBufNo,1.0, 1.0,0,0); first buffer is created with el_InitHW connect video data stream of input channel 1 to DMA channel 1 Get a second buffer. el_CreateMemBuffer could have also be used, but then packing mode and memory format must be set explicitly and the buffer is not connected to a channel. In this case the modes are inherited form the first buffer. The first buffer is disconnected and the second buffer is connected to channel 0 The unconnected first buffer is now assigned to channel 1 B.1.7. How do I get camera names for el_SelectCamera? It is extremly important to write the camera names used in el_SelectCamera exactly like they are displayed in the configuration program. If you integrate the sourcecode below in a console application and provide the BoardId obtained by el_OpenHW to it you can get the camera names easily. EL_CAMFEATURES Feature; el_GetSupportedCamFeaturesEx(BoardId, GETFIRSTCAMFEATURE, &Feature, sizeof(EL_CAMFEATURES)); printf("%s\n",Feature.info); while(el_GetSupportedCamFeaturesEx(BoardId, GETNEXTCAMFEATURE, &Feature, sizeof(EL_CAMFEATURES)) >0) { printf("\"%s\"\n",Feature.info); } You get an output like: "Generic CCIR625" "Generic EIA" "JAI CV-M50" "Jai CV-M50 edge sel. cam. trg." "JAI CV-M50 edge sel. grab trg." "Jai CV-M50 long exp." "Jai M70 camera trig." "Jai M70 fullframe" "Jai M70 grabber trig." "Jai M70 interlaced" "Jai M70 long exp." "CV-M77" "CV-M77 camera trg." 227 Appendix B. FAQs "CV-M77 grabber trg." "Sony XC-55 E-DONPISHA II" "Sony XC 55 continous DONPISHA" "Sony XC-55 fullframe" "Sony XC-55 interlaced" "Sony XC-55 Long Time Exp" "Sony XC-55 Rest. Res." "Teli CS3910 Fixed Mode" "Teli CS3910 fullframe" "Teli CS3910 RTS Pulse Mode" "XC-003P" "XC-003P donp. camera trg." "XC-003P donp. grabber trg." "XC-003P R.R. 4" "XC-003P longtime exposure" "Jai A11" "Jai A-11 camera trigger" "Jai A-11 edge mode partial" "Jai A-11 edge mode" "Jai A-11 longtime exposure" "Jai A-11 pulse width" "Jai A-11 pulse width partial" "Jai A-60" "Jai A-60 camera trigger" "Jai A-60 edge mode" "Jai A-60 pulse width" "Sony XC8500 2I norm. gr. trg." "Sony XC8500CE noninterl." "Sony XC8500 interl./dual" "Jai CV-M10 cam. trg. non intl." "Jai CV-M10 cam.trg. dual" "Jai CV-M10 grab.trg. dual" "Jai CV-M10 grab.trg. non intl." "Jai CV M10 interlaced" "Jai CV M10 dual" "Jai CV-M10 non intl." "JAI-CV-M1 noninterlaced" "DMP 60H13 dbl. rest." "DMP 60H13 intl." "DMP 60H13 non intl." "DMP 60H13 non intl. dbl." "DMP 60H13 rest." "CV-M77" "CV-M77 camera trg." "CV-M77 grabber trg." "Sony XC-HR50" "Sony XC-HR50 ext. sync" "Sony XC-HR50 rest." "Ikegami SKC-151" "DMP 70H13 dbl. rest." "DMP 70H13 intl." "DMP 70H13 non intl." "DMP 70H13 non intl. dbl." "DMP 70H13 rest." "JAI CV-M50 mode 2" "JAI CV-M50 mode 2 ext. sync" "Jai CV M10 dual EIA" "Jai CV-M10 non intl. EIA" "Jai CV-M10 cam. trg. n. i. EIA" "Jai CV-M10 grab.trg. n. i. EIA" "Jai CV-M10 cam.trg. dual EIA" "Jai CV-M10 grab.trg. dual EIA" "Sony XC-HR50" "Sony XC-HR50 Mode 1" "Sony XC-HR50 Mode 1 partial" "Sony XC-HR70" "Sony XC-HR70 Mode1" "Sony XC-HR70 Mode1 partial" 228 Appendix B. FAQs B.2. p3i2 FAQs B.2.1. How do I set up the "Dual mode"? In "dual mode" the data of two DMA channels is assigned to one buffer, which has the aquisitionformat EL_DUAL. The easiest way to set up this mode is to use the configuration program. Start the configuration program and select the desired camera. Open the meu "configuration/hardware" make sure that on the page "cam. settings" dualmode is enabled and selected. Go to the page packing mode. In addition to the preselected "Buffer 0" select also "Buffer 1". After pressing APPLY you can save this setting to a setup file or you can press the "Show sample code" button to see what has been done. B.2.2. How do I use the video crossbar? Newer versions of the configuration program have a sample code button in the "packing mode" dialog which shows the source code for a selected configuration. Also have a look at the online help for this dialog and at the software help. The crossbar is controlled by el_SetInputMux( long BoardId, long CamSel, long AdcSel, long Reserved ); The CamSel parameter decides form which input the signal is taken [EL_INPUT_R_A ... EL_INPUT_Y_B] The AdcSel parameter determines to witch ADC (or column) the signal is routed [EL_ADC1 ... EL_ADC3] The SyncSource is selected with el_SetSyncInPort(long BoardId, long CamSel). Camsel values from EL_SYNC0 to EL_SYNC3 switch to the columns selected with el_SetInputMux whereas EL_SYN_Y_B strips the sync directly form the Y input of the second connector. Here are some examples what to set when you use the video crossbar: Table B.1. RGB Camera with Sync on green Sync EL_SYNC0 EL_SYNC1 EL_SYNC2 EL_SYNC3 EL_SYNC_Y_B X Table B.2. RGB Camera with Sync on green 2 Input 0 1 EL_INPUT_R_A X EL_INPUT_G_A EL_INPUT_B_A 2 X X 229 3 Appendix B. FAQs EL_INPUT_Y_A X EL_INPUT_R_B EL_INPUT_G_B EL_INPUT_B_B EL_INPUT_Y_B Table B.3. RGB Camera with external sync Sync EL_SYNC0 EL_SYNC1 EL_SYNC2 EL_SYNC3 X 230 EL_SYNC_Y_B Appendix B. FAQs Table B.4. RGB Camera with external sync 2 Input 0 1 2 EL_INPUT_R_A 3 X EL_INPUT_G_A X EL_INPUT_B_A X EL_INPUT_Y_A X EL_INPUT_R_B EL_INPUT_G_B EL_INPUT_B_B EL_INPUT_Y_B Table B.5. RGB Camera on second connector with external sync Sync EL_SYNC0 EL_SYNC1 EL_SYNC2 EL_SYNC3 EL_SYNC_Y_B X (OR X) Table B.6. RGB Camera on second connector with external sync 2 Input 0 1 2 3 EL_INPUT_R_A EL_INPUT_G_A EL_INPUT_B_A EL_INPUT_Y_A EL_INPUT_R_B X EL_INPUT_G_B X EL_INPUT_B_B X EL_INPUT_Y_B X Table B.7. four B/W cameras on first connector, camera on red used for sync Sync EL_SYNC0 EL_SYNC1 EL_SYNC2 X 231 EL_SYNC3 EL_SYNC_Y_B Appendix B. FAQs Table B.8. four B/W cameras on first connector, camera on red used for sync 2 Input 0 EL_INPUT_R_A X 1 EL_INPUT_G_A 2 3 X EL_INPUT_B_A X EL_INPUT_Y_A X EL_INPUT_R_B EL_INPUT_G_B EL_INPUT_B_B EL_INPUT_Y_B Table B.9. two B/W cameras on both connectors, camera on G_A used for sync Sync EL_SYNC0 EL_SYNC1 EL_SYNC2 EL_SYNC3 EL_SYNC_Y_B X Table B.10. two B/W cameras on both connectors, camera on G_A used for sync Input 0 EL_INPUT_R_A X EL_INPUT_G_A 1 2 3 X EL_INPUT_B_A EL_INPUT_Y_A EL_INPUT_R_B X EL_INPUT_G_B X EL_INPUT_B_B EL_INPUT_Y_B B.2.3. What are the settings to use a RGB camera connected on X101? 232 Appendix B. FAQs 233 Glossary CCIR Common european video format (50 fields per second). EIA Common american video format (60 fields per second). Pseudo-RGB The monochrome channel is expanded to RGB. This is done by setting the same value to Red, Green and Blue components. 234