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 KBHi 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 KostyalHey 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!
-ChaseI 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.
Leek2I 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,
NaserHello 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 KBShomu
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 -
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.
Thanksnsm...
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 systemHello 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_MSeries_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_Mode::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_Mode::kG0_Loading_On_TCRollover_On_TC);
boardGpct->G0_Mode.setG0_Gating_Mode(tTIO::tG0_Mode::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_Disabled);
boardGpct->G0_Mode.setG0_Trigger_Mode_For_Edge_Gate(tTIO::tG0_Mode::kG0_Trigger_Mode_For_Edge_GateGate_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_Mode::kG0_Counting_OnceNo_HW_Disarm);
boardGpct->G0_Mode.setG0_Reload_Source_Switching(tTIO::tG0_Mode::kG0_Reload_Source_SwitchingAlternate);
boardGpct->G0_Mode.flush();
boardGpct->G0_Command.setG0_Up_Down(tTIO::tG0_Command::kG0_Up_DownHardware); //kG0_Up_DownSoftware_Down
boardGpct->G0_Command.setG0_Bank_Switch_Enable(tTIO::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_Interrupt_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,
FmilesDoes 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
-
I know this question has been asked before. My problem is similar to what is mentioned here but I hope someone can explain the error log attached below and hopefully I'm able to find a DIY solution without much cost. I'm using a early 2011 MBP with Y
-
help me!!!!!!!!!!
-
Rollover links don't work! iweb 08
I've added a few rollover links to my text and they don't work when I upload the html to my non-mobileme server. I don't see any of my rollover picture sources in the code, but I don't know where or how to add them... Here is the code: <area href="ma
-
Correlation and Async/Sync Communication using JMS adapter without BPM
Hello 1. Pls explain with simple example docs/links --- Correlation 2. Async/Sync Communication using JMS adapter without BPM If i see blog --- If I go with blog --- /people/sudheer.babu2/blog/2007/01/18/asyncsync-communication-using-jms-adapter-w
-
What is the key column name and value column name in JDBC Adapter parameter
Hi Can any one please tell me what is the Key Column Name and Key Column Value in JDBC adatper parameters. If i dont mention those parameters i am getting the following error <b> Value missing for mandatory configuration attribute tableEOColumnNameId