10-06-2008 12:37 AM
Hello everyone,
I am using the NI ELVIS PROTOTYPING BOARD to accomplish the following task. I want to design an application to test Integrated Circuits (ICs) by writing and reading the appropriate digital signals for each chip. For example, if a 7808 chip (quad 2-input AND gate) is being tested, I would like to SEND the input signals to pins 1, 2, 4, 5, 8, 9, 11, 12 and RECEIVE the output signals from pins 3, 6, 10, 13. However, if a 7411 chip (triple 3-input AND gate) is being tested, I would like to SEND the input signals to pins 1, 2, 3, 4, 5, 9, 10, 11, 13 and RECEIVE the output signals from pins 6, 8, 12. All the chips would have 16 pins, which means that I need to control 14 digital lines because the power and ground pins do NOT change. In sum, I need to be able to control 14 bidirectional digital lines so that I can specify what lines would be inputs and what lines would be outputs for each chip. I am using LabVIEW 8.0 and the NI ELVIS PROTOTYPING BOARD might be from the batch that came out with the DI and DO lines reversed since it is fairly old.
So far, I was only able to work with the DO channel. If a set it to DIGITAL OUTPUT, lines 0:7 of DO become output. However, if a set it to DIGITAL INPUT, lines 0:7 of DO become input as well. I thought the latter would allow me to use the DI channel, but it just changes the DO lines to inputs. I have already looked at the ELVIS examples in LabVIEW (i.e. Write to Dig Channel.vi and Read from Dig Channel.vi) and they work fine individually. However, when I copy the block diagram of one VI and paste it in the block diagram of the other VI, it tells me that the resources I am trying to use are already being utilized.
Is there any way to work with all 16 digital lines bidirectionally so that I can WRITE/READ different signals to each chip? Is there a better way to approach this problem?
ANY HELP IS GREATLY APPRECIATED!!! THANK YOU...
Solved! Go to Solution.
10-06-2008 06:46 PM
Hi Argon,
This application depends on the actual DAQ card that you are using with your Elvis Proto Board. The DIO pins on some of our DAQ cards can be configures by line, others can only be configured by port. This means that the entire port can either be input or output, and not both.
This information it typically located in the manual for the DAQ device under the DIO section.
What device are you using as your DAQ card? If you are having problems figuring this out, let me know what your and I can let you know if it supports bidirectional DIO or not.
ChrisK
10-07-2008 12:20 AM
Hello Chris_K_,
Thank you for your reply. I do not know the exact model of my DAQ card, but I am sure the DIO pins can be configured by line because I was able to set lines DO 0:3 as outputs and lines DO 4:7 as inputs (see attached VI) and they worked as expected. However, I am trying to enable the DI port to have a total of 16 DIO lines (i.e. 8 DO and 8 DI), but the drop-down menu on the left only shows Dev1/port0/lines0:7.
When I run the Digital Write.vi that comes with LabVIEW, it sets the 8 DO lines, in the ELVIS board, as outputs. Similarly, when I run the sample Digital Read.vi that comes with LabVIEW, it sets the 8 DI lines, in the ELVIS board, as inputs. If I put the block diagrams of these two VIs together and I run the application, it tells me that the resources/port I am trying to use is already being utilized. Is it possible that my DAQ card only has 8 DIO lines? I thought it had 16, as the ELVIS board shows on the top right (i.e. 8 DO and 8 DI). Thanks again for your help!!!
10-07-2008 04:45 PM - edited 10-07-2008 04:45 PM
Hi Argon.
It would be easiest to check the specs of your card to determine if you have 8 or 16 DIO lines. You should be able to do this in Measurement and Automation Explorer(MAX). If you expand DAQmx devices you should see your device listed. Another thing to try is to reset the DAQ device in MAX, this can be done by right-clicking on the device and selecting Reset Device. This will clear all configurations and release any resources that may have been set. I find I need to do this after with DIO tasks.
Finally, if you want to configure more than 8 DIO lines you can do so by adding them to the channel constant. For instance I was able to run your code with the following.
Without knowing exactly what card you are using it is difficult to tell if you can do this.
Let me know I should be able to help you.
Chris
10-07-2008 05:42 PM
Hello Chris_K_,
My DAQ card is "National Instruments PCI-MIO-16E-1 16Ch,1.25MS/s,12-Bit,Multifunction I/O". I looked online and I think it only has 8 bidirectional I/O lines... is this correct?
If I use a 4-to-16 multiplexer, I would be able to send a signal to 16 different inputs (one a time). However, I need to send more than one signal at the same time. For example, if I am testing a 3-input AND gate, I would need to send 3 signals (inputs of AND gate) and receive 1 signal (output of AND gate). I guess I need to buy another DAQ card?
Thank you so much for your help Chris_K_
10-08-2008 05:30 PM
You are correct, the PCI-MIO-16E-1 only has 8 DIO cards. It may be possible to create a front end to multiplex your DIO signals however it may be difficult to control that. If you do go ahead and purchase a new card ensure that it has sufficient DIO lines
Chris K
10-09-2008 03:56 PM
Hello Chris K,
I have several PCI-MIO-16E-1 cards. Would it be possible to connect 2 DAQ cards to the same ELVIS (i.e. same computer). Since each card supports 8 bidirectional I/O lines, I would get a total of 16 bidirectional I/O lines, which is exactly what I need for my application. Thanks again for your help.
- Argon
10-10-2008 10:38 AM
I don't think there is a way to attach two DAQ cards to the same Elvis. You are going to need to use a breakout box with the second card to have access to the DIO pins, other than that you should easily be able to use both devices for your application.
Regards
Chris