Digital I/O

Showing results for 
Search instead for 
Did you mean: 

Getting the 6551 to do BOTH dynamic generation (ch 0-7) and Static Gen/Dynamic Acquisition (ch 8-15) at the SAME time

I am new to using NI devices and writing in Labview.  I am using the 6551 and running with Labview 7.1.  I have managed to successfully generate data dynamically at the right voltage levels (0.7 & 1.7v) to send to my device under test.  I have been running into problems with trying to start the dynamic gen & a static gen/dynamic acquisition at the same time.  The static generation has the voltage levels of 1.2v & 0v (pullup for the receiver).  The example I am following is posted on the NI web site (LVDS instructions).  I cannot close the device in between dynamic generations because I have to hold all signals at last state on all 8 channels. The response time back from the device under test is less than 100ms from when it receives its command.  Here are the steps I am taking:

1. Open Generation session
2. Set up channels 0-7 for dynamic generation (0.7 & 1.7v)
3. Set up channels 8-15 for static generation (0 & 1.2v) (this causes a weird drop on the lines that I am trying to acquire)
4. Open Acquisition session
5. Set up channels 8-15 for dynamic acquisition (1.2 & 1.2v)
.....some time later....
6. Start BOTH the dynamic generation & the static gen/dynamic acquistion in parallel.  (this is repeated as the device is being tested).
7. Check the acquired data - which is always coming up as 0s (incorrect).

The dynamic generation works fine, but I am not getting any data from the acquisition (and I have verified that the device I am testing is sending the proper response back to the computer using a logic analyzer).

Any help would be greatly appreciated.

0 Kudos
Message 1 of 6

Hi nmanzo,


I have a couple of suggestions and questions for you.  First, do your device's output signals comply with LVDS standard voltages?  Assuming your outputs are terminated with 100 Ohms, what is the expected common-mode voltage between the positive and negative legs of the signal?  Also, what is the expected voltage swing between the high and low voltage levels?  When you set up the static generation channels, do you then also write '1' to all of those channels like in Figure 9 (

In general, the acquisition and generation techniques described in that application note were not intended to be used at the same time on a single 6551.  The reason is that all generation channels (including both dynamic and static) use the same high and low voltage settings.  Setting the generation voltage for either the static or dynamic generation channels will actually set the voltage for all generation channels.  In the sequence that you described, your dynamic generation channels are probably outputting voltages of 0 and 1.2 V, although this seems to still work for you.  You may wish to check the inputs of your device to make sure that a swing of 1.2 V will not eventually cause damage.  If you need to, you can change the low voltage from 0 volts to better fit the dynamic generation (for your device's inputs) since that level is not used for the static generation (all of the static channels are set to logical '1').

I hope that helps clear things up as opposed to making them more complicated.  Send a reply if you are still running into trouble.


0 Kudos
Message 2 of 6
Thanks for the reply.  You answered my question in your second paragraph.  It was as I feared.  I cannot acquire and generate at the same time from the same board.
Just for information, we do have the LVDS line terminated with 100ohms and the voltage ranges are such that when you difference out the positive and negative, we get a total of 1 volt.  I don't recall the exact voltage levels.
Oh well, we will have to either introduce a second board to the system OR use the serial port instead.
Thanks again for your help!
0 Kudos
Message 3 of 6

Hi nmanzo,

I wanted to briefly clarify my previous comments.  The 6551 is capable of performing dynamic acquisition and generation at the same time.  The generation voltage settings of 0.7, 1.2, and 1.7 V cannot all be used at the same time.

A 2nd board would certainly help (and multiple 6551s can be synchronized very easily), but it sounds like one board may still work for you if your device can accept 1.2 V and some other voltage level for its inputs.  Based on your first post, it sounds like your device is capable of acquiring data with the settings of 0 and 1.2.  Also, keep in mind that the output impedance of the 6551 is 50 Ohms on each channel, which will cause a noticeable voltage drop if your device is terminated with 100 Ohms.

I have one more comment about your first post.  When you close a generation session, the 6551 will continue to drive the idle state on its lines.  By default, the idle state is "hold last value", so the last value of your waveform will persist past a Close.  Once you close the session, you can reopen it to take back control of the lines, or you can reset the device to put the lines into high impedance.


0 Kudos
Message 4 of 6
Thanks again.  After further experimenting, we cannot close the dynamic generation session then open and configure the static generation session fast enough to acquire the data that is coming back from the device under test.  We do have to set difference voltages for dynamic generation and static generation - which seems to be the very root of our problem. 
Unfortunately, we cannot change the timing on the device under test, because it is eventaully part of a much larger system that has tight timing requirements.
Thanks again.  We are looking at using a second board in the system.
0 Kudos
Message 5 of 6

If you need to do LVDS generation and acquisition from a single device, I might recommend the 200/400MBps LVDS Pattern Generator/Analyzer (NI 6561/2).  This is a dedicated LVDS interfacing device so the level setting is already ideal for LVDS applications.

Message 6 of 6