# # CAMERA_MODEL "PCO.edge" # # camera description, for camera selection GUI and apps # camera_class should be the manufacturer's name # camera_class: "PCO" camera_model: "Edge" camera_info: "2560x2160 (5-tap, 16-bit, Output Mode D, freerun)" # actual width/height (total pixels) and depth of data from camera # to only grab high 8-bits, set depth to 8 but leave extdepth set # to actual depth, and adjust shift and mask accordingly # width: 2560 height: 2160 depth: 16 extdepth: 16 # camera link data path register bits (argument is a 2-digit hex value): # sets the expected input data size and #taps # bits 0-3: number of bits per pixel minus 1 # bits 4-7: number of taps minus 1 # CL_DATA_PATH_NORM: 4f # 5-tap, 16-bit # camera link config register bits # (argument is a 2-digit hex value, hexval shown in parens): # 0 (01): RGB (set for RGB (except bayer). Applies to older/PCI, ignored on newer/PCIe) # 1 (02): ignore data valid (on for most cameras though not all) # 2 (04): generate an FVAL on every LVAL or vactv lines if bit 4 is set, for line scan cameras # 3 (08): disable ROI (rarely set) # 4 (10): generate an FVAL after every vactv lines if bit 2 is also set, for line scan cameras # 5 (20): data valid invert (rare) # 6 (40): RGB swap -- swap red/blue # 7 (80): enable roi pad: if ROI > img output, will pad missing bytes # CL_CFG_NORM: 00 # htaps/vtaps: if multiple taps, set either htaps or vtaps to match the number # of taps and whether they represent horizontal or vertical. Most common it's # htaps (that is, pixels in parallel taps are from pixels next to each other on # the same line) For example with a 2-tap 8-bit camera (CL_DATA_PATH_NORM: 17) # where the two taps are from adjacent pixels on the same line, you would uncomment # htaps and leave it at 2. # htaps: 5 #vtaps: 5 # interlace method # only for interleaved and some dual tap cameras # determines how image is deinterleaved for display -- BYTE_INTLV is only # one of many available methods -- see *_INTLV in pdv_dependent.h and # camera configuration guide for more # method_interlace: WORD_INTLV_HILO_LINE # PCO serial commands # # all commands are hex bytes, but sent LSB to MSB which is reversed from PCO's # documentation. # # for instance, the "start output" command below is shown in PCO's documentation as follows: # COMMAND LENGTH DATA CHKSUM # 0614 0007 0001 22 # # the command going out our board is transmitted as: # COMMAND LENGTH DATA CHKSUM # 1406 0700 0100 22 # # COMMAND = group code, message code # LENGTH = length of complete message including the checksum byte # DATA = data needed to execute command (set specific parameter) # CHKSUM = checksum byte, calculated as sum of all previous bytes # # Use string below for the following settings: # CMND LENG DATA CHKSUM DESCRIPTION OF COMMAND # 1406 0700 0000 21 stop output, needed to setup camera if left in "record" # 1610 0d00 0200 0004 0000 0000 39 output format, D (line from top and bottom to center) # 1115 0700 0000 2d standard sensor format (2560x2160) # 1103 0d00 0100 0100 000a 7008 a5 AOI = 2560 x 2160 # 1107 0900 d5ab ae05 54 set pixelrate to 95.3 MHz # 1204 0700 0000 1d auto trigger, freerun # 1635 0c00 40ff 1005 0005 01 b1 Camera Link mode, 85MHz, 5-tap/16-bit, continuous # 140a 0500 23 arm camera, enables next output command # 1406 0700 0010 22 start output, camera is set to "record" serial_binit: "14060700000021 16100d00020000040000000039 1115070000002d 11030d0001000100000a7008a5 11070900d5abae0554 1204070000001d 16350c0040ff1005000501b1 140a050023 14060700010022" # Mode Control register (hex) # Hex value -- the left-most nibble determines which CC line is toggled for # the EXPOSE pulse (if method_camera_shutter_timing is other than AIA_SERIAL). # The right-most nibble determines which of the CC lines are held permanently # high or low. Typically this is set automatically by merthod_camera_timing # (to 10 hex for triggered and MCL modes, 00 otherwise). However if your # camera needs it set otherwise, use this directive to do so. # # MODE_CNTL_NORM: 10 # Region of Interest start and area (decimal) # vskip/hskip is how many pixels to skip before ROI, vert and horiz # vactv/hactv is how many pixels to DMA to memory after skip, vert and horiz # if full frame is desired, you can leave these commented out or make them the # same as the camera width/height. hskip/hactv can also be used to trim columns # for cameras that output non-4-byte-aligned data to multiple of 4 bytes (in # width) to ensure proper operation of windows applications that depend on # 4-byte alignment, e.g. pdvshow # #hskip: 0 #hactv: 2560 #vskip: 0 #vactv: 2160 # enable fast re-arm of acquisition block # re-arm when FVAL goes low # CL_CFG2_NORM: 40
Need a custom hardware solution?
EDT engineers work directly with customers to design, prototype, and deliver custom computing hardware for mission-critical applications.