Do you have a question about the PHOENIX and is the answer not in the manual?
Questions and answers
Summary of Contents for Active Silicon PHOENIX
Page 1
Artisan Technology Group is your source for quality new and certified-used/pre-owned equipment SERVICE CENTER REPAIRS WE BUY USED EQUIPMENT • FAST SHIPPING AND DELIVERY Experienced engineers and technicians on staff Sell your excess, underutilized, and idle used equipment at our full-service, in-house repair center We also offer credit for buy-backs and trade-ins •...
Page 2
PHOENIX USER MANUAL Active Silicon v1.6 14-Sep-2010 Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com...
Page 4
Active Silicon reserves the right to change the specification of the product described within this manual and the manual itself at any time without notice and without obligation of Active Silicon to notify any person of such revisions or changes.
THE PoCL LEDs (4, 5)............................. 5 BLOCK DIAGRAM ..............................6 SDK Overview................................10 SDK Examples................................11 INITIALISING THE PHOENIX BOARD ......................11 PCI BANDWIDTH MEASUREMENT ......................... 11 SINGLE ACQUISITION WITH FILE SAVE ....................... 11 LIVE ACQUISITION............................. 11 BUFFER CONTROL.............................. 12 IMAGE CONVERSION............................
Page 7
Display buffer destinations..........................22 PHX_EVENTCOUNT / PHX_EVENTCOUNT_AT_GATE ................23 HOW TO CREATE A SMALLER EXECUTABLE BY LINKING FIRMWARE OBJECT FILES ....23 Phoenix Firmware Object Files ...........................23 Extract the Firmware Object File(s) ........................24 Link the Application to the Required Firmware Object File(s)................24 Camera Control ................................26 EXPOSURE CONTROL............................26...
Page 8
Phoenix User Manual Introduction Example ................................34 SEQUENCE CONTROL ............................35 Examples ................................36 HOW PHOENIX USES MEMORY BUFFERS..................... 37 Internal Memory..............................37 Retrieving the Buffer Details ..........................37 Virtual Memory..............................37 Physical Memory ..............................38 IMAGE CORRUPTION (FIFO OVERFLOW)...................... 39 Image Slip ................................
Phoenix User Manual Introduction Introduction SCOPE This document provides overview information regarding the Phoenix series of frame grabbers and answers some of the most frequently asked questions posed to phoenix.support@activesilicon.com. DOCUMENT STRUCTURE The document is broken down into the following major sections •...
D24CL PCI Express Camera Link. This is the PCI Express version of the above board. • D36 PCI LVDS. The Phoenix-D36 is a PCI board for the acquisition of digital data from a variety of sources, including digital frame capture and line scan cameras. It has 36 bits used for input data, with 4 bits for control.
Phoenix Display Library (PDL). This library allows the user to easily display images captured using a Phoenix image capture device. PDL is closely coupled to the Phoenix image capture library (PHX), configuring itself using the parameters of the associated Phoenix instance.
D10HDSDI : Single input HD-SDI frame grabber, • D20HDSDI : Dual input HD-SDI frame grabber, • D36 : 36-bit LVDS frame grabber The Phoenix boards are available in PCI Express, PCI, CompactPCI, PMC, PCI/104-Express and PC/104- Plus form factors. FEATURE LIST PHX-D24CL PHX-D48CL...
THE POCL LEDS (4, 5) The Phoenix Camera Link boards support the Power over Camera Link (PoCL) functionality and are able to provide power to PoCL enabled cameras via the Camera Link data cable thereby removing the need for a separate power supply.
No LEDs : Sensing mode, whereby the Phoenix board is scanning for any PoCL or non-PoCL camera to be connected. Note that if the clock is lost whilst the board is in the solid Amber or Green states, Phoenix will revert back to sensing mode to allow users to change between PoCL and non-PoCL cameras.
Page 16
85MHz, using the Camera Link Strobe (STB) and Data Valid (DVAL) signals. Camera FIFO: Data from the video source is stored in a FIFO prior to being processed by Phoenix. The acquisition trigger control module is used to determine which video frames to Acquisition acquire from the camera.
Page 17
Opto-Isolated I/O: 4 bits of opto-isolated I/O are provided to interface to external systems. As standard, Phoenix is configured with 2 bits of input and 2 bits of output, but this can be varied as factory build option. The outputs are designed to sink up to 20mA, and will withstand 24V when “off”.
Page 18
For opto-isolated, EIA-644 & TTL I/O there are internal 20 & 26 way 0.1” IDC headers, with the option to bring these out to a 50 way mini D on an adjacent PCI slot. A 10 way 0.1” IDC header (“Chain”) allows two Phoenix boards to be used together to simultaneously acquire from wider sources.
The Phoenix library (PHX) provides acquisition and control features for the Phoenix image capture boards. • The Phoenix Firmware library (PFW) contains the firmware designs and is used by the PHX library to allow the Phoenix board’s functionality to be upgraded with new SDK releases. •...
Example application code is supplied as part of the Phoenix SDK. These examples illustrate how the Phoenix libraries can be used in various user applications. They are listed in ascending order of complexity, hence the user will benefit by working through them in sequence.
This example shows how to initialise the Phoenix board and use the buffer library (PBL) to run live double buffered (also known as ping-pong) acquisition, using a callback function.
The camera handle hCamera is used as the first parameter in most of the Phoenix library (PHX) function calls. It indicates to the Phoenix library which channel of which board is to be accessed.
A pointer to a user defined custom error handler function. Examples To find and initialise the first un-configured channel on the first Phoenix board in the system using the camera configuration file provided, using the default supplied error handler: PHX_CameraConfigLoad( &hCamera, “file.pcf”, PHX_DIGITAL |, PHX_BOARD1, &PHX_ErrHandlerDefault );...
Phoenix User Manual Phoenix Board Control CAMERA TAP CONFIGURATION A tap is an image data channel provided by the camera. A camera may have just one tap, or it may have multiple taps i.e. it can generate image data from multiple areas of the image in parallel. Each vertical tap provides image data from a particular line.
Phoenix User Manual Phoenix Board Control necessary to specify which half of the line is generated by each of the taps since cameras vary in their definition of tap ordering. In this case we specify the ordering as ascending which means that tap 1 generates the left hand side of the line (i.e.
Error Status Codes All of the Phoenix SDK functions return an enumerated value of type etStat which is used to return the status (success or otherwise) of the function being called. These values are defined in the phx_api.h header file, and their meanings are outlined below.
Page 27
Phoenix User Manual SDK Concepts PHX_ERROR_INTERNAL_ERROR An internal error has occurred in the library. Please contact Active Silicon for further support. PHX_ERROR_OVERFLOW A data overflow has occurred. This could be a PCI FIFO overflow, or a comms Receive/Transmit buffer overflow for example.
Error Handler Function When configuring a Phoenix board, the fourth parameter of PHX_CameraConfigLoad is a pointer to an error handler function. This gets called when an error is encountered within the PHX library. The function...
Phoenix User Manual SDK Concepts I/O PORT ACCESS Phoenix has a number of I/O ports which can be used for controlling external equipment, sensing etc. The following ports are available: LVDS Phoenix board Camera Link Phoenix board Two 8 bit bidirectional TTL ports (A and B).
Phoenix board will automatically convert the captured image data to the destination format and transfer this over the PCI bus. This means that if the display mode is 32-bit and the camera source is 8-bit then the Phoenix board will actually transfer 32-bits/pixel.
This can be done using the PHX_ParameterSet function with the PHX_DST_FORMAT set to the relevant bit depth. Double Buffering Phoenix can make use of double buffering to help improve the performance of the system. On creation a display is associated with a board, see below. PDL_DisplayCreate( &DisplayHandle, HwndHandle, PhxBoardHandle, ErrHandler );...
• PDL_BUFF_VIDCARD_MEM_INDIRECT A ‘_DIRECT’ buffer is one that will receive DMA data from the Phoenix board. These buffers are used to directly display the captured image. An ‘_INDIRECT’ buffer is a displayable buffer that will be used to accept processed data. The usual scenario is that you have captured your image to memory (in a ‘_DIRECT’...
Link the Application to the Required Firmware Object File(s) The following makefile shows how to build the ‘phxinfo’ example application under DOS32 (using DJGPP), assuming that the Phoenix board is a D24CL in a 32-bit, 33MHz, 3.3volt PCI slot. vpath %.c ../../common INCDIR1 = ../../../../include...
EXPOSURE CONTROL Phoenix has the ability to trigger the camera in order to operate in asynchronous reset mode. Most modern cameras have the ability to reset the sensor and internal timings so that it is ready to take another picture.
Phoenix User Manual Camera Control PHX_IO_CCOUT_A bit 2 3,16 CC3+, CC3- PHX_IO_CCOUT_A bit 3 15,2 CC4+, CC4- PHX_IO_CCOUT_B bit 0 5,18 CC1+, CC1- PHX_IO_CCOUT_B bit 1 17,4 CC2+, CC2- PHX_IO_CCOUT_B bit 2 3,16 CC3+, CC3- PHX_IO_CCOUT_B bit 3 15,2 CC4+, CC4- Exposure Control Methods The exposure control signals can be driven in one of three ways.
Here, the width of CcIo_1 is defined by the width of Timer_1, which is set using the PHX_IO_TIMER_1_PERIOD parameter in the Phoenix Library. The width of CcIo_2 is defined by the width of Timer_2, which is set using the PHX_IO_TIMER_2_PERIOD parameter in the Phoenix Library.
Phoenix User Manual Camera Control Exposure Trigger Block Diagram The following block diagram shows how the internal Exposure Trigger signal is generated. When PHX_LINETRIG_TIMER_CTRL is PHX_LINETRIG_TIMER_TIME, the timer outputs a square wave of period PHX_LINETRIG_TIMER_PERIOD microseconds. When PHX_LINETRIG_TIMER_CTRL is PHX_LINETRIG_TIMER_LINES, the timer divides the AUXIN signal by PHX_LINETRIG_TIMER_PERIOD lines.
In many vision applications you may need to trigger the frame grabber from an external source to acquire a new image. The source could arrive from a variety of sources and therefore Phoenix has number of different options for trigger inputs.
PHX_ACQTRIG_ALIGN Internal Control Phoenix has various options over which edges or levels of the trigger source are used, as controlled by the PHX_ACQTRIG_TYPE parameter. Note that the default setting for the acquisition trigger type is PHX_ACQTRIG_NONE, i.e. Phoenix does not wait for an acquisition trigger before starting an image capture.
The PHX_CAM_TYPE parameter should be set to PHX_LINESCAN_ROI for example in order set the Phoenix board into line scan mode. In line scan mode, Phoenix uses the Line Enable signal to initiate the capture of image data instead of the Frame Enable signal used during area scan mode.
Enable all of the above interrupts. * This is only generated if PHX_ACQ_CONTINUOUS is disabled. ** This occurs if the Phoenix cannot transfer the data to the destination fast enough and therefore data is lost. Implementation Any of the above interrupts can be enabled or disabled using the PHX_ParameterSet with the PHX_INTRPT_SET parameter.
Phoenix User Manual Acquisition Control The Callback function is registered on the call to PHX_Acquire and will be called on each interrupt that has been set. PHX_Acquire( hCamera, PHX_START, Callback ); Example This example demonstrates how a callback function can be registered to be executed following the end of each image capture.
PHX_CameraRelease( &hCamera ); SEQUENCE CONTROL Before starting an acquisition, Phoenix will link together a series of acquisition buffers to form a sequence. The number of images in the sequence is defined by the PHX_ACQ_NUM_IMAGES parameter. If this is 1 for example, then only a single image will be captured. If it is 5 for example, then there will be 5 buffers in the sequence.
Phoenix User Manual Acquisition Control • If this is PHX_DISABLE, then the next buffer in the sequence will always be overwritten, irrespective of whether or not it has been released. The PHX_ACQ_BUFFER_START parameter can be used to specify which buffer of a sequence will be captured into first.
Acquisition Control HOW PHOENIX USES MEMORY BUFFERS For maximum flexibility, all the Phoenix products support the use of three different types of destination memory; Internal, Virtual and Physical. These different memory types are selected via the PHX_ParameterSet function called with the PHX_DST_PTR_TYPE parameter.
/* Terminate the end of the array with NULL parameters */ asImageBuffs[kiNumOfBuffs].pvAddress = (void *) NULL; asImageBuffs[kiNumOfBuffs].pvContext = (void *) NULL; /* Pass the buffer information to Phoenix, and instruct it to use these buffers. PHX_ParameterSet( hPhoenix, PHX_DST_PTRS_VIRT, (void *) asImageBuffs ); eParamValue = PHX_DST_PTR_USER_VIRT;...
Image Slip In certain circumstances, access to the PCI bus may be temporarily denied to the Phoenix board, and as a result, data in the PCI FIFO can be overwritten before it is transferred across the PCI bus. This is termed a FIFO OVERFLOW.
Severe Image Corruption By default, Phoenix will convert the captured image data from the camera output format to the required destination format of the buffer allocated on the host or graphics memory. If the destination buffer is to be displayed, its pixel depth is usually set to 32-bits.
Page 50
Phoenix User Manual Acquisition Control In this instance, simply aborting and restarting acquisition will make no difference. The solution is to reduce the data rate across the PCI bus. Within an application, the user should change the format of the destination buffer ( PHX_DST_FORMAT ) so that it matches the camera’s output format (for example an 8-bit camera will need...
The outer box designates the total image data generated by the camera. This is dictated by the camera hardware and cannot be altered using the Phoenix libraries. The box within the outer box designates the active area. This is the valid image data generated by the camera.
The destination format of the output image is defined using PHX_DST_FORMAT. The camera source data is mapped in hardware by the Phoenix board before being written to the destination buffer. Note that the user should be aware that using high pixel rate cameras with certain destination formats (e.g.
Multiple LUTs can be defined per image line, and per camera tap/colour component. Since Phoenix only has a finite amount of physical memory available for holding the hardware LUTs, the number available is dictated by the camera source image depth.
Phoenix User Manual Image Control The above settings may be modified and PHX_ParameterSet called using the PHX_LUT_INFO parameter. This will cause the library to regenerate the LUT using the new settings. User allocated LUT data In order to use a custom LUT, the user creates a buffer containing the mapping data (each entry being 16 bits regardless of camera depth), and sets pwLutData to point to this.
SAVING IMAGES WITH GREATER THAN 8-BIT DATA When using the Sequence tab on the Phoenix Control Class property sheet (under win32) to save a captured image buffer (or complete sequence), the following dialog box is displayed: The “Save as type:”...
Page 56
Phoenix User Manual Image Control Format Description JPEG Monochrome images are saved as 8-bit mono JPEG. Colour images are saved as 24-bit colour JPEG. TIFF Monochrome images of greater than 8-bit depth are saved as 16-bit mono TIFF. Monochrome images of 8-bits are saved as 8-bit mono TIFF.
Page 57
Artisan Technology Group is your source for quality new and certified-used/pre-owned equipment SERVICE CENTER REPAIRS WE BUY USED EQUIPMENT • FAST SHIPPING AND DELIVERY Experienced engineers and technicians on staff Sell your excess, underutilized, and idle used equipment at our full-service, in-house repair center We also offer credit for buy-backs and trade-ins •...
Need help?
Do you have a question about the PHOENIX and is the answer not in the manual?
Questions and answers