Problem with a precision of analog input on PCI-6111


I'm reading an analogue signal which varies from 0-11 V using a card of acquisition data PCI-6111.  The signal comes from a Tube set (PMT) which is part of a microscope configuration, so it is very important that the resolution of the analog input signal be as wide as possible generate quality images.  According to the data sheet for the PCI-6111, the analog input resolution is 12 bits, which should correspond to a sensitivity of ~2.686 mV for my voltage range.

To test this, I set up a task to analog input with a 0-11 V voltage range to read samples of an analog output, which I wrote a simple waveform.  Since the 16-bit analog output resolution that I assumed that it would not limit the accuracy of this measurement.  I have attached the VI I used for this measurement below.  The analog input data are saved not truncated in a text file.

Analyzing these data, I found that the real input sensitivity is ~9.766 mV, corresponding to levels of voltage exactly 1126,4 and ~ 10 bits.

Is there a reason why the resolution of analog input is much lower that it is indicated on the card?  What are some of the ways I could improve the sensitivity of this measure?



Sorry, when you mentioned the specs, I thought you already had them. If this did not come with your Board of Directors?

Tags: NI Hardware

Similar Questions

  • Problems with the Precision M4400 and the graphic card Nvidia quadro 770M

    I have a problem with my Precision M4400 and Nvidia Quadro 770 M. After I installed Windows 7 64 bit, I have problems with the graphics card. I get a blue screen or graphic errors. I tried several versions of the driver. In the Nvidia forum had this problem even more. Here, they told me that only a BIOS update for the graphics card to solve the problem. Update the BIOS, but I should refer by DELL. So my question is this problem with Dell is also known, and there is already an update of the BIOS to the Quadro 770 M?

    Hi all

    I have the solution by chance. I was looking for the latest drivers GeForce for Windows 7 x 64 and I read the accompanying note:
    On page 17, you can read the following note to fix: "[GeForce FX 770 M] [portable]: blocking of the blue screen occurs after Windows starts."

    Of course, GeForce FX 770 M does not exist (and never was), and it should be Quadro FX 770 M. I can bet that nVidia has corrected this famous BSOD problem in the wrong driver because always there is nothing about any "Quadro FX 770 M - fix" in the note accompanying the latest Quadro (340.52) driver.

    You try the GeForce driver above, but to install it, you may need to download an INF file modified with the addition of the ID of Quadro FX 770 M (= "NVIDIA_DEV.065C ="NVIDIA Quadro FX 770 M"). Try without the first modified INF file because the Quadro FX 770 M is listed as a compatible chip in the version of the driver GeForce 337.88 note...

    I'll try that, even though I am completely sastified with the latest driver for Quadro (feasible) (285.62) without disable Powermizer. I did not try the latest Quadro drivers again (to be honest).

    Late me know please.

  • Problem with setting window of acquisition on 1429 PCIe capture card

    Hi all

    Recently, I am using the Basler A504k camera with card PCIe-1429 of goodwill for the acquisition of images at high speed. I found problems with setting the acquisition window in the capture card using Measurement & Automation Explorer.

    1. for example, if the size of the original image is 1280 * 500, if I put the window of acquisition with left 0 and width 1280, everything is OK, but if I set the width to 1279, there will be an error (error 0xBFF6002C FIFO overflow caused the acquisition of stop), if I set the width multiple of 8, there was no error. Could someone tell me why in this case, is it because the packet data transfer for acquisition card rule?

    2. the window of acquisition is set according to the camera image, right? If the camera has also a function of area of interest, the acquisition window setting is always the image coming from the camera.

    Attachment is my setting a MAX software.

    Thank you very much

    Hi xiaochunfly,

    My bet is 1280 pixels image size is aligned on 32 bytes, and the material may actually go from line to line without breaking the transfers. With the width of the non-aligned countries, he needs to start a new transfer on each line, and this has an additional load on the PCIe bus and the system memory bus. Currently infrastructure IMAQ trying to adjust to any size of border/size possible image regardless of efficiency, it take the material and changes in recent processor Intel chipsets have reduced effectiveness with system memory bus performs under these conditions. So, you can get much better performance if you use line widths. You can also get the latest IMAQ driver because there was changes in the latest few transfer more effective under some of these conditions.

    AOI is usually under the framegrabber. If you reduce the AOI who sends the camera, it seems often identical to the framegrabber as if you just had a camera with a smaller sensor. Thus, your AOI in IMAQ must be set to the size of that the camera is sending, unless for some reason you want to capture less of what the camera is able to set up on its own.


  • Problem of generation of the analog output on PCI-7342

    I use for the control of servo motor with encoder Axis 1 of my PCI-7342 feedback

    and trying to out of the velocity of the encoder on the analog output of the axis-2 which is currently not used.

    For testing purposes, I pulled out a constant 16383 (half of 32767) to the analog output

    through load DAC.flx permanently, but there is no voltage on the map of the motion.

    I read

    and configure my 2 axis to be a stepper motor. I also tried to disable axis - 2. None of them works for me.

    Also, I tried to read the value of CAD using reading DAC.flx right after that load DAC.flx is called.

    Correctly, the value was shown on the screen. (See the attached figure)

    I'm really bad now. Please, please, please help!

    Any possible solution is fully appreciated!

    Ron Liou

  • Problem with the driver... Realtek PCIe Fe Family Controller

    I have a Toshiba Satellite L505D-S5983 and I have a problem with the driver for Realtek PCIe Fe Family Controller. What should I do? Thanks for your help.

    The program Driver Genius Professional are "junk" and must be avoided in most of the costs!   They will cause more problems than they find only the first available driver.  Most computer manufacturer can usually have 'rights' to customize pilots 'reference' for their offers of specific material.

    If your Toshiba has been sold with Windows 7 "pre-installed" then Toshiba is "obliged" to ensure the correct drivers.  You should check with the website of Toshiba and the hardware specifications of your model.  Then you should be able to download the necessary drivers directly from Toshiba.

  • About precision of analog input of acquisition of data USB-6009


    I have a problem where I'm reading a temperature signal (10mV / ° c) using the USB-6009 case, but a problem of accuracy of the input signal of the DAQ hardware.  The temperature at room temperature reads at a constant 230mV (23degC) using a multimeter device, but with the DAQ hardware, I see the signal bouncing around to 25mV, + effects greatly my work.

    I was hoping someone might have a solution to this as my brief search forums nothing have mounted.  Is there a way to average this broad band to the extent of the input signal or from resovle anyway?

    Hi mdzz,

    What development environment do you use?

    Here is an example of LabVIEW that should do what you need.

  • problem with pipe separated from the input parameters to call

    Hi all

    I have a requirment as...

    I have a Sp 10 which have 3 SETTINGS and 3 settings as shown below...

    PROCEDURE sample_sp1 (p_start_dt IN VARCHAR2,
    p_end_dt IN VARCHAR2,
    p_shift IN varchar2,
    p_out1 OUT t_bpd_nm, - array type
    p_out2 OUT t_target, - array type
    p_out3 to t_drr); -type of array

    PROCEDURE sample_sp2 (p_start_dt IN VARCHAR2,
    p_end_dt IN VARCHAR2,
    p_shift IN varchar2,
    p_out1 OUT t_bpd_nm, - array type
    p_out2 OUT t_target, - array type
    p_out3 to t_drr); -type of array



    PROCEDURE sample_sp10 (p_start_dt IN VARCHAR2,
    p_end_dt IN VARCHAR2,
    p_shift IN varchar2,
    p_out1 OUT t_bpd_nm, - array type
    p_out2 OUT t_target, - array type
    p_out3 to t_drr); -type of array

    Now, I have to create a new SP. This SP, I have to call one of the top 10 SP and have to come back as a REF CURSOR.

    the entries to the new MS are 3 as... (shown below).

    create or replace new_sp (p_report_name IN varchar2,
    p_report_inputs IN varchar2,
    p_report_as_ref to ref_cur_type) is


    where p_report_name is a name of sp
    p_report_inputs is the input to SP parameters with "|" separated pipes (ex: ' 23/04/2010 | 20/05/2010 | 2 ')
    p_report_as_ref is setting to return as an OUT refcursor.

    I'm unable to manage the setting shild (with tickets). How to separate input parameters and how can I call existing SP
    with these settings?

    friends... can someone help me please...

    Thanks in advance...

    What of it?

    with t as
    (select replace('500 Oracle Parkway| Redwood Shores| CA','|',',') str from dual)
      replace(REGEXP_SUBSTR(str,'[^,]+,'),',') first,
      replace(REGEXP_SUBSTR(str,',[^,]+',1,1),',') second,
      replace(REGEXP_SUBSTR(str,',[^,]+',1,2),',') third
      FROM t;
    500 Oracle Parkway      Redwood Shores      CA
  • analog input and output synchronization

    Hello everyone, I seem to have a problem of synchronization of the analog input and output on my M-series USB-6211. My request is quite simple. I want to the production and to acquire a sinusoid at the same time. Theoretically, I should have the same 4000 data points through the input and output channels. The reality, however, captured on an oscilloscope, shows that the analog output is off more than 4000 data points. The entry (acquisition) shows 4000 samples. Please see below an excerpt from the creation of task, timing and execution. I'm afraid that the analog input and output are not attached correctly. Do you see something suspicious? Thank you very much! The task was created: DAQmxCreateTask("",&inTaskHandle); DAQmxCreateTask("",&outTaskHandle); Analog output channel Configuration, with 20Ksamples/s: DAQmxCreateAOVoltageChan (outTaskHandle, physChanOut, ' ',-10, 10, DAQmx_Val_Volts, NULL); DAQmxCfgSampClkTiming (outTaskHandle, "OnboardClock", 20000, DAQmx_Val_Rising, DAQmx_Val_ContSamps, 4000); Configuration of the analog input strings: DAQmxCreateAIVoltageChan (inTaskHandle, physChanIn, "", DAQmx_Val_RSE,-10, 10, DAQmx_Val_Volts, ""); DAQmxCfgSampClkTiming (inTaskHandle, "OnboardClock", 20000, DAQmx_Val_Rising, DAQmx_Val_ContSamps, 4000); Set up the trigger: sprintf ("/%s/ai/StartTrigger", local_port, deviceName); DAQmxCfgDigEdgeStartTrig (outTaskHandle, local_port, DAQmx_Val_Rising); Output: DAQmxWriteAnalogF64 (outTaskHandle, (numberOfSamples * oversample), 1, 40, DAQmx_Val_GroupByChannel, input, & sampsPerChanWritten, NULL); Acquire: DAQmxReadAnalogF64 (inTaskHandle, 4000, 40, DAQmx_Val_GroupByChannel, readArray, 8000, & sampsPerChanRead, NULL); The tasks stop: DAQmxStopTask (outTaskHandle); DAQmxStopTask (inTaskHandle);


    Change the finished continuous sampling method seems to solve the problem:

    DAQmxCfgSampClkTiming (inTaskHandle, "OnboardClock", 20000, DAQmx_Val_Rising, DAQmx_Val_FiniteSamps, 4000);

    Also, I wanted to say earlier to write 4000 samples:


    DAQmxWriteAnalogF64 (outTaskHandle, 4000,1, 40, DAQmx_Val_GroupByChannel, input, & sampsPerChanWritten, NULL);

    Thank you

  • I use an analog input on a PCI-6224 and are having problems with the clock source

    I use an analog input on a PCI-6224 and are having problems with the clock source. I'm trying samples of 16 different analog inputs very quickly. I have the sample mode: Timed Single Point material. The rate, that I am running is the maximum (250 kHz (15625Hz per channel)). I left the default clock source and trying to taste several times. The analogue input works for a short time (2-3 seconds) and then everything stops. I'm doing something wrong or is there something I'm missing? Any advice would be great.

    That's how you samples using the sample clock clock. If you see a delay then something is wrong with how you track/data visualization.

    Single point NI the hardware is for PID control with a real-time operating system.

  • Problem with a digital output in the information of an analog input


    I use a SCXI-1000DC module with a module of the SCXI-1600, SCXI-1531 module and SCXI-1163 module to receive an analog of an accelerometer signal and a digital signal.
    I claim that the accelerometer is constantly monitored, and the output is on when I want to, by an impulse that I comand in labview.
    I use a rate 25 k and a 12, 5K samples per channel on DAQmx Timing.

    I notice in DAQmx read, if I put a sample of hight by channel, the output is not there when I want to, and if I put a few samples per channel, I exit when I want to, but the program seems to be slow with the passage of time. I don't know how I can solve this problem!

    I'm sorry for my English, and I hope you can help me.

    Thank you


    Hello Silvia,.

    If you ask a larger number of samples, the labview diagram will stay longer in the DAQmx Read function, so the while loop runs slowly, and the digital output is updated less often.

    I suggest that you use 2 separate while loops: one for the analog input and the other for digital output, so that each loop might run at a different speed.

    Best regards

  • Strange problem with analog simultaneous output / input

    I use a card PCI-6221. I have an application which generates 2 waveforms (finished samples) and simultaneously records 4 channels of analog input. I am using the sample clock AO as the sample for the analog clock.

    As a test, I plugged in the first AO (AO0) all 4 channel inputs. What happens when I run the vi, it's that the first sample on the first string (AI0) has the value of the last sample that was out on AO0, of the previous generation.


    AI0 AI1 AI2 AI3


    -0.001 0.062 0.062 0.062

    0.062 0,124 0,124 0,124


    I understand that it is a problem with the relative time of update of the AO and sampling of IT.

    He has to go: AI0 read / write AO0 / read AI1 / read AI2 / read AI3.

    I use DAQmx Timing (sample clock) to specify the clock AO as the sample for the AI clock. I noticed that this has an advantage of input terminal called assets. Ah, I thought - if I put the active side to neutralize the AI always begins sampling half a clock cycle after the OD has updated. Evil. It makes absolutely no difference. Maybe the AO clock signal is a very short pulse?

    Is there a way to specify the order in which updated inputs and outputs analog / sample?

    Hi CDancer,

    Change analog output voltage is not instantaneous. It depends on the speed of scanning of the Council with the difference the tension of the previous.

    You're right that the AO sample clock is a very short pulse. As far as I remember, it is the order of 50 ns.

    Here are two ways to insert a break between the tasks of HAVE and AO:

    • Delay the first conversion of IA (AI0) regarding the sample clock HAVE: use DAQmx calendar > more > converted > sample clock delay > Delay and DelayUnits properties.
    • Delay the sample clock HAVE first with regard to the relaxation of beginning of AI: use the DAQmx > start > more > Delay and DelayUnits properties.


  • Problems with timing of analog input PCI-6111

    I'm reading the analog input of a PCI-6111, who receives a square signal of 1 KHz with a cycle of 50%.  I put the sampling frequency to 1 MHz and wait until the data points are 1 usec outside.  When I check the signals received, it appears that the duration of each period of the square wave is 1.22ms instead of the expected 1.0 ms.

    The following is a snippet of what I tried:

    int NUM_SAMP = 10000;

    DAQmxCreateAIVoltageChan (mTaskHandle,

    "(/Dev1/AI0","",DAQmx_Val_Cfg_Default,-10.,10.,DAQmx_Val_Volts,null); "



    Can you tell me what I am doing wrong?

    Hello SNL_NB_1167,

    A good place to watch code you know works would be the finder of the example.  "" "" Open the finder example and navigate to hardware input & output "DAQmx" analog measures ' tension ' ContAcq - IntClk.prj

    Run this code and see if you get the same results.  If so, then we would know that it's a hardware problem and not a problem with the programming.  If you see the correct behavior, then you have code that you can shape your out of.  I hope this helps.

  • Problem with analog inputs on sbrio 9627

    Hey guys!

    I have a problem in my Single Board RIO 9627.
    I use 4 differential analog inputs (AI0, AI1, AI2 and AI3).
    What happens is that when I place a sensor or even a button on one of the entries and nothing on the other inputs, it affects all other inputs, increase in the level of each input voltage.
    Can someone tell me how to solve this problem in the hardware or software?

    Thank you!

    Multiplexed inputs must have a low impedance! If you have pictures of ghosts.

    Attach entries open to GND (or do not read )

    If you want to read switches or buttons use a pull upwards or downwards the resistance.

  • Strange problem with analog output PCI 6251 and BNC-2110

    I'm controlling current source of third parties using the connectors of analog output on my card PCI 6251 and BNC-2110.

    The current source needs an input signal of 0.1V. I tested it using a battery, the potentiometer and the voltmeter, and by manually adjusting the voltage of power current works - current output with control voltage scales according to the specifications and is relatively stable.

    The data acquisition card works too - when I connect a voltmeter to the AO0 AO1, the measured voltage corresponds to the target with great precision value.

    But when I connect the current source of third AO0 AO1 data acquisition card, the measured output voltage drops and fluctuates. This applies to both channels of the AO.

    I wonder what is the problem here. I suspect it could be a matter of the grounding - the current analog control of the source is an entry with two floating terminals differential. I tried to return the switches FS/GS on the BNC-2110, but that makes no difference.

    Anyone knows similar behavior? Does anyone have any suggestions?

  • Why do I get an offset with analog input


    Thanks for posting your question on the forum.  I suspect that there may be a problem with
    the grounding.  I recommend looking through
    Developer Zone article, field wiring and analog noise considerations
    , which describes in detail how to properly ground a signal.

    The important things to note are that you have a floating
    the source signal (unrelated to the construction on the ground) or an earthing and the
    setting input of your measurement (differential, referenced asymmetric,)
    non-references asymmetric).  For
    example, if you have a floating source and you try to measure the
    signal in differential mode, you must add two resistances (between
    10kOhms and 100kohms) to land correctly signal.  Resistance would HAVE + AI GND and
    other resistors would connect I - of AI GND.

    Post back with more details about your configuration of source and the input of the signal if you need more help.

Maybe you are looking for