LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

linearity testing ADC using PCI 6289

Hi guys
 
I am new to this forum , need help with labview code for linearity testing of a 12 bit adc  , am using a pci 6289 M series device .I found a similar example on ni developer zone http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=BB0F7FFF28201C46E034080020E74861&p_...  , but this code does not support PCI 6289 device , if any app engineers out there could point me in the direction of a relevant code or a workaround using any other software like signal express would appreciate it , have signalexpress also installed but it is not useful for static testing as such .
 
would appreciate any suggestions or comments.
 
thanks
chiplearner
0 Kudos
Message 1 of 15
(6,683 Views)
Hello chiplearner,

The PCI 6289 is only supported by the NI-DAQmx driver and I was unable to find a DAQmx example of doing an ADC linearity test.  However, that does not mean it can't be done!  Give a detailed description of how you are using the 6289 to do the linearity test and we will try to help you out as much as possible!  If you are just looking for a starting point on how to develop DAQmx programs, take a look at the DAQmx examples in the NI Example Finder.  Just go to the menu bar of a VI and select Help >> Find Examples.  In the Example Finder, browse to the DAQmx folder by opening the "Hardware Input and Output" folder.
Eric
DE For Life!
0 Kudos
Message 2 of 15
(6,656 Views)
Hi Lee
 
Thanks a lot for responding to the thread , I have both labview and signalexpress installed and am using a PCI 6289 M series device , the a/d is embedded within a fpga ,the output of the a/d is brought out through buffers and the digital output code is available , using scb 68 connector blocks and noise shielding cables  the digital output is connected to pins 16-32 of the PCI 6289 device . The input to the a/d(can access the pins through the fpga)  is given using the arbitrary waveform generator onboard the PCI 6289 , this  i am controlling using the signal express GUI .
 
Signal express is quite adequate for the dynamic measurements on the adc and the above setup looks okay , for static testing it is cumbersome so am trying to do it using the labview ,need the INL DNL measurements performed on the actual digital code that is acquired (not a simulated version) .
 
The previous example that i had attached in the first post in this thread had a labview VI program that probably used a simulated version of a low frequency ramp to perform the INL and DNL.
 
if you could suggest how to modify either the original one to work with PCI 6289 or suggest a workaround using signal express or Labview that would be great .
 
appreciate your response
 
thank you
 
chiplearner
0 Kudos
Message 3 of 15
(6,644 Views)
Hello Chiplearner,

Thanks for the descriptiong, but I am not that familiar with ADC testing so I have a couple more questons Smiley Tongue

1) You need to do a static test to perform INL and DNL measurements of the ADC.  How is the static testing different than the dyanamic testing in terms of what you need your program to do?

2) For the static test, it sounds like you will be having the input of the ADC controlled by the Analog Output of the 6289.  Is the 6289 also reading in the digital values produced by the ADC?  Are there any other signals connected to 6289?

3) How would you like to control the Analog Output of the 6289 for your static test?  Will it be some sort of frequency ramp?

4) You mention that you have a Signal Express project that already accomplishes the dynamic testing.  Could you post that file to the forums?

Thanks!
Eric
DE For Life!
0 Kudos
Message 4 of 15
(6,616 Views)
Hi Lee
 
You are right , I am using the output of PCI 6289 to supply the analog input (which is a slow moving ramp  almost near dc) , also i am reading the digital output of the adc using the PCI 6289.
 
I was able to get the digital output code of the adc into labview using a small daqassistant vi program. In terms of differing from a dynamic kind of test , Static test can use either a ramp or sine wave , I am using a sine wave, the only things i need to plot are INL , DNL , gain and offset can be calculated.
 
The link in my first post (the program generated by NI app engineers) has the INL DNL but i suspect it does it on a simulated signal not on a acquired signal .
 
if you could help with the labview code for the INL DNL generation part it would be great , I have a 12 bit adc , i can see the 12 digital line outputs in labview , i need to perform a INL DNL calculation similar to the one in the first link (except i do it on the actual signal).
 
to give you a better idea this is what happens in a INL DNL calculation.
 
1.I need to calculate the histogram of the code occurence at the ouput
 
2.then would need to perform a similar  data manipulation (mean and normalization ) and collect the DNL error , INL is nothing but a sum of DNL values.
 
i tried using the part of the first link (removed the part specific to the device) ,just the histogram and data manipulation part but get many errors in labview.
Smiley TongueSignal express has inbuilt functions for SNR,SINAD,PSD which is what i meant by dynamic calculations for adc , so all it takes is a simple generate signal , acquire output and calculate step for the dynamic characteristics.
 
 
look forward to your response .any suggestion would be appreciated
0 Kudos
Message 5 of 15
(6,603 Views)
Correction to my previous post
 
i am using a ramp signal not sine wave for the static testing . Have acquired the output of the adc into labview ,trying to make the data manipulation part of the program (first post ,link) to work with my acquired data . Need to perform just the INL DNL similar to that one.
 
 
0 Kudos
Message 6 of 15
(6,603 Views)

Hi Lee

this was the code i mentioned in my first post http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=BB0F7FFF28201C46E034080020E74861&p_...   .

if you open the adc_test.llb , you will find two vi programs , adchistogram.vi and linearplots.vi , they perform the INL and DNL calculation , all i need is a modification of the adchistogram.vi to work with my acquired digital signals . As i mentioned in my previous posts i have 12 digital output lines , acquired into labview .

look forward to your response take care

chiplearner

0 Kudos
Message 7 of 15
(6,599 Views)
Hello chiplearner,

It looks like the ADC Histogram vi and Linear Plots vi can be used with your program without much modification.  The data format output of the DAQ assistant is exactly the same as the DAQ VIs in the example program.  What kind of errors are you getting when  you try to run your program with the analysis VIs?
Eric
DE For Life!
0 Kudos
Message 8 of 15
(6,567 Views)

Hi Lee

I am finally done with the static testing , the dynamic program still gives errors , right now the A/D data is read into 12 digital lines and then acquired into the card ,the problems i am facing right now are

1.Triggering the acquistion using daq assistant vi (the options in the task triggering appear grayed out , the alternative program using daqmx vi's gives an error in the reference trigger vi ) .I am attaching both the programs.

2.The logic behind the dynamic testing , currently I read in 12 digital lines for example

line 0 0 - sample 12

line1 0----sample 12

line2 0----sample 12

line3 0----sample 12

line 4 0--- same as above

line 5 0----- same

line 6 0

line 7 0

line8 0

line9 0

line10 1

line11 1

since my data acquistion program is set up that it will read each individual line for me to get the actual digital code of the analog input , i store the values in a array and transpose the array to read  for example the above code

 

000000000011 .

and then use a D/A to convert it to the analog representation of the digital to perform the SNR ratio and other calculations that are straight forward.

the problem is when labview reads in each line and stores all the values , it stores the second index with the sample value , so when the analog waveform is reconstructed the x axis reflects the sample value not the frequency and looks different.

 

is there a way to read in the actual digital code at each sample value , instead of reading in as a array and transposing it and is triggering supported in pci -6289 for digital input and how can i use it .

would greatly appreciate your response

also wish you a very happy new yearSmiley Happy

 

thank you

chiplearner

 

 

0 Kudos
Message 9 of 15
(6,467 Views)

Smiley Happy

the two labview programs that i mentioned in the above post for dynamic testing using acquired actual digital output of a/d converter

 

Download All
0 Kudos
Message 10 of 15
(6,403 Views)