Digital I/O

cancel
Showing results for 
Search instead for 
Did you mean: 

PXI-6562 Max memory per channel

Solved!
Go to solution

I have two questions.

 

I have a PXI - 6562 and a data set that is 256Mb (32MB). I'd like to send out the data in this data set serially onto one I/O pin. Basically, I'd like to shift out my data set one bit at a time on both edges of the clock onto an IO pin. I do not care about the other I/O pins. Is this possible with the PXI-6562 or does each bit in each byte in memory of the card correspond to a specific channel.

 

If I can't send out my data serially then I will accept that if I encode each bit in my data set as a byte with one bit data and the rest zeros. This would mean that for a 256Mb data set I'd need 8 times as much memory 2048b. I understand that there is a total of 2GB of RAM on the PXI-6562. Is all that RAM addressable serially? Can I write out data from all 2GB of RAM to say 8 I/O ports?

0 Kudos
Message 1 of 4
(3,671 Views)
Solution
Accepted by topic author gtg811q

gtg811q

 

With the PXI-6562 even if you want to only output from one channel you must still write in a U8 format. So, as you describe you will have only one bit that you care about and you will have to put 0s for the rest. This means that the data set that you generate will be 256 MB worth of data, because the smallest unit you can write in with the HSDIO driver is the U8.

 

Now in regards to shifting data out on both edges of both edges of the sample clock, this is called Double Data Rate and is available with our NI 656X devices as well as the 6547, and 6548 devices. We have a Developer Zone that details the DDR option more.

 

Advanced Features of NI-HSDIO: Double Data Rate

http://zone.ni.com/devzone/cda/tut/p/id/6718

 

In reference to the memory for generation, the data width for the generation memory is not configurable by the user. This means that if you have the 128 Mb / channel option your total memory available per channel is 512 Mb/channel. Because the data width of the generation is set to 1 byte, and you get 4 times the memory per channel in DDR mode with the 6562. The KB below explains the behavior. Look under the "Generation" section.

 

HSDIO Data Width and Memory Allocation:

http://digital.ni.com/public.nsf/allkb/E5170A54988EF81A8625725A006103BB?OpenDocument

 

So, in summary, the total of 2 GB of memory will not be available for a single channel, but you will have a total of 256 Mb/channel available to you for each channel. Since you are really only interested in one channel you will only be able to write 256 Mb of you data. Since you would to put all of your data on the memory of the card you are going to have to stream from disk to your generating HSDIO card. We have examples for this:

 

NI-HSDIO Stream from Disk (Generation) Using Win32 File IO:

http://zone.ni.com/devzone/cda/epd/p/id/5270

 

However, there will be a bottle neck on your data from the PXI backplane, because the max data transfer rate of the backplane is going to be around 100-110 MB/s you will not be able to keep up with your generation session. Since you will be writing in U8s each sample is 1 Byte, which means that the best you can hope to stream continuously would be around 100 MHz or so.

 

We do not have any LVDS PXIe (PXI Expresss) cards that would allow you to have a higher data through-put, but if you didn't necessarly need the LVDS we do have other options. I am guessing you need LVDS or you would not have the 6562.

 

The other option is to write you data out in parallel across the 8 bits with generation on DDR and then use an External Serializer for an 8-to-1 so you would be able to use all of the available memory and you would likely be able to fit all of your data on the memory of the card and you would not need to stream from disk. This external serializer would allow you to put your first data point on channel 0, second data point on channel 1 and so one until you loop back around and have your second sample generated from channel 0 be your 8th overall data point of your waveform.

 

I hope this helps, and let me know if you have any follow up questions. Thanks!

 

Aaron W.
National Instruments
CLA, CTA and CPI
0 Kudos
Message 2 of 4
(3,619 Views)

gtg811q,

 

I am sorry I meant to say the following:

 

In reference to the memory for generation, the data width for the generation memory is not configurable by the user. This means that if you have the 128 Mb / channel option your total memory available per channel is 256 Mb/channel. Because the data width of the generation is set to 1 byte, and you get 4 times the memory per channel in DDR mode with the 6562. The KB below explains the behavior. Look under the "Generation" section.

 

Aaron W.
National Instruments
CLA, CTA and CPI
0 Kudos
Message 3 of 4
(3,613 Views)

Sorry to keep posting, but reviewing you message again, it appears that if you only need to generate 256 Mb / channel you should not have to stream from disk, because your waveform should fit on the memory of the card. Again, let me know what follow up questions you have.

Aaron W.
National Instruments
CLA, CTA and CPI
0 Kudos
Message 4 of 4
(3,608 Views)