PXI

cancel
Showing results for 
Search instead for 
Did you mean: 

How can I control individual pins of VHDCI connector on PXIe-6548?

Solved!
Go to solution
Highlighted

I need to use the VHDCI interface on slot 3 i.e. NI PXIe-6548 of NI PXIe-1062Q for testing purposes. I need to raise or lower the individual lines from the available 68 lines. Do I need to use VISA to do so?

If not VISA, how do NI-HSDIO VIs that are availble with LabView 2009 help to do so? The MAX test pannel specifies channel 0-15 and 16-31. How are these channels related to the 68 lines?

0 Kudos
Message 1 of 34
(2,961 Views)
Highlighted

Hi Viaheaven,

 

You can find the pinout for the VHDCI connector on a PXIe-6548 here:  http://zone.ni.com/reference/en-XX/help/370520K-01/hsdio/hfrontpanel_6545/

 

For example code on how to programmatically change these values (SW timed),  go to Example Finder and search for "Static Generation".  There are 3 VIs that will explain at a very basic level how to access and change the values on the DIO pins.

 

 

You might also consider browsing the help file for HSDIO devices, as it will give you some background behind the approach we've taken to allow for high speed waveform generation and acquisition (as opposed to lower speed aka static digital devices).

 

http://zone.ni.com/reference/en-XX/help/370520K-01/hsdio/help_file_title/ 

 

Hope that helps,

Keith Shapiro

National Instruments R&D 

0 Kudos
Message 2 of 34
(2,949 Views)
Highlighted

Hi Keith,

 

Thanks very much for this help!

 

I will go through the examples on static generation.

 

Does 'Generation' necessarily mean writing to the DUT? or do I need to give a separate 'library-written' command to write what I generate.

 

Thanks in anticipation!

0 Kudos
Message 3 of 34
(2,937 Views)
Highlighted

Hi viaheaven,

 

Check out the static generation examples.  In HSDIO terminology, "generation" is the process of actually writing data to the DUT.  Static (or software-timed) generation means that the host computer (through your LabVIEW program) controls the timing of the writes.  Dynamic (or hardware-timed) generation means that you would load the data you want to program your DUT with into the HSDIO device's onboard memory, and then the card would generate data to your DUT on each hardware clock cycle.  (The rate of the hardware clock is controlled by you during the configuration of the HSDIO card.)

 

Hope that helps,

 

Keith Shapiro

National Instruments R&D 

Message 4 of 34
(2,934 Views)
Highlighted

wow! That clearifies a lot of doubts. Well I am interested in dynamic generation i.e. I need to write on the edge of the system clock.

 

I went through some examples and found out that I can delay the data position by a finite amount to meet set-up and hold time requirements using Configure Data Position VI.

 

Now, my question is that when you say 'prepare HSDIO card' do you mean to say that you first assign some values to a set of channels using Assign Dynamic Channels VI and then generate those values? If not, please help me understand this.

 

Also, I do not really understand what does 'Aquisition' exactly mean. If it means 'Read', on what address this 'Read' operation is performed? The dynamic generation and aquisition demo VI only asks for a pattern to match. It aquires when pattern matches. It does not talk about an address to read.

0 Kudos
Message 5 of 34
(2,931 Views)
Highlighted

Hi viaheaven,

 

A lot of the questions you're asking are explained in our documentation and examples.  Please take a look through those, especially digital fundamentals, and see if that answers your question.  If you have any other specific questions about the operation of your PXIe-6548, please let us know.

 

Thanks,

 

Keith Shapiro

National Instruments R&D 

0 Kudos
Message 6 of 34
(2,901 Views)
Highlighted

Hi Keith,

 

I was trying to use static generation and acquisition technique. I am trying to write into some registers of the DUT using 9 bit address and 9 bit data.

 

According to the connections of channel no 0-19 on the connector with various pins on the board, such as Chip-select, A8-A0, D8-D0, Rd/Wr etc. I specified the 20 bit Data to be written on the channel no 0-19.

But when I read back the same channels, channel 8 always shows a value 0 no matter what value is written to it.

e.g. the 20 bit data written is F011Fh, when I acquire data on same channels, it reads F001Fh.

 

Can you please tell me the probable cause?

0 Kudos
Message 7 of 34
(2,864 Views)
Highlighted

Hi viaheaven,

 

The most likely cause is that the line is being driven both by the DUT and by the 6548.  Don't forget that if you have a bidirectional bus and you'd like to read data back from your DUT that you need to tristate those lines on the 6548 before you attempt to read them.   You can find the appropriate VI in the Acquisition Configuration pallete, it's called niHSDIO Tristate Channels.vi.

 

That VI works immediately, so make sure to only pass in the channels you want to read data back on.

 

Hope that helps,

 

Keith Shapiro

National Instruments R&D 

0 Kudos
Message 8 of 34
(2,862 Views)
Highlighted

Thanks Keith!

I still have some problemsI appreciate every bit of your help.

 

How does the in-built ni HSDIO VI take care of the parallel communication protocol. e.g. There are some pins as chip-select, Rd/xWr etc. they need to be raised or lowered according to the operation. Now, I am trying to communicate with the DUT using 9 bit data, 9 bit address.

I tried to write in the DUT using static generation VI. I formed a word of 20 bits according to the mapping of 9 address, 9 data, a chip-select and a RD/xWR and generated that word on the channels 0-19

But when I tried to read data from DUTIt acquires the same data that was written on 0-19For a read operation, the active-low chip select is lowered after the rising edge of the clock, RD/xWR is raised, and the respective address lines are raised, then on the next positive edge of the clock the data is sampled. I do not understand how to make all of this happen using Labview. Instead of reading back from the DUT, the VI gives me the same pattern that I generated.

 

I know how the parallel communication is supposed to happen, but I don't understand how LabView is supposed to be used for this.

 

Please help

0 Kudos
Message 9 of 34
(2,837 Views)
Highlighted

Sounds like you'd really be helped out by the digital waveform editor:  http://sine.ni.com/nips/cds/view/p/lang/en/nid/13050

It's a graphical tool that you can use to construct (and even play) your waveforms - and it'll include things like bidirectional communication.

 

Check out this Knowledge Base: http://digital.ni.com/public.nsf/allkb/01B1CCC3348C119A862576E4008305F3 for details on how to get an evaluation copy of DWE.

 

Take a look at that and let me know if it answers your questions,

 

Keith Shapiro

National Instruments R&D 

0 Kudos
Message 10 of 34
(2,835 Views)