For FIW64, it is also necessary to install the dedicated driver provided by ADLINK to enable DI/O and trigger functions. Run FIW64_SetupDisk.exe from the CD and follow the wizard to complete the installation (note that for Vista and above systems, the User Account Control UAC needs to be turned off, otherwise the driver may not load properly).
After installation, the device nodes corresponding to ADLINK FIW64 can be seen in the Device Manager.
5.3 Linux and other systems
Although the manual mainly targets Windows, the 1394b driver based on the OHCI standard can be supported in Linux through open source libraries such as libraw1394, and commonly used machine vision software such as HALCON and VisionPro can also access the card through the driver layer. For the triggering and I/O parts, ADLINK provides Linux version drivers (to confirm support with the manufacturer), it is recommended to contact FAE for assistance.
Key points of function library programming
ADLINK provides a complete API library (header files and DLLs) for FIW64, covering system initialization, device enumeration, digital I/O control, trigger parameter settings, and more. Key function list (see Chapter 4 for details):
System management: FIW64Initialize (load driver), FIW64_SetTotalDeviceNum (get card quantity), FIW64_SetTotalDeviceID (get card IDs), FIW64_SesetDevice (reset channel), FIW64_SetFirmwareVersion (version check).
Digital I/O: FIW64_SetDO (set/reset output), FIW64_SetDI (read input status).
Trigger control: FIW64_SetTriggerDelayTime、FIW64_GetTriggerDelayTime、FIW64_SetTriggerWidth、FIW64_GetTriggerWidth、FIW64_SetTriggerPolarity、FIW64_GetTriggerPolarity。
Error handling: FIW64_GetError Message converts error codes into readable strings.
Programming specification: Each ChannelNo is determined by both the Card ID and port index. For example, for a card with Card ID=0, the ChannelNo corresponding to its four 1394b ports is 0-3; Cards with Card ID=1 correspond to 4-7, and so on (up to a maximum of 4 cards). All APIs return 0 to indicate success, and negative error codes are defined in section 4.3 (such as -1 indicating device does not exist, -7 parameter exceeding limit, etc.).
Typical initialization process:
int ret = FIW64_Initialize();
int devNum;
ret = FIW64_GetTotalDeviceNum(&devNum);
if(devNum > 0) {
int ids[4];
FIW64_GetTotalDeviceID(ids, 4);
//Use the first card, ChannelNo=0
FIW64_SetTriggerDelayTime(0, 500); //Delay 500ms
FIW64_SetTriggerWidth(0, 100); //Pulse width 10ms (100 * 0.1ms)
FIW64_SetTriggerPolarity(0, 3); //Rising edge input, high effective output
}
Common troubleshooting and optimization suggestions
Camera unable to recognize: Check if the 1394b cable connection is secure and if the LED is on; Confirm that the camera has sufficient power supply (external power supply or+12V provided through CN5); Try replacing the port to eliminate single port faults.
Trigger output no response: Confirm that the trigger input signal level meets the specifications (high ≥ 2.4V, low ≤ 0.5V), pulse width ≥ 0.1ms; check if the polarity of the software configuration is correct; Measure the trigger output pin with an oscilloscope and observe for any pulses.
Unstable image transmission: Ensure the use of high-quality shielded 1394b cables and avoid bundling with high voltage or frequency converter cables for wiring; Check if there are other devices occupying too much PCIe bandwidth in the system (which can be allocated through BIOS settings).
Multi card ID conflict: If multiple FIW64 cards are installed, different IDs must be assigned through DIP switches, and the IDs of each card cannot be duplicated, otherwise the driver enumeration will fail.
Windows Vista/7 driver signature issue: If using a 64 bit system, it may be necessary to disable driver forced signature or use test mode; It is recommended to upgrade to a newer operating system and use the updated driver version of ADLINK.
