Book 1 Technical Support Reference RS Part No. 221-272 PCI236 - 24 channel digital I/O PCI card Amplicon Part No. 90993663 • • • • • • • 24 lines of flexible programmable digital I/O 32-bit 5V PCI bus compatible Patch area for custom signal conditioning 37-way male D connector Supports Windows 95, 98, NT, 2000, XP, 2003, Vista and Linux Drivers for C/C++, C#, VB/VB.NET, Delphi, Agilent VEE and LabVIEW 3 year warranty Frequently Asked Questions: How do I test a PCI236? The recommended method is to perform a loop back test on the ports. The connections for the loop back link each line of each port to each other. This results in A0 being connected to B0 and C0. This is repeated for the remaining seven lines. Line A0 A1 A2 A3 A4 A5 A6 A7 Pin 4 5 6 7 8 9 10 11 connect to connect to connect to connect to connect to connect to connect to connect to Line B0 B1 B2 B3 B4 B5 B6 B7 Pin 12 13 14 15 16 17 18 19 connect to connect to connect to connect to connect to connect to connect to connect to Line C0 C1 C2 C3 C4 C5 C6 C7 Pin 23 22 21 20 24 25 26 27 Once these connections are made, the example program INOUT should be used to exercise the lines. When using INOUT, ensure no more then one port is configured as Output at any one time. What example software is available for the PCI236? There is one example program written for use with the PCI236, the PCI263, the PCI272, and the PCI230+. This is called INOUT and is provided with source code in five programming languages. Delphi Visual Basic 5/6 Visual Basic .NET C# LabVIEW What is the ‘patch panel’ on the PCI236 used for? This is provided for signal conditioning such as bias resistors or de-bounce circuits. Each line can be fitted with a number of components and a drill-point is provided which allows series components to be fitted for circuits such as potential dividers. What is the power on status of the digital I/O on an Amplicon PCI200 series board? The digital I/O of a PCI200 series board is derived from an 82C55 PIO chip. When a PCI200 series board is powered on, the 82C55 receives a global reset signal which configures the chip into Mode 0 with all the Ports set as Inputs. I have fitted a second PCI200 series board and would like to know how to test it and address it in software? To test the board, run the appropriate test program. If both boards, use the same program, run two copies. From version 4.32 of AmpDIO , a board selection routine was added to each example program and only one copy of the test program needs to be run with the appropriate board selected after the program starts. To address the board in software, add a second call to registerBoardEx() incrementing the parameter 'CardNo' by one. hboard0 = registerBoardEx(0); hboard1 = registerBoardEx(1); To free the additional board, call another FreeBoard() with the second board handle in its hBoard parameter. returnCode = FreeBoard(hboard0); returnCode = FreeBoard(hboard1); My computer has an Amplicon Data Acquisition/Serial Communications PCI board plugged in to it, but it is not seen by the operating system? Amplicon’s Data Acquisition and Serial Communication PCI boards are supported within 32bit Windows, including Windows Vista, XP, 2000, Me, NT4.0, 98, and 95. Further support is available for 32bit Linux distributions and 64bit Vista. If the operating system in question is in this list, please follow the steps listed below in the first instance. If these steps do not provide a solution or the operating system is not listed, email Amplicon Technical Support at support@amplicon.co.uk. 1. Ensure the board is correctly seated in the PCI slot along its full length. On occasion, it has been found that screwing the 'L' bracket to the case of the computer causes the board to move in the slot and connection to some of the pins in the slot is lost. This occurs due to tolerances in manufacturing and alignment of the mainboard/backplane with respect to the chassis. Correction to the alignment, if necessary, can normally be performed by loosening the 'L' bracket on the board, fixing it in the machine and then tightening it back up in its new position, otherwise, tweaking the bend in the 'L' bracket may be sufficient. 2. If the operating system is Windows Vista, XP, 2000, or Me, please download AmpDIO for data acquisition boards or Serial32 for communications boards if the installed drivers are from the Amplicon Softman CD with a version of 2001A or less. This is not necessary if using Windows NT4.0, 98, or 95 but updating the software support is recommended. The current Linux support can be found here. 3. Run the program 'FindCard' from a DOS boot disk or if this is unavailable, a DOS prompt in Windows Me, 98, or 95. If no boards are listed, the board may be faulty but continue through the rest of the steps. 4. Turn the machine off and remove the board, enter the BIOS and ensure 'Plug & Play Operating System' is set to 'NO' and 'Reset ESCD' is enabled. Restart the computer to reset the BIOS and operating system. 5. Turn the machine off and reinsert the Amplicon board in the PCI slot nearest the processor or a primary PCI (PPCI) slot if using a single board computer (SBC) and turn the machine back on. 6. The operating system should now find the board and installation can continue as normal. If the slot in use is not the preferred slot, turn the machine off, remove the board, turn the machine on, then off and fit the board into the desired slot. Turn the machine on and if the board is not found, there is a slot configuration issue and the above should be repeated until a compromise slot is found the board works in. If the board is still not found, another PCI board in the machine may be causing a conflict. Remove all none essential boards (everything except the video card) and restart the machine and the board should be found. The boards that have been removed should be fitted one at a time and if any board is not recognised, try a combination of slots until all the boards are installed. Is there multi-threading support within AmpDIO? Not specifically, there is limited synchronisation in some of the low level timer functions but this should not be relied on to provide multithreaded support. It is up to the programmer to provide synchronisation where appropriate but some areas to consider include: Board registration and deregistration using the functions; RegisterBoardEx() and FreeBoard(). Interrupt management using the functions; TCsetUserInterrupt() TCfreeUserInterrupt() enableInterrupts() freeInterrrupts(). Writing data to a digital port using the function; DIOsetData()