NI PCIE 6259 Register Map

I need to write a custom driver for this board. Does anyone know where I can get a regsiter map?

I had already downloaded DDK and found the Register Map document. At a minumum this is what I need but I thought the information was on the little light side. It would be nice to have some descriptions for the registers and their bit fields. Also, the "M Series Register Map" is a Preliminary document. Any idea when the next version will be available?
I did not find any information about board specific Register Maps so I assume that this map is good for all 'M' Series boards.
I was hoping to find something like the "PCI E Series Register-Level Programmer Manual" at: http://digital.ni.com/manuals.nsf/websearch/5978CE4A83119E50862566FA0075F424 .
Reading through the posts it seems that there is a lot of differences between the 'E' and 'M' series mulit-function DAQs so
Thank you for the reply.

Similar Messages

  • Simulated PCI-6259 missing Ctr0Out

    Good Afternoon,
    I am simulating a PCI-6259 as "Dev1," and am unable to locate & select the DAQmx terminal "Dev1/Ctr0Out."   According to the MAX pinout map this terminal exists, so my question is where did it go?   If I force with manual entry I recieve an error.   I've attach my VI for reference.   Any thoughts?
    Labview 8.5.1
    NI-DAQmx device driver 8.7.1f2
    MAX 4.4.1f0
    Sincerely,
    Zach
    Attachments:
    gen_tasks (SubVI).vi ‏44 KB
    merge_errors (SubVI).vi ‏27 KB

    Hi super-neuron,
    If you look at the pinout map for the PCI-6259 in Measurement and Automation Explorer (MAX), below the pinout diagram, it mentions that the default pin for Counter 0 Output is PFI12 (pin 2). This is the reason why you will not see Ctr0Out in your list of terminals in LabVIEW.
    I hope this helps,
    S_Hong
    National Instruments
    Applications Engineer

  • Why is my executable VI not working with a PCI-6259?

    I have bought a PCI-6259 which has referencing trigger capability. I wrote a VI for acquiring the data and tested the VI on my PC that has the full developmental LabView 8.2.1 package installed.  The trigger is a 1 volt level that is triggered by a potentiometer ranging from 0-5 volts that I control manually. The VI works exactly how I want it to, however, now I want to use the Application Builder to create an executable to distribute the VI to the testing station PC. I then removed the PCI-6259 from the developmental PC and installed it in the testing station PC and loaded the executable VI along with the LabView 8.2.1 Run Time Engine. I open the program and it runs but I cannot get the program to trigger using the same potentiometer so it runs in an infinite loop.  I'm pretty sure everything is loaded correctly and the only difference between the two stations is that one has the full developmental LabView package and the other is an executable. Would anyone know why my executable is not working?
    Thanks,
    Matt Kostyal

    Hey Matt,
    Thanks for contacting National Instruments support.  One thing I'd like to see you try in the DAQ diagnostic utility.  I do not suspect a bad card, but it is an executable that we can try that we know was properly built.  If it doesn't work that will give us some more insight into the problem if it is truly hardware or software. 
    Let me know what you find.
    Regards,
    Kenn North
    Senior Product Manager - Search, Product Data
    http://ni.com/search

  • Is it possible to read digital data using an external clock (PCI-6259 M)?

    I’m using a NI PCI-6259 M Series card and trying to write my program in VC++6.0 using the functions in the DAQmx driver.
    Question1: Not all functions listed in the NI-DAQmx C Reference Help seems to be supported by my NI-card, where can I find information about which of the functions that are supported?
    Question2: I want to read data from a device that clock out data on the falling edge of a clock signal. The clock signal and the data signal are routed to two DIO terminals on the NI-card. The question is if it is possible to read data using the clock as a sample clock? See two code examples below that doesn’t work. In both cases 10 samples are read at once, even if the external clock is not present.
    Example 1
    // Create tasks
    Status = DAQmxCreateTask("", &m_ReadTrimTask);
    // Set up read task
    status = DAQmxCreateDIChan(m_ReadTrimTask, "Dev1/port2/line0", "", DAQmx_Val_ChanPerLine);
    status = DAQmxCfgChangeDetectionTiming(m_ReadTrimTask,"Dev1/port2/line6","Dev1/port2/line6",DAQmx_Val_FiniteSamps, 10);
    // Read data
    int32 sampsPerChanRead, numBytesPerSamp;
    status = DAQmxReadDigitalLines(m_ReadTrimTask, 10, 10.0, DAQmx_Val_GroupByChannel, result, 10, &sampsPerChanRead, &numBytesPerSamp ,NULL);
    Example 2
    // Create tasks
    Status = DAQmxCreateTask("", &m_ReadTrimTask);
    // Set up read task
    status = DAQmxCreateDIChan(m_ReadTrimTask, "Dev1/port2/line0", "", DAQmx_Val_ChanPerLine);
    status = DAQmxSetSampTimingType(m_ReadTrimTask, DAQmx_Val_SampClk);
    status = DAQmxSetSampClkRate(m_ReadTrimTask, 1000.0);
    status = DAQmxSetSampClkActiveEdge(m_ReadTrimTask, DAQmx_Val_Falling);
    status = DAQmxSetSampClkSrc(m_ReadTrimTask, " Dev1/port2/line6");
    // Read data
    int32 sampsPerChanRead, numBytesPerSamp;
    status = DAQmxReadDigitalLines(m_ReadTrimTask, 10, 10.0, DAQmx_Val_GroupByChannel, result, 10, &sampsPerChanRead, &numBytesPerSamp ,NULL);

    Hello Magnus,
    Thank you for contacting National Instruments.
    "Question1: Not all functions listed in the NI-DAQmx C Reference Help seems to be supported by my NI-card, where can I find information about which of the functions that are supported?"
    The best place to look for this information would be the M Series Help Manual. There you can find the features of your PCI-6259 and what operations it supports.
    "Question2: I want to read data from a device that clock out data on the falling edge of a clock signal. The clock signal and the data signal are routed to two DIO terminals on the NI-card. The question is if it is possible to read data using the clock as a sample clock? See two code examples below that doesn’t work. In both cases 10 samples are read at once, even if the external clock is not present."
    Look at the "ContReadDigChan-ExtClk_Fn.c" example project which ships with the NI-DAQ driver. This is located at: C:\Program Files\National Instruments\NI-DAQ\Examples\DAQmx ANSI C\Digital\Read Values\Cont Read Dig Chan-Ext Clk.
    You will have to make some minor modifications to convert this to a finite acquisition, but that is simply a matter of changing the "sampleMode" parameter of the DAQmxCfgSampClkTiming() function. You will also have to route your clock signal to a PFI line and specify which line in your code.
    I hope this helps.
    Sean C.
    Applications Engineering
    National Instruments

  • Writing to digital port disrupting counter on PCI-6259? (nidaqmxbase)

    Hello,
    I've set up my PCI-6259 with an angular encoder counter, as per the C code example at http://zone.ni.com/devzone/cda/epd/p/id/5735
    This appears to work great, but I would also like to use my PCI-6259's digital lines to control a TTL switch on the encoder it's measuring (among other things). If I set up a separate task in the same program and install a new DOChan to the task, it works great: I can control the TTL and measure the encoder position at the same time.
    However, I would like to be able to control the digital lines, e.g., via a script, while leaving the encoder readout running continuously. I tried running the angular encoder counter example code, and while it was running, I ran the dio/writeDigPort example.
    First of all, the writeDigPort took about 3 times longer than usual to run. It wrote to the digital line successfully, but as soon as it had, it corrupted the counter somehow. The angular encoder example began to spit out garbage, rather than the measured angle.
    Is this just a limitation of nidaqmxbase, wherein I cannot use the PCI-6259 resource from multiple processes? I can imagine this being the case, since I think the counter setup is using a DMA.
    Or is there a workaround? Any advice is much appreciated, thanks!
    -Chase

    I think what was meant is that DAQmx Base is not multi-thread safe.  From the readme:
    NI-DAQmx Base is not multi-thread safe. In LabVIEW, use the error cluster to
    force execution order. In C, use only one thread to make API calls; especially
    for task/channel creation and deletion.
    So, if using DAQmx Base, all of your functions should be in the same thread (i.e. don't make parallel calls to the driver).
    Having said this, I notice you're using the PCI-6259 which is supported in DAQmx for Linux.  You didn't mention what OS you're using, but if you are able to use the full version of DAQmx I would recommend doing this.  DAQmx is multi-thread safe, and provides more functionality and better performance than DAQmx Base.
    Best Regards,
    John Passiak

  • How to use counter using PCI 6259

    Hello, users,
    I have a PCI 6259 board and use Labview 7.1.
    I'd like to repetitively count the photon signals at 10ms integration time. I want cumulative counts in every 1 sec (1000ms) (or 1 min (60000ms)) And I want to save counts into txt.file which is open in excel program.
    I am a beginner to use counter using PCI 6259 board.
    1. Could you explain default NI-DAQmx counter terminals, i.e., CTR 0 SRC, CTR 0 GATE, CTR 0 AUX, and CTR 0 OUT?
    2. How do I use them or how can I connect to count TTL pulse using PCI 6259?
    3. As I mention my purpose above, which example is the first step to start working my purpose?
    4. If you know good example, could you tell me about that?
    5. If anyone has labview example which is similar to my aim, could you give me some tips or your examples?
    Any hint, comment or advice would be appreciated.
    Thank you so much for your response.
    Leek2

    I have never used the PCI 6259 but have used counters many times with labview, the coding should be the same independent of the board.  What you want to do is finite buffered edge counting using a internal clock.  The best way to do this is to look at the examples programs and use the express vi to get started, then you can use this code to customize your program exactly as you need.
    To address your questions:
    1. CTR0 means "counter 0" the name of the physical resource sometimes listed at GPCTR0.  Each counter has 4 connections to the outside world:
    source "src"(for counting input TTL signals),
    gate (for synchronizing to external clocks and edges),
    out (for pulse-train out operations)
    and aux (specialty operations such as up/down counting and encoding)
    2.For event counting with internal clocking you will only use the src this is the input from the signal you wish to count (ie PMT discriminator for photon counting).
    3,4,5. Look at the count edge examples, there isn't one that does exactly what you want but I have done this with a 6602 (it has e counters) where I use one set of counters to set up a finite pulse train in your case 1000Hz with 1000 pulses, and another counter to edge count on an external pulse, with the source of this pulse routed from the out of the other counter.  Then you can start the task and read when 1000 samples are in the buffer (about 1 second later).
    Hope this helps,
    Paul
    Paul Falkenstein
    Coleman Technologies Inc.
    CLA, CPI, AIA-Vision
    Labview 4.0- 2013, RT, Vision, FPGA

  • Pci 6259 real time windows target matlab

    Hello everyone,
    I want to buy 1 NI PCI-6259, 2 Cables(SHC68-68-EPM Cable (2m))  and 2
    Connector Blocks (SCB-68 - Shielded).
    Would you please tell me do I need another hardwarefor
    this product?
    I want to this product with Matlab Real Time Windows Target.
    Would you please tell me do I need what software for
    this product to work with Matlab Real Time Windows Target?
    Best regards,
    Naser

    Hello Olivia
    I want to measure impedance of a device.
    I want to generate a chirp signal and measure impedance this
    device by NI PCI 6259.
    My frequency is about 10KHZ to 300KH.
    I use Windows xp for this task. I want to use Matlab software.
    So, for MAtlab software only DAQmx
    driver is needed?
    Best regards
    Naser

  • No digital trigger signal on a PFI x-port in a PCI-6259

    Hi,
    I am using a PCI 6259 DAQcard (with a SHC68-68-EPM cable and version:2.9.1f0) to get an analog signal and a digital signal. The analog signal is used in NI MAX or NI Signal Express (DAQmn 9.7.5) to trigger it with the digital signal. When the digital signal is mounted on a Px/x port I can detect it. If I want to use it as a trigger signal on a PFI x-  (better PFI x/Py.y-) .port I do not get any trigger quantitiy.
    With a NI USB 6008 everything works quite well. Remark: The digital post is just labled as: PTI 0 and not as in the case of the PCI 6259 on the NI CB-68LPR-board: PFI x/Py.y.
    Another remark is that I did not measure a voltage difference of 5 volt at the provided port.
    How can I fix the problem and use a PFI x/Py.y-port for a digital trigger?
    Solved!
    Go to Solution.

    Hey AndGar,
    by trying I found one chanel on the platine with give me an trigger signal. So I can measure something but not in every chanal.
    Maybe just the PFI x- ports are reserved for triggering and you need to close every other task which measures a digital signal.
    *actuall I have no access to the programm*
    Thanks and best regards,
    Marcus

  • Start Counter Output on a Analog Trigger in the PCI 6259 Mseries board

    Hi,
    My question is regarding how to use Analog Triggering to start a counter in the PCI 6259 M-series board.
    I have attatched a program here
    'Mult_Device_Digital_Analog_Out_on_Analog_Trigger.​vi'
    and I'll explain my problem regarding this program.
    I've tried to include all the details about the program in the documentation for the VI, but what the program
    does is essentially output a set of digital and analog patterns as specified by an end user, and at times
    specified in the front panel.
    Problem 1.
    I wish to start the whole operation on a analog trigger signal, in the program its the boolean "Line Trigger",
    but I get an error saying that trigger type is not supported, when the M Series board manual clearly says it can be done.
    Is there something wrong with my program ?
    Thanks.
    Shomu
    Attachments:
    Programs.zip ‏101 KB

    Shomu
    Admittedly, it might take a little time to find the documentation, but it is there. Also, the error you are getting indicates the proper trigger signals to use. In the help look at the analog Triggering Considerations for E Series, M Series, and S Series.
    With that being said the easiest thing to do is to setup an Analog Input task configured to start on an Analog Trigger. Then, setup a digital edge trigger for the Counter task. The signal you are going to want to look for is the Analog Comparison Event. This signal won't show up by default in the list. What you need to do is right click on the trigger source constant or control and select I/O Name Filtering. Then check Include Advanced Terminals. Once you have done this you can select the Analog Comparison Event
    StuartG

  • Register Map Wizard

    Has anyone built a register map wizard for register type communication? Basically I'm looking to shorten my development time. I've built some register map user interfaces manually before but want to create a wizard that will dynamically create the map (number of registers and bit width). Thanks in advance for any help.

    You might be interested in the NI Measurement Hardware Driver Development Kit (DDK). The Measurement Hardware DDK is a driver development kit containing development tools and register-level programming interface for NI measurement hardware. It offers a register-level programming interface as well as example programs to get you started quickly.
    And best of all, it's a free download!! Enjoy.
    Kileen C.
    NI

  • DIAdem dac combined with NI PCIe 6259 doesn't send out data

    Hi,
    I have a NI PCIe 6259 card & DIAdem 11.2.0 (2010 version) on a windows 7 PC.
    Analog inputs & analog + digital outputs are configurated in MAX 9.8.0f0. (Global virtual channels)
    When I run a dac, analog inputs works perfect.
    Both analog and digital outputs doesn't work. Only one of the four analog outputs give out the value which was send out.
    In the past I had the same problems with this DIAdem version in combination with a thirth party USB card, but this was solved by new firmware & software drivers.
    Someone who had similar problems?
    Thanks.
    Solved!
    Go to Solution.

    Hello,
    I Tried the testpanel. Both analog and digital outputs works correctly.
    I have no experience with labview. So this card isn't tested with labview.
    One time the digital outputs works with DIAdem, mostly it didn't work. Analog outputs are OK.
    GfsDAQ driver version is 11.2.0.
    I suppose that this has caused by driver problems.

  • Can I run use the traditional NIDAQ Driver with PCI-6259 M

    I'm trying to run the Matlab signal processing toolox with my PCI-6259 M series DAQ card. I know that
    I can't use the DAQmx driver and Matlab signal processing toolbox together. NI is obviously in competition with
    Mathworks b/c there aren't any mathworks products listed although VB are listed. Is there a way I can use the traditional NI-DAQ driver with my card. Yes, I've read the discussion about using the NI commands in Matlab using a the dll. I have signal processing toolbox and I want to use it b/c it's a lot easier.
    Thanks

    nsm...
    Unfortunately the answer is no, you can't use the 6259 with Traditional DAQ. It is only supported in DAQmx
    StuartG

  • Quadrature encoder with PCI-6259 DAQ board (driver for QNX)

    where can I find any example for connecting Quadrature Encoders with M Series DAQ Boards ?
    The only more or less suitable example I found in nimseries DDK, is
    "Count pulses from an external source using an external signal to control
    the count direction" (nimseries\Examples\gpctex2.cpp).
    But this example is not working correctly with Quadrature Encoders
    (encoders with  two shifted on 90 degrees phases A&B).
    i.e. in case of using this example code I get some extra count while encoder is on vibrant motor
    what means enums
    typedef enum {
           kG0_Up_DownHardware          = 2,
           kG0_Up_DownHardware_Gate     = 3,
    } tG0_Up_Down;
    and
    typedef enum {
           kG0_Encoder_Counting_ModeId          = 1,
    } tId;
    in (nimseries\ChipObjects\tTIO.h) ?
    What initalization procedure I need to work with Quadrature Encoders?
    I have PCI-6259 DAQ device
    and I'm writing programm under QNX6 operating system

    Hello alexey_3269,
    If you want to read a quadrature encoder start with gpctex1.cpp and follow the thread.
    I give you my code:
    BEGIN CODE
    ==========
    boardGpct->G0_Mode.writeG0_Load_Source_Select(tTIO​::tG0_Mode::kG0_Load_Source_SelectLoad_A);
    boardGpct->G0_Load_A.writeRegister(InitialCount);
    boardGpct->G0_Command.writeG0_Load(1);
    boardGpct->G0_Load_B.writeRegister(0);
    boardGpct->G0_Load_A.writeRegister(0);
    boardGpct->G0_Input_Select.setG0_Source_Select(9); //see above for choices, PFI8=9, 100 kHZ=18
    boardGpct->G0_Input_Select.setG0_Source_Polarity(1​); //0=CCW, 1=CW
    //If using 80 MHz timebase
    boardGpct->G0_MSeries_Counting_Mode.writeG0_MSerie​s_Alternate_Synchronization(1);
    boardGpct->G0_MSeries_Counting_Mode.setG0_MSeries_​Encoder_Counting_Mode(3);  //3 for X4 encoder counting
    boardGpct->G0_MSeries_Counting_Mode.flush();
    //Enable Input Pins
    boardGpct->G0_MSeries_ABZ.setG0_A_Select(9);  //PFI8=9,
    boardGpct->G0_MSeries_ABZ.setG0_B_Select(21); //PFI10=21
    boardGpct->G0_MSeries_ABZ.setG0_Z_Select(10); //PFI9=10 
    boardGpct->G0_MSeries_ABZ.flush();
    boardGpct->G0_Mode.setG0_Gate_Polarity(1); //invert=1
    boardGpct->G0_Mode.setG0_Output_Mode(tTIO::tG0_Mod​e::kG0_Output_ModePulse);
    boardGpct->G0_Mode.setG0_Loading_On_Gate(tTIO::tG0​_Mode::kG0_Loading_On_GateNo_Reload);
    boardGpct->G0_Mode.setG0_Loading_On_TC(tTIO::tG0_M​ode::kG0_Loading_On_TCRollover_On_TC);
    boardGpct->G0_Mode.setG0_Gating_Mode(tTIO::tG0_Mod​e::kG0_Gating_ModeLevel_Gating); //kG0_Gating_ModeGating_Disabled
    boardGpct->G0_Mode.setG0_Gate_On_Both_Edges(tTIO::​tG0_Mode::kG0_Gate_On_Both_EdgesBoth_Edges_Disable​d);
    boardGpct->G0_Mode.setG0_Trigger_Mode_For_Edge_Gat​e(tTIO::tG0_Mode::kG0_Trigger_Mode_For_Edge_GateGa​te_Starts_TC_Stops);
    boardGpct->G0_Mode.setG0_Stop_Mode(tTIO::tG0_Mode:​:kG0_Stop_ModeStop_On_Gate);
    boardGpct->G0_Mode.setG0_Counting_Once(tTIO::tG0_M​ode::kG0_Counting_OnceNo_HW_Disarm);
    boardGpct->G0_Mode.setG0_Reload_Source_Switching(t​TIO::tG0_Mode::kG0_Reload_Source_SwitchingAlternat​e);
    boardGpct->G0_Mode.flush();
    boardGpct->G0_Command.setG0_Up_Down(tTIO::tG0_Comm​and::kG0_Up_DownHardware); //kG0_Up_DownSoftware_Down
    boardGpct->G0_Command.setG0_Bank_Switch_Enable(tTI​O::tG0_Command::kG0_Bank_Switch_EnableBank_X);
    boardGpct->G0_Command.setG0_Bank_Switch_Mode(tTIO:​:tG0_Command::kG0_Bank_Switch_ModeGate);
    boardGpct->G0_Command.flush();
    boardGpct->Interrupt_G0_Enable.setG0_TC_Interrupt_​Enable(0);
    boardGpct->Interrupt_G0_Enable.setG0_Gate_Interrup​t_Enable(0);
    boardGpct->Interrupt_G0_Enable.flush();
    END CODE
    ========
    I hope this code is appropriate to you.
    FV1234

  • Temperature Measurement using Iex Thermistor with PCI 6259

    Hello All,
    I am having some difficulty measuring temperature using MAX with Iex Thermistor setup, and would like to know if I have missed any thing important. I am using external current excited thermistor with 2 wire configuration and PCI 6259 card with MAX.
    This is a channel that was originally configured to Voltage measurement and MAX measures about 900mV from this channel OK, the voltage converts to Temperature to be around 30C. Then I added a new channel and configured it to measure temperature directly using MAX default Iex Thermistor setup. This is when the problem show up: I will get a constant -273C instead of 30C as expected when run the channel in MAX. I must have been doing something wrong here.
    Your help is greatly appreciated!
    Bryan
    Solved!
    Go to Solution.

    Hi Ravens, thank you for taking the time on this problem.  I am sure the issue was not caused by the A, B, C parameters being wrong, as when I ran the channel in MAX, I am getting a constant -273.15 value, and it was not updated as a real measurement.
    To your 2nd question, this is a case of measuring 1 thermistor value using the Iex Thermistor method vs. Voltage measurement.  If I set it up to measure Voltage directly, I can see the realtime updates of the measurement values of voltage, which converted to Temperature in my VI to be reasonable values of temperature.
    Bryan

  • MAX not detecting PCI 6259 connected to BNC 2120

    I have the DAQmx driver 9.0.2
    I have the card (PCI 6259) in a windows XP machine
    The breakout box is a BNC 2120
    MAX does not detect any devices and interfaces.
    Thanks for any help,
    Fmiles

    Does your device show up in Device Manager under data acquisition devices?  If not than it is not being recognized by the computer and you should try moving PCI slots on the card.  If it does not show up under data acquisition devices, right click on it and select uninstall, restart the computer and it should install on its own again.
    Was the card installed during the DAQmx install, try reseating the card.
    Make sure the NI Device Loader Service is started in Control panel»Administration»Services.  It should be set to started and automatic.
    Does DAQmx 9.0.2 appear under Software in the Configuration Pane of Measurement and Automation Explorer, if not, it may not have installed correctly.
    Doug Farrell
    Product Manager - Condition Monitoring
    National Instruments
    National Instruments Condition Monitoring

Maybe you are looking for