|
·General questions (all products)
·Troubleshooting (all products)
·Product-specific:
·Device Driver FAQ
General Questions about our Hardware and Software
Are EDT support software packages available on-line?
Is the support software included with the boards?
What operating systems are supported?
Which versions of the OS are supported?
Can I get the Source Code?
What format are the installation files in?
How often are the software support packages updated?
Where do I find more detailed technical information than is on your data sheet?
What is PCI?
What is PMC?
What is SBus?
What is AIA?
Does EDT manufacture NTSC (RS-170) or PAL (CCIR) video cards for PCI Bus?
How are the boards numbered on Solaris systems?
Your data sheet recommends a dual PCI bus system for certain high throughput situations. How do I know if a given system is dual PCI bus? Where can I get these systems?
What are ring buffers and how are they used?
How can I perform continuous high-speed DMA?
How can I eliminate gaps in my data stream?
How can I perform efficient DMA on multiple channels?
Which of your PCI boards work in 3.3 volt PCI slots?
Troubleshooting (all products)
Having trouble compiling EDT applications under VC6
On Windows 2000, I installed the board, then the driver. But the board is still not recognized by the system.
Should a description for the EDT PCI board show up in the device manager under Win2000? An unrecognized PCI device shows up instead.
Getting data loss or timeouts on a DELL computer
I'm running your board on a Solaris system, and I used to be able to access the board at /dev/<dev>0 (e.g. /dev/pcd0) but now the application says "no such file or directory." What's Wrong?
Get driver not attached when installing on SBus
Having trouble linking with labview
System won't boot with the EDT board in the system
Sun Ultra system crashes with an MMU miss with EDT board in the system
Get linker errors when trying to compile EDT sample programs
Running under Linux, with 1+ GB of memory and EDT board in the system, gets memory errors or hangs
Trying to build a program with Visual c++, I get a warning "...libedt.c(xxxx) : warning C4013: '_beginthreadex' undefined; assumign extern returning int", and a linker error "libedt.ob : error LNK2001 : unresolved external symbol __beginthreadex"
The driver won't load or crashes the system when run on Windows 2000.
PCI DV Family
Will programs written for one EDT Digital Video product work on the other ones?
What Cameras are supported by the EDT PCI Digital Video board?
My camera doesn't show up on your list of supported cameras. How to add support?
My camera shows up on your list of supported cameras but not for the mode I want. How to add the mode?
What is the difference between the PCI DV and DVK?
What is the difference between the PCI DV and DVa?
What's the maximum frame rate I can achieve with the PCI framegrabber board?
Which camera functions are supported by the framegrabber board?
Having trouble accessing edt subroutines from a C++ program. How to do it?
Can the PCI DV/DVK do Redlake MASD (Kodak) TDE (Triggered Double Exposure) mode?
Are Photometric Sensys cameras supported on the PCI DV/DVK/RCI?
Can't communicate with camera/camera settings have no effect
Get message "invalid or missing serial" from camera initiation (initcam)
Changing shutter speed on PCI DV doesn't work
Changing shutter speed on PCI DV has wierd effects
PCI DV with Megaplus ES1.0 gets shifted images/timeouts on dual processor pentium machines
Getting timeouts or other image acquisition problems on Cincinatti Electronics IRRIS cameras
PCI CD, PCI GP, PCI SS
After installing the PCI CD board on a Windows 2000 system, installed the EDT software and ran: "xtest 4096". Got the following message: `.' is not recognized as an internal or external command, operable program
Having voltage problems when running a PCI SS on a Dell 2950
How can I tell which bitfiles perform what functions on PCD and related boards?
PCI 11W
PCI 16D
Is the pci16d-card software-compatible to the s16d?
PCI 53B
SDV
Getting data loss or timeouts with SDV on Sun ULTRA 10 or 20, system load dependent.
SCD
S11W
S16D
S16D on SunOS 5.x - Can't quit out of app if still waiting for data
S16D on SunOS 4.x - Can't quit out of app if still waiting for data
s16d on 5.1 - gnu compiler problem on Solaris
Is the pci16d-card software-compatible to the s16d?
S53B
Why so long between bc commands
Can you disable one of the channels with software control? He wants to simulate failure of one or the other of the busses.
Can you simulate data corruption, i.e. put a garbage message on the line to simulate errors?
Customer is sending 4K words at expected 16 bits/second. Wants to know if you can calculate how many SBus interrupts this kind of traffic will generate.
SSD4
I have an Ultra 60 with a PCI SSD4 board. If I configure the board for one channel and use a program that has the software configured for data capture using ring buffers, the capture works ok. I now want to configure for two...
Are EDT support software packages available on-line?
Device driver/software updates are available on this web site under Software Support. The updates are identical to what is currently being shipped on CD-ROM disks with the boards. Be sure to read the associated README file when you download the software for instructions on extracting and installing. And always remove any previous versions of the software before installing a new one, using the appropritate utility (Add/Remove on NT, pkgrm on Solaris).
Is the support software included with the boards?
A CD-ROM disk containing the support packages, including device drivers for supported operating systems, is included with the board at no extra charge.
What operating systems are supported?
Presently we provide device drivers for the Sun Solaris Operating Environments running Solaris 2.6 - 10, on Sparc and Intel (X/86) platforms, for all of our Sbus and PCI products. Windows NT/2000/XP drivers are available for our PCI products. SunOS (tm) 4.1.x device drivers are available for SBus products only. Drivers for Linux and Silicon Graphics are available for a subset of EDT products. If the driver you are looking for is not on the Driver/Software page, contact EDT for information and updates.
Which versions of the OS are supported?
For this and answers to other device driver / operating system questions, see the Software/Driver FAQ.
Can I get the Source Code?
Source code for the example programs, utilities, and libraries is included with the packages. Device driver and GUI application source code is not provided.
What format are the installation files in?
SunOS (tm) versions of the on-line packages are in tar format, or in some cases, compressed tar format. Solaris versions are in pkgadd format. Windows versions are in Zipped .exe InstallShield format, and can be installed directly from the web or copied to an installation executable on your machine. Linux versions are in gnu zipped tar (tgz) format.
How often are the software support packages updated?
That depends on the product in question. The software for the PCI DV and PCI RCI (Digital video) boards is updated frequently, as support for new cameras is added. Software for other board is updated less frequently. Best bet is to check the version link associated with the software in question against the version file in your installed package, to find out if you have the current release.
Where do I find more detailed technical information than is on your data sheet?
In the manuals. They are on the CD-ROM included with the board, and also on our web site -- click here to go directly to the manuals web page.
What is PCI?
PCI Bus is the most widely used I/O bus in use today. PCI slots are present in most Intel based computers, as well as Sun, HP, Silicon Graphics, IBM, and other workstations.
The targeted PCI bus is PCI 2.1: 5-Volt / 32-bit / 33 MHz. The peak data throughput is 132MBytes/second.
A good resource for information on PCI is the PCI SIG web page.
What is PMC?
PMC Bus is actually a form factor, not a bus -- it is electrically the same as the PCI Bus, but the shape of the board and the bus connectors are different. Designed for ruggedized implemenations, the PMC form factor provides a secure mounting platform for PMC VME mezzanine boards. PMCCIA to PMC bus extenders are also available. EDT's PMC boards use the same software, firmware, and device drivers as their PCI Bus counterparts.
What is SBus?
Designed by Sun in 1989, the SBus board was for many years standard I/O interconnect for Sun computers, which typically run under the Solaris or SunOS flavor of the UNIX operating system. EDT was there from the start, providing boards to interface SBus computers to a a variety of devices. In July 1997, Sun began producing UltraSparc computers with a PCI Local Bus in place of the SBus. EDT was right there with them, with a line of compact, half-length PCI Local Bus interface boards with parallel functionality to our SBus line.
What is AIA?
AIA is the interface standard initially developed for Kodak MEGAPLUS series cameras (now owned by Redlake) series cameras, and has since been adopted by other digital camera manufacturers.
Standard Designation:
BSR/AIA A15.08/3-199X
Title:
Automated Vision Components - Cameras - AIA Monochrome Digital Interface Specification
Available from
Automated Imaging Association
900 Victors Way/ P.O. Box 3724
Ann Arbor, MI 48106
(313) 994-6088
Does EDT manufacture NTSC (RS-170) or PAL (CCIR) video cards for PCI Bus?
No.
Having trouble compiling EDT applications under VC6.
The main issues for using VC6 projects (modify these using "Project/Settings"):
1. Use the multithreaded DLL under - C++/Code Generation
2. Don't use pre-compiled headers - C++/Pre-compiled headers
3. Add c:\edt\pcd to the C++/Preprocessor/Include Paths and Link/Input/Additional Library Paths
4. Add pcdlib.lib to modules list in Link/Input
Click here for a .dsp file which will compile simple_getdata.c in an arbitrary directory. You can change the name of the file to compile your program.
On Windows 2000, I installed the board, then the driver. But the board is still not recognized by the system.
The problem is that the Windows 2000 system has a placeholder device installed which prevents the EDT driver from loading. This happens if you install the board before loading the software (which is the obvious way to do this, of course).
To fix this, go into the Device Manager (Control Panel -> Administrative Tools -> Computer Management -> Device Manager). There should be something like "Unknown Base Device" with a question mark, either under Base Devices or Edt. Select that line and using the right mouse button select "Uninstall" (not Disable). Then go to Actions and select "Scan for New Hardware". If our driver is installed you should see something like "Edt found". When it asks if you want to search for a driver say OK, then it should show that it has found our driver. Finally, when it says "Finish", you should have a running driver. You shouldn't have to reboot.
Get driver not attached when installing on SBus
There are several possible reason for this, but the most common is 64 bit OS with non 64-bit package. If scd or sdv need to get supplemental driver file from the web/ftp site. s11w and s16d not yet available (2/23/2000).
Having trouble linking with labview
The "extern C" is for compiling C++ programs and linking in the C headers. So the "extern C" shouldn't be used in a C file like libedt.c. The file sharing error does indicate that the file is already opened for exclusive access. I don't know enough about how your program works within LabView to be sure how to fix it. You can specify whether you want exclusive access when you open the file in your program. When the program exits, the file should be available whether or not you closed it explicitly, since all files are closed at program termination. Maybe the way LabView executes your program leaves it active...
Should a description for the EDT PCI board show up in the device manager under Win 2000? An unrecognized PCI device shows up instead.
When Windows 2000 first came out, the Windows NT drivers were used for both NT and 2000. This message will show up if you have one of those drivers. The NT drivers worked all right on 2000, however drivers designed specifically for Windows 2000 and Windows XP are now available and can be downloaded from the Software/Drivers page.
System won't boot with the EDT board in the system
Some motherboards violate the PCI specification on how long to wait after a power-on reset before doing an assert on the bus, which sometimes causes lockups when using our boards (which do follow the spec).
Although the problem is with the motherboard not the PCI board, we have implemented a hardware modification to our boards that eliminates this problem. If you are experiencing this problem call EDT and tell them you think it may be this "power on reset" issue, and we will be happy to modify the board. Newer boards (shipped after mid- 1999) have this fix built in.
Sun Ultra system crashes with an MMU miss with EDT board in the system
Probably related to a hardware issue on Sun Ultras. Fix is to download and install patch #107458 from the Sun web site.
Get linker errors when trying to compile EDT sample programs
Assuming you're using Microsoft Visual C, this is probably a VC5/VC6 issue. Prior to V3.1.3, packages were compiled under VC5, and this can cause problems when trying to link programs compiled under VC6. Solution: go get the latest version of the package.
Running under Linux, with 1+ GB of memory and EDT board in the system, gets memory errors or hangs
The problem is related to the way some versions of Linux deals with memory over 940 Mb. If system memory size is greater than that limit it isn't possible to DMA into user-allocated buffers. There are several ways to deal with this:
· Upgrade to a version of linux with kernel version 2.4.17 or 2.4.18, and install the latest EDT drivers.
· Boot the system with "mem=896M" on the boot line. This will disable the higher memory and avoid the problem (also a good way to verify that it is the cause of the problem in the first place).
· Use EDT's kernel memory ring buffer allocation. After DMA for a buffer is finished, the data is copied to the user-allocated buffer. All library functions for DMA should work the same. If you look at xtest.c in the driver directory it has a call to an ioctl EDTS_DRV_BUFFER:
if (kernel_buffers) { int i = 1; edt_ioctl(edt_p, EDTS_DRV_BUFFER,&i); }
This tells the driver to use kernel buffers for DMA. When you call pdv_read or use the ring-buffers the contents of the buffer will be copied to the user-space buffer automatically. To test this try running xtest -k. Without the -k option, xtest should show all zeroes after the read command. With it, there should be counter data displayed.
Trying to build a program with Visual c++, I get a warning "...libedt.c(xxxx) : warning C4013: '_beginthreadex' undefined; assumign extern returning int", and a linker error "libedt.ob : error LNK2001 : unresolved external symbol __beginthreadex"
This error comes from the default settings for a Visual C++ console app project. If you go into "project settings", "C/C++", "Code Generation", then change the run-time library to "Multithreaded" or "Multithreaded DLL", the program should compile.
The driver won't load or crashes the system when run on Windows 2000.
The problem is likely tied to older versions of the EDT drivers and Plug-N-Play, which needs to be disabled in order for the oder EDT device drivers to work.
The reason is that EDT drivers up through 10/2000 didn't use the Windows 2000 driver loading model. Drivers after 10/2000 did. The preferred fix is to install a new driver package. Alternately, you can go to the BIOS and specify that you do NOT have a PlugNPlay OS, so that the BIOS will assign PCI resources for the EDT card. When Windows 2000 says it has found new hardware, go through the process of looking for a driver , which it won't be able to find (deselect all the places it wants to look to make it go faster). Then DISable the device, so that Windows 2000 will stop looking for a driver the next time you reboot.
Getting data loss or timeouts on a DELL computer
Two different issues that seem to be specific to DELL computers have shown up:
1. With some of their models, DELL recommends putting fast board such as Video and graphics (and by implication, EDT boards) in the first two slots (closest to the AGP slot) as these slots are designed for higher throughput. This may be true of other manufacturers as well. Check your computer manufacturers' instructions for more information.
2. On a Dell Zeon system (and possibly others), the built-in network controller has been found to generate an inordinate number of interrupts. This causes other interrupt-driven subsystems such as EDT interface drivers to run slower and possibly lose data. The workaround is to install a PCI or (preferably) AGP network card, and disable the motherboard network controller.
I'm running your board on a Solaris system, and I used to be able to access the board at /dev/<dev>0 but now the application says "no such file or directory." What's Wrong? How are boards numbered in Solaris systems?
The boards should come up as <dev>0, <dev>1, ..., <dev>N (for example, /dev/pcd0 ). The only difference the software will make is which one you open, and that depends which slot the boards are installed in. Which physical slot maps to which number is system dependent, and and will vary depending on how many boards are installed, and whether the system is a single or dual PCI Bus system.
Solaris also remembers where boards are installed so if you move them the numbers may be wrong. The way to deal with this is to edit /etc/path_to_inst and delete all lines with the string 123d , then force a write with :x! in vi. Next, touch /reconfigure and reboot the system. The numbers should start from zero again when the system comes up.
Your data sheet recommends a dual PCI bus system for certain high throughput situations.. How do I know if a given system is dual PCI bus? Where can I get these systems?
For some reason, system manufacturers aren't always clear about this in their literature. But you can usually infer the answer. Any system that advertises both 66 MHz and 33 Mhz slots has two or more PCI busses. Also manufacturers typically DO state when they have 66Mhz busses, if they don't say 66Mhz PCI Bus or PCI-X, you can pretty much guarantee that it's NOT 66Mhz Examples of dual PCI bus systems that have been tested in EDTs labs include the Intel 840 and the ServerWorks Super P3TDE6-G and Super 370DE6-G. These systems are avalable at SuperMicro (http://www.supermicro.com).
What are ring buffers and how are they used?
How can I perform continuous high-speed DMA?
How can I eliminate gaps in my data stream?
How can I perform efficient DMA on multiple channels?
Ring buffers are used for continuous and efficient data transfers on EDT DMA boards. One ring buffer per channel is used in place of a sequence of read or write system calls. DMA resources are expensive to allocate and deallocate, and ring buffers does this at initialization time to eliminate latency and inefficient use of system resources between DMA buffers. DMA to the buffers runs asynchronously and only uses about 1-2% of the CPU.
Look at the beginning of the "Input and Output" chapter for a couple of 10-line sample programs using ring buffers. Think of a ring buffer like a clock divided into as many buffers as you configure. Four 1MByte buffers is a typical configuration.
edt_configure_ring_buffers()
is called to set up the ring buffer.
edt_flush_fifo()
is sometimes called to clear the input or output fifos.
edt_start_buffers() with numbufs
is called to start DMA and continue through numbufs buffers. DMA then sweeps across the first buffer as the driver programs the second set of double-buffered DMA registers. Now we have a Current and a Pending DMA programmed into the board; two buffers.
When the first buffer completes the hardware automatically starts the Pending buffer then interrupts the host computer which a) programs a new Pending buffer and b) sends a wakeup event to the user process which is waiting in:
u_char *buf = edt_wait_for_buffers(edt_p, 1) ;
This function waits for buffer 0, then 1, then 2, etc on each succeeding call. If the buffer has already completed it returns the buffer address immediately, otherwise it blocks until the buffer is done. Now, while the next buffer is sweeping across its section of the clock, the user program can process the data in buf. It must complete this processing as fast as or faster than the DMA, otherwise the DMA races around the clock and overwrites the buffer you are processing. There are several ways to detect this:
-
edt_done_count(edt_p) returns the number of buffers completed by the driver DMA engine.
-
edt_buffer_overrun(edt_p) returns 1 if you haven't called edt_wait_for_buffers() fast enough to keep ahead of the DMA.
A typical application looks like:
#include "edtinc.h" // includes stdio, sys/types, a few others
main()
{
EdtDev *edt_p = edt_open("pcd", 0) ; // no error checking here!
u_char *buf ;
edt_configure_ring_buffers(edt_p, 4, 1024*1024, EDT_READ, NULL) ;
// NULL causes libedt to allocate page-aligned buffers.
edt_start_buffers(edt_p, 4) ;
for (;;)
{
buf = edt_wait_for_buffers(edt_p, 1) ;
process_buffer(buf) ;
edt_start_buffers(edt_p, 1) ;
}
}
Our boards have two FPGAs, the "PCI Xilinx" implementing the PCI spec and the "Interface Xilinx" which talks to the drivers and receivers on the high density connector.
Some PCI/Interface bitfile pairs support one channel, some two, some four, and some 16. You can run one ring buffer per channel. I've attached /opt/EDTpcd/pcd_bitfiles, a summary of our PCD bitfiles. pcdrequest uses this file.
There are other ways to perform high-speed I/O. Programmed I/O and programmed/triggered DMA are two of them. We do a lot of custom work to help customers solve problems, and this work almost always ends up in the mainline product.
Which of your PCI boards work in 3.3 volt PCI slots?
EDT's current PCI line of products all work in both 3.3 and 5v slots.
Will programs written for one EDT Digital Video product work on the other ones?
The device driver and API model (pdvlib) is common across all EDT Digital Video products, including the PCI DV, DVa, DVK, DV44, DV C-Link, RCI System, and equivalent PMC and cPCI boards. As long as the program was written using the pdvlib, and doesn't have any direct IOCTLs or register writes to the board, the program will work without modification -- with a few exceptions. The first is any operation that is specific to a specific product. There are very few of these and they are noted as such in the documentation or example code. New products are another caveat -- If your program was written and compiled/linked with a versoion of the EDT S/W package that was released before a given product existed, you will need to download the new package and recompile with the new libraries and headers in order for it to work on that new product. In general however, no rewrite should be necessary. And lastly, if you have an SBus product, you will need to use the compatability library to port to the PCI version. It is 98% compatable but does require a port.
What Cameras are supported by the EDT PCI Digital Video board?
Lots. For AIA cameras, see this list. For camera link cameras, virtually all base mode cameras are supportable, and most medium mode formats are or can be supported. Configuration files are supplied for all cameras that we've had and tested in our labs; if there is none for your camera you can create one using our sample configuration files ( generic*.cfg for AIA cameras, genric*cl.cfg for camera link cameras) and the camera configuration guide [pdf]document.
My camera doesn't show up on your list of supported cameras. How to add support?
The answer to this question can be found in the Camera Support section of our web site.
My camera shows up on your list of supported cameras but not for the mode I want. How to add the mode?
The answer to this question can be found in the Camera Support section of our web site.
What is the difference between the PCI DV, PCI DVa and PCI DVK?
The PCI DVk was originally designed for simpler connectivity with Redlake (Formerly Kodak) MEGAPLUS series cameras that had 68-pin cabling. With these cameras, you can use a standard 68-68 straight-through cable or even a standard SCSI cable to connect to the PCI DVK. Some cables are available to connect the PCI DVK to other camera types, but in general, the PCI DV or PCI DVa is recommended for cameras other than Kodak/Redlake 68-pin AIA.
As for the PCI DV/DVa -- the PCI DVa is simply a newer, faster (66Mhz capable), less expensive version of the PCI DV.
NOTE: The PCI RCI and PCI DV FOX/RCX (remote fiber optic) modules have 68-pin connectors.
Software written for any EDT Digitial Video board will work with the others with little or no modification.
What is the difference between the PCI DV and DVa?
The PCI DVa is a new 66Mhz version of the PCI DV. The connectors are the same (80-pin) and capabilities are similar, however the PCI DVa can be run at 66Mhz if installed in a 66Mhz host PCI bus slot. This roughly doubles the maximum possible throughput.
What's the maximum frame rate I can achieve with an EDT PCI Framegrabber board?
Maximum frame rate is a function of the number of bytes per frame output from the camera, and the system's maximum sustained PCI bus throughput. The first is easily caluculated -- take the width x height x depth (in bytes) of the camera. For example, if your camera outputs 1024x1024x12 bits, that equates to 1024x1024x2 bytes per frame = 2,097,152 bytes, or 2MB, per frame.
Modern PCs (Pentium III or later, 500Mhz or better) can generally sustain 80-90MB/sec on a 33Mhz PCI card, slot, or up to 200MB/sec with a 66MHz card in a 66MHz PCI slot. The EDT PCI DV C-Link board is a 66MHz board; all others are 33MHz boards.
This means that we can get maximim frame rates of up to 45fps can be achieved with our hypothetical 1024x1024x12 bit camera on a 33Mhz EDT card such as the PCI DV, or 100fps with the PCI DV C-Link in a 66MHz slot. These figures are hypothetical -- as stated above, maximum real rates will depend on the camera's size and output speed.
In general, cameras output data at fixed frame rates, so as long as the board/PCI bus max sustainable throughput is more than what the camera is putting out, then you will get the data as expected without timeouts.
All of the above assumes that there is no other significant PCI bus traffic going on at the same time. Other PCI activity such as SCSI disk writes, PCI Video, or other PCI interface cards, will reduce the sustained max throughput and possibly cause timeouts from the EDT boards. Dual PCI bus systems (any system with both 66 MHz and 33MHz slots) will allow you to get the EDT board onto its own PCI bus and reduce the likelyhood of PCI bus saturation. PCI video boards should be avoided in favor of AGP boards. SCSI disks should be on a separate PCI bus.
Using a capture/display program such as pdvshow will also add the complication of the video display speed. You need to have a fast video card (AGP for sure as stated above) to display at the max rates; otherwise the video may not display every frame captured. If high speeds/small images are involved this may not even be noticeable, but with larger frames/lower frame rates it can be. If you see lower than expected frame rates with the capture/display program, run the "take" program (e.g. take -N 4 -l 100 ) to determine the maximum frame rate without the display.
Click this link for a broader discussion of system bandwidth issues, as well as the System Requirements in your EDT PCI board User's guide for more recommendations and requirements for maximum performance from your EDT PCI Interface board.
Which camera functions are supported by the framegrabber board?
With a few exceptions, all camera functions and modes are "supportable". However, for most cameras, configuration files for only a subset of "standard" modes is provided.
Programmers have complete access to all of the camera control commands and mode control registers and configuration file parameters, so modes and functions other than those provided in the standard package can be accessed. The GUI applications (pdvshow, dv30) only provide controls for a subset of most cameras' functions. Exposure, gain and black level controls are provided and work for most cameras that have that functionality.
In general however, programmers have complete access to all of the camera control commands and mode lines. Users can also edit or create new configuration files to initialized the board for different camera sizes and modes.
Having trouble accessing edt subroutines from a C++ program. How to do it?
extern "C" { #include "edtinc.h" #include "libpdv.h" } (sc)
Can the PCI DV/DVK do Redlake MASD (Kodak) TDE (Triggered Double Exposure) mode?
The board comes with software and pre-configuration files for different operating modes for a number of different cameras. The pre-packaged configurations and example and demo programs include triggered mode operation but not TDE mode. It should just take some minor tweaking to put the camera into TDE mode (either of the configuration file or after initialization using one of our utilities, or in an application program). Some programming will be necessary to capture the two images from one trigger. The EDT pcidv programming library contains everything you need to do that. There is at least one customer who has done this using our board although we do not have access to their code. Our manuals are on-line in PDF format, at http://www.edt.com/manuals.html. Along with the Redlake manual you should be able to see what it would take to set it up for TDE mode. (rh)
Are Photometric Sensys cameras supported on the PCI DV/DVK/RCI?
On the PCI DV, sort of. On everything else, not. The 1400 was tested on a PCI DV and works, but only in default power up mode, no programming through their library since they won't release the library source code or proprietary command format. Would be possible to port their lib to use edt calls if customer could get it it. Got a call from customer a while back about 1600 working only partly but never got a followup answer to our request to see the camera. Not anxious to support since it will take some work to get full lib support, unless/until we get larger orders and cooperation from photometrics. (rh)
Can't communicate with camera/camera settings have no effect
If serial Redlake MASD (Kodak), make sure the camera is in 422 serial mode. Redlake (Kodak) 'i' and 'ES' cameras are shipped configured either for RS-232 or RS-422 serial communication level; if configured for RS-232 the camera will not work with EDT PCI capture cards. If this is the case, you will need to contact Roper or your distributor and arrange to have the camera reprogrammed for RS-422 serial protocol.
Some older Kodak cameras (e.g. the Megaplus 1.6) have an RS-232/422 mode switch on the back -- this should be set to RS-422.
Some other cameras require a special cable with RS232->422 circuitry built in to the connector. Make sure you are using the proper cable, provided by EDT, which has the required circuitry.
Some cameras have proprietary serial command protocol ( Photometric) that has not been released to EDT, so EDT libraries are not able to communicate with them. If using a camera that has not been tested at EDT labs, there will be no implementation for the standardized 'C' library wrappers for such things as shutter speed and gain, and those functions will not work from within the capture/display programs dv30 and pdvshow, or the C library functions pdv_set_exposure, etc. However in this case serial commands should still accessible through the command line program serial_cmd and the 'C' library subruoutines pdv_serial_command, pdv_serial_binary_command, pdv_serial_write and pdv_serial_read.
Get message "invalid or missing serial" from camera initiation (initcam)
If serial Redlake MASD (Kodak), make sure the camera is in 422 mode (see Camera settings have no effect, above.)
Changing shutter speed on PCI DV doesn't work
If serial Redlake MASD (Kodak), make sure the camera is in 422 mode (see Camera settings have no effect, above.) If camera controlled or triggered, make sure polarity in config file matches up (see "changing shutter speed on PCI DV has wierd effects"). Is config file set up to do shutter (serial_exposure, method_camera_shutter_timing)? Is shutter speed implemented on this camera in the first place? Is external trigger port plugged in to the right port with BNC cable (SMD)? (rh)
Changing shutter speed on PCI DV has wierd effects
If serial Redlake MASD (Kodak), make sure the camera is in 422 mode (see Camera settings have no effect, above.) If camera controlled or triggered make sure polarity in config file matches up (TRM P goes with NOT INV_SHUTTER, and TRM N goes with INV_SHUTTER 1). HOWEVER, Redlake MASD (Kodak) ES4.0 expose pin is wired up backwards, so TRM P is actually negative and requires INV_SHUTTER, and if TRM N specified then should be NO INV_SHUTTER. Don't ask me why they did this.... The above is all true for Redlake MASD (Kodak), other cameras may be permanently or negative or positive or switchable, find out and set INV_SHUTTER or not in the config file accordingly. (rh)
PCI DV with Megaplus ES1.0 gets shifted images/timeouts on dual processor pentium machines
Versions of the Windows NT driver earlier than v3.1.0 had this problem. Upgrade the driver to at least v3.1.0, or whatever the current driver is. (rh)
Getting Timeouts or other image acquisition problems on Cincinatti Electronics IRRIS cameras
PCI DV or PCI DVK: Make sure you have an OPT IRRIS board (option sticker on the back side of the board). Make sure you have the updated aiagce.bit file (run camsetup.bat from the EDT Utilities window and note the date on the aiagce.bit file that gets loaded -- should be 2000/06/21 or later). The updated file is in v3.1.5 or later of the Software/device driver package, or can be acquired from EDT as a separate file -- contact EDT for the file.
PCI RCI: Make sure you have an OPT IRRIS RCI unit (option sticker on the bottom). Make sure the firmware on the RCI unit has been burned with the most current RCI .blk file. Contact EDT for help with this one.
After installing the PCI CD board on a Windows 2000 system, installed the EDT software and ran: "xtest 4096". Got the following message: `.' is not recognized as an internal or external command, operable program or batch file.
You must use v3.1.3 or later of the device driver package. Earlier versions had this problem under Windows 2000.
Having voltage problems when running a PCI SS on a Dell 2950
Some years ago, the PCI Bus 3.3 V power supply was optional on host computers, and some did not include it. Therefore, most EDT PCI SS boards were configured to switch over to the PCI Bus 5 V Power supply when 3.3 V power wasn't available.
The current PCI Bus specification, however, requires both 3.3 V and 5 V power, so the ability to switch between power supplies is no longer necessary. The power supply-switching circuit has interacted with at least one host -- the Dell 2950 -- to cause the system to fail to power on. If yopu have experienced this problem, neither the PCI SS main board nor the host computer have been harmed. However, the board will have to be modified to disable this switching circuit. The PCI SS Addendum: Modifying for 3.3V Power describes how to do this.
How can I tell which bitfiles perform what functions on PCD and related boards?
EDT PCD boards are equipped with a "PCI Xilinx" which has the DMA engine used to transfer data to/from the host computer. The PCI Xilinx is loaded at power-up from a flash PROM on the EDT board so it is available as the system configures during boot. The flash PROM may be loaded by the program "pciload" which is described in the "PCI CD User's Guide". Changes to the flash take effect after the power to the computer is turned off and back on.
A second Xilinx FPGA called the "Interface Xilinx" talks directly to the user's equipment, and may be loaded at anytime by the program "bitload". The "pcdrequest" program accepts menu selections to create a script to load the interface bitfiles.
The PCI flash loaded determines which interface Xilinx bitfiles can be utilized on the PCI CD board. The dependencies listed here are used by the "pcdrequest" program.
In the following listing, PCI Xilinx bitfiles are left justified. Interface Xilinx bitfiles are indented under the corresponding PCI bitfiles:
pcd20.bit: "PCI flash for RS422 PCI CD-20 boards"
pcd40.bit: "PCI flash for PECL PCI CD-40 boards"
pcd60.bit: "PCI flash for LVDS PCI CD-60 boards"
pcd_src.bit "16-bit parallel I/O synced to PCD source clock"
pcd_looped.bit "16-bit parallel I/O synced to external clock"
pcd8_src.bit "8-bit parallel dual channel I/O synced to PCD clock"
ssd.bit "One channel serial input"
ssd2.bit "Two channel serial input"
ssd4.bit "Four channel serial input"
ssdio.bit "Dual channel serial I/O"
ssdio_neg.bit "Dual channel serial I/O using negative clock edge"
ssdout1.bit "One channel serial output"
pcd16.bit: "PCI flash for 16-channel serial I/O on PCI GP"
ssd16.bit "16 channel serial input and output on PCI GP-20/60/ECL"
pcd64.bit: "PCI flash for fast 64-word burst DMA on PCI GP"
gp_pcd.bit "Fast 16-bit parallel I/O for PCI GP"
gp_pcd8.bit "Fast 8-bit parallel I/O for PCI GP"
pcdssd.bit: "PCI flash for four channel I/O on PCI GP"
gpssd4.bit "Four channel DMA serial input"
sseb.bit+sset.bit "Fast 2 channel serial for PCI GP-SSE, bottom + top"
pcdt.bit: "PCI flash for one channel Fiber Optic I/O on PCI GP-FOI"
gpfoi.bit "GP Fiber Optic Interface on PCI GP-FOI"
pciss16.bit: "PCI flash for 16 channel I/O on PCI SS and SS-Combo"
ssdin.bit "Fast one channel serial input on PCI SS-LVDS"
ssd16in.bit "16 channel DMA for serial input on PCI SS-RS422/LVDS"
eclssd16in.bit "16 channel DMA for serial input on PCI SS-ECL"
combo16in.bit "16 channel DMA for serial input on PCI SS-Combo"
PCI 53B does not work/hangs the computer
If on an Intel platform or clone, try running "pdb updatex86" (from /opt/EDTp53b if Solaris, or \EDT\pdv if Windows NT/2000/XP). If on a Sun platform, run "pdb updatesun". Then shut down the OS and completely turn off the computer. The change won't take effect until the power is cycled. This will insure that the board is properly configured for the hardware platform in use. After the system is back up, run "embselect", then "checkp53b". The embedded sparc should be running and "p53btest -p" should complete with no errors. Also make sure that you have a terminator directly on the primary connector, which is the one next to screw flange (opposite the PCI bus connector).
Getting data loss or timeouts with SDV on Sun ULTRA 10 or 20, system load dependent.
Make sure you have the FIFO upgrade on the SDV. Originally 72605s, upgrade is to 72615s.
S16D on SunOS 5.x - Can't quit out of app if still waiting for data
Early 5.x drivers had a problem - use new ioctl(S16_TERMINATE)
S16D on SunOS 4.x - Can't quit out of app if still waiting for data
Use ioctl(S16D_BCLR)
s16d on 5.1 - gnu compiler problem on Solaris
Make sure ANSI C is enabled.
Is the pci16d-card software-compatible to the s16d?
Your S16D software will have to be converted to use libedt functions. We can help you do this -- send email to tech@edt.com. including your code that accesses the S16D.
Why so long between bc commands
use bc_auto - takes intermessage gap
Can you disable one of the channels with software control? He wants to simulate failure of one or the other of the busses.
Can use the "selected transmitter shutdown" modecode for this maybe By default, when an RT is active, both channels are being listened to. S53B1
Can you simulate data corruption, i.e. put a garbage message on the line to simulate errors?
As specified in the manual, we can generate parity, gap, hiword, loword, noresp, slow, and sync errors. We can also detect manchester encoding errors in addition to the above, but can not generate them. Also, with the bc_auto structure interface, any invalid message can be sent. S53B1
Customer is sending 4K words at expected 16 bits/second. Wants to know if you can calculate how many SBus interrupts this kind of traffic will generate.
We get an interrupt for the Bus Controller if it is active at the end of every message. This only wakes up the application if the application wants it to. If the Bus Controller application is doing i/o with the bc_struct structure, it will only be awakened at the end of all of the commands for each sub address specified. If using the bc_auto structure it will not be awakened unless it was blocked by the application explicitly doing a wait. In Remote Terminal mode, the sun will be interrupted at the end of every message, but the application will only be awakened when it wants to be, as it specified with the receive masks. How much current does the S53B1 draw? Idle: 1.2. Driver loaded: 1.35. Pushing: 1.7. SBus spec is 2A.
I have an Ultra 60 with a PCI SSD4 board. If I configure the board for one channel and use a program that has the software configured for data capture using ring buffers, the capture works ok. I now want to configure for two channel or four channel inputs. From the DMA library routines, I cannot readily see how I can configure the software to look at a specific channel for a read, ie I want to read from 1,2,4 devices and create 1,2,4 files (depending on the selected configuration).
First some history, then the solution. The original SSD4 relied on software to demultiplex the data in the DMA buffer. Our original customer requested that we do this in the device driver, providing them with four devices, ssd. where is the SCD board number starting at zero and is the channel number ranging from 1 to 4. I did this in the SCD/SSD4 driver. When we moved to the PCI bus drivers, we were unable to put this code into the driver because many PCI systems require scatter-gather support (Sun does not but PC's do) in DMA hardware and driver software. This added enough complexity to the driver that we moved non-driver related code out of the kernel and into library and user application layers. I have moved the demultiplexing code out of the driver and into a daemon that creates the same devices as named pipes and provides the same functionality that used to be in the driver. The compatibility package is on ftp.edt.com under /pub/ssb/EDTssd.tar.Z, and there is a README file describing installation and use of it. There are also several sample programs to show how it is used. Please download and install this package, try out the sample programs and contact us to let us know how it's working or if you have questions or need help with it. (mm)
|