DMA transfer rate for PCI-6602 counter/timer

I'm strongly interested in raising the DMA transfer rate between the PCI-6602 counter and computer. At the moment, I've got a Pen-4 2.4GHz operating under Win98. I have to move an 80 Megaword array at an ~5 MHz speed. So far, I've been able to reach just 2 MHz. Would it be possible? What is the battleneck here - the soft- or hardware?

Hello,
I think the bottleneck you are seeing here is a limitation of the dma transfer capabilities that is dependant on the bus of your PC and not your 6602 card. Here is a link of a knowledgebase that you could try to use to see if that would improve your transfer rates. I still doubt you will be able to achieve approximately 5MHz.
http://ae.natinst.com/operations/ae/public.nsf/fca7838c4500dc10862567a100753500/1b64310fae9007c086256a1d006d9bbf?OpenDocument
Regards,
Steven B.

Similar Messages

  • NI 6602 counter/timer card

    Hi,
    following question:
    i am using the x4 encoder application on an ni 6602 card.
    and also i am using a gated signal generation on it.
    both things are working without any problem.
    My intention is to read the counter value of the encoder on every rising
    edge of the signal and write the value into an array in the pcmemory.
    Is this possible, how?
    Is it possible to create an interupt on rising edge, and signal the
    programm, >read the encoder reader value
    I'm using the 6602 card with the HDDK in Linux, well i also have the
    register level manual.
    Thanks a lot
    Mario
    Mario Behn
    345 Lincoln Avenue Apt. 1025
    Amherst, MA, USA
    Tel.: +1-413-546-6656

    Hello,
    thanks for your answer, well my problem is slightly different, so let me
    explain:
    I got from NI the following the files for the NI 6602 Counter/Timer Card to
    work with Linux:
    http://sine.ni.com/apps/we/nioc.vp?cid=11737⟨=US
    one is the common driver.
    The other are the sample programms.
    However, every programm except the one which uses the
    interupt/dma works(gpct_ex8.cpp).
    Here is the errormessages:
    [root@proto OSinterface]# ls
    gpct_ex1.cpp gpct_ex4.cpp gpct_ex7.cpp osiBus.cpp osiUserCode.cpp
    tTIO.cpp
    gpct_ex2.cpp gpct_ex5.cpp gpct_ex8.cpp osiBus.h trace.h
    tTIO.h
    gpct_ex3.cpp gpct_ex6.cpp gpct_ex9.cpp osiTypes.h tStatus2.h
    tTIO.ipp
    [root@proto OSinterface]# g++ gpct_ex8.cpp osiBus.cpp osiUserCode.cpp
    tTIO.cpp
    In file included from osiBus.h:9,
    from gpct_ex8.cpp:15:
    osiTypes.h:39:1: warning: "NULL" redefined
    In file included from /usr/include/_G_config.h:14,
    from /usr/include/libio.h:32,
    from /usr/include/stdio.h:72,
    from gpct_ex8.cpp:14:
    /usr/lib/gcc-lib/i386-redhat-linux/3.2/include/stddef.h:366:1: warning: this
    is
    the location of the previous definition
    gpct_ex8.cpp: In function `void test(iBus*)':
    gpct_ex8.cpp:112: `class tTIO' has no member named `G0_DMA_Control_Register'
    gpct_ex8.cpp:113: `class tTIO' has no member named `G0_DMA_Control_Register'
    gpct_ex8.cpp:136: `class tTIO' has no member named `G0_DMA_Status_Register'
    gpct_ex8.cpp: In function `void gpct_ISR(tTIO*)':
    gpct_ex8.cpp:154: `class tTIO' has no member named `G0_DMA_Status_Register'
    [root@proto OSinterface]#
    So the question is, when there is a general driver system and example
    programms, than they should work?
    Who can help my with this ?
    If you can't, could you forward my question at NI to someone, who is
    responsible for the Measurement Hardware Driver Development Kit (DDK) and
    can help me?
    I have Redhat-Linux 8.0 and kernel 2.4.18.
    Thank you
    Mario Behn
    ----- Original Message -----
    From: "Sastry V."
    Newsgroups: natinst.public.daq.general
    Sent: Friday, January 10, 2003 16:44
    Subject: Re: NI 6602 counter/timer card
    > Hi Mario,
    >
    > I would like to tell first that interrupts do not work with PCI-6602.
    >
    > I would also suggest you to take a look at the examples on Encoder
    > Measurements:
    >
    > >
    http://zone.ni.com/devzone/devzone.nsf/webcategories/75CA12ECD25F39A78625679
    000743752?opendocument&...
    >
    > The Quadrature Encoder with DAQ-STC cards example shows the property
    > that you can use to count.
    >
    > Please do let me know if you need more help.
    >
    > Sincerely,
    > Sastry Vadlamani
    > Applications Engineer
    > National Instruments

  • WANTED: NI PXI-6602 counter/timer

    I'm looking to buy a used NI PXI-6602 counter/timer board. Got one?

    "Zvezdana S." wrote in message
    news:[email protected]..
    > Hugh,
    > To possibly obtain an used board from National Instruments, you should
    > contact your regional Internal Sales Representative (ISR) for possible
    > used boards. If you are not sure who your ISR is, generate a service
    > request at:
    I never knew NI had an SRQ line we could pull.
    Craig Graham
    Physicist/Labview Programmer
    Lancaster University, UK

  • Configuring the NI 6602 Counter/Timer ?

    Is there a way to configure a NI 6602 Counter/Timer to generate a LabVIEW occurrence ever time it counts?

    Hello;
    Occurrences can be generated at every time the output of the 6602 counter change state. That operation is not supported for counting operations.
    One thing you can try to do to overcome that is to combine two counters, the first one will have the pulse train to be counted connected to its source and it will be configured as retriggerable pulse train generator. You can configure the pulses to be generated by this counter to have the minimun delay of 2 timebase clocks, and the same width of the pulses that are being counted.
    The second counter will receive the output of the first counter on its source and will be configure as simple event counter.
    You will catch the occurence generated by the first counter and the value read by the second counter.
    There is a drawbacks with this implementation, which is:
    There will be a 2 timebase clock pulses delay in between the generation of the occurrence and the event of the pulse on the first counter.
    Hope this helps.
    Filipe A.
    Applications Engineer
    National Instruments

  • How to install counter pallets for PCI 6602 in labview 6.1

    Hi...
    Plz help me to install counter pallets and driver for PCI 6602

    Hi...
    Plz help me to install counter pallets and driver for PCI 6602

  • How to set a DMA transfer type for PXIe-6536 in LabWindows/CVI?

    I have a PXI chassis PXIe-1078 with a controller PXIe-8115 running under Windows 7. The digital output board is PXIe-6536.
    I use a function DAQmxSetChanAttribute to set a property DAQmx_DO_DataXferMech to a value DAQmx_Val_DMA, since I want to use a direct memory access data transfer. This wokred well with a PCI-6534 board using the same LabWindows/CVI code before migrating it to the PXIe system.
    Unfortunately, running this code on the PXIe system reports a DAQmx error -200452: "Specified property is not supported by the device or is not applicable to the task".
    The task is created in the following simple way (the board name in MAX is 'Dev1'):
       DAQmxCreateTask ("digTask", &digitalTask);
       DAQmxCreateDOChan (digitalTask, "Dev1/port0:3", "DIG_CHANNELS", DAQmx_Val_ChanForAllLines);
       DAQmxSetChanAttribute (digitalTask, "", DAQmx_DO_DataXferMech, DAQmx_Val_DMA, 15);
    How can I solve this problem? How is it possible to choose between different transfer types?
    Thank you in advance for any hint!

    Hi CavityQED,
    The PCI-6534 is a "Digital I/O" board while the PXIe-6536 is a "High Speed Digital I/O" board, that's why they don't have the same properties.
    By the way you can use DMA transfer with this method :
    http://zone.ni.com/reference/en-XX/help/370520J-01/hsdio/direct_dma/
    Let me know if it helps you.
    Regards.
    Mathieu_T
    Certified LabVIEW Developer
    Certified TestStand Developer
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    LabVIEW Tour
    Journées Techniques dans 10 villes en France, du 4 au 20 novembre 2014

  • What is Max. Transfer Rates for DIO 96 Devices?

    I want to know what is the Max. Transfer Rate achieved by the DIO 96 device. It is definitely dependent on Microprocessor (MP) speed, but there should be some way to know Max Speed if MP speed is given and no other process runs on the MP.

    Hello,
    There are several things that can affect the speed of the DIO 96, such as the operating system and drivers. For instance, are you using Traditional NI-DAQ? Are you using DAQmx? Did you write your own driver? Are you using a third party driver? In these situations, all you can do is benchmark one particular setup.
    There are several variables that can affect the �transfer rate� of the DIO 96. However, this board is not really meant to be used for transfers. This is a static I/O board. It does not even include change notification. If you are looking to transfer data, then a better solution would be a 653x series board. If you are looking at monitoring a digital line, you may consider looking at using a 6509, which supports change notification, I h
    ave benchmarked this card to detect changes up to 5 KHz on a 2 GHz machine running Windows XP.
    If you are looking to generate a digital signal, the DIO 96 will be timed by the operating system and controlled by the specific driver. In this case, I strongly recommend a 653x device. Another alternative would be to use a 6115, or a 6120, which support eight lines of correlated digital I/O.
    Does this help clear things up?
    Justin T.
    National Instruments

  • How do I control the sampling rate of a PCI-6602 counter

    Labview version: 7.1
    Processor: Pentium 4 1.8 GHz
    Hello All,
    I have two avalanche photo diodes connected to two counter entrances on a 6602 (ctr 0 and ctr 1).
    As can be seen in the attached VI, I'm generating a signal on ctr2 and using that as an external clock for the counters.
    My objective is to accurately read the counter values at a rate of ~100KHz (i.e. 0.01 ms between measurements) and to be able to control the rate via the front panel. This should be possible (80MHz timebase), however when I run the program it is only able to actually sample at ~5 ms intervals. Also I'm encountering error 200141 even though I set the rate in the counter to 1M, which should buffer enough.
    What am I doing wrong? Any help would be greatly appreciated.
    Thanks a lot,
    Attachments:
    FRET_ver_14.vi ‏456 KB

    Hello Aadam,
    After looking at your code, I would not use the DAQ assistants to implement this. The DAQ assistant are best to be used for simple acquistion and since you are looking to use more lower level properties of you card, I would suggest to move to use the lower level VIs. It will be easier to understand where the problem is occurring at and will run better than using the DAQ assistant.
    I have done some initial research for you to implement this design. I have described each of them below and how they will assist you.
    The first example I have found is the Change Counter Output Frequency While the Task is Running. In this example, it will show you how to change the frequency and duty cycle of a counter output frequency task. One thing to remember about these counters are that the frequency will not change until the period has finished. For example, if you changed the frequency in the middle of a period of frequency of 1 Hz, it has to complete the 1Hz period before changing it to the next frequency.
    The next example I would investgate is in the NI Example Finder called Correlated Dig Write With Counter.vi. The NI Example Finder can be found in Help » Find Examples... This VI will explain how to use the counter as a clock for another task. You will need to combine the concepts of the first example with this to make sure that you can vary the sample clock.
    Finally, in the NI Example Finder, there is an example how to count digital events with an external clock called Count Digital Events-Buffered-Continuous-Ext Clk.vi. With this example, I first suggest to add the counter task and make sure you can get the external clock to work. After this, I would then implement changing clock.
    Jim St
    National Instruments
    RF Product Support Engineer

  • PCI 6024E COUNTER TIMER

    I have connected the output of my amplifier/discriminator which gives TTL output pulses of 20 ns rise time to my PCI6024E counter source, the other counter source is connected to a square wave generator such that when that counter gets to a certain value, both the counters reset.
    there are no gate, output and ground connections.
    when i started this, this setup worked.
    but now there seems to be a problem.
    the maximum frequency is 20 Mhz, my signal is a bit more than that. will this cause a problem or i will just loose some counts and nothing more.
    also should the other counter source be set at a particular frequency?
    i found out that if i connect my signal (ttl) and square wave generator ground to the same ground, my results depend on the rate of square wave generator.
    does anyone know why this is?
    thanks for your help
    madhu

    Hi mandhu,
    Here's my understanding of what you're trying to do, please let me know if I understand correctly:
    The source input to Counter0 is wired to a TTL signal from the amplifier/discriminator, and the source input of Counter1 is connected to a square wave signal. When Counter1 reaches a certain value, the values of Counter0 and Counter1 are resetted.
    If the above is correct, can you elaborate on the what is not working (e.g. error encoutnered, wrong count, etc.)? Has anything changed at all between when it worked and now (e.g. noise in signal source, hardware or software set up)? What software (e.g. LabVIEW) and driver (Traditional or DAQmx) are you using for your application?
    Using a signal higher than 20MHz should not damage the board, but you will miss counts.
    I'm not sure I understand the following explanation of the application. I assumed from your application description you want your second counter to control the count of your first counter as well. Is this the case? Please try to elaborate on the software and the signal connections.
    "but now there seems to be a problem.
    the maximum frequency is 20 Mhz, my signal is a bit more than that. will this cause a problem or i will just loose some counts and nothing more.
    also should the other counter source be set at a particular frequency?
    i found out that if i connect my signal (ttl) and square wave generator ground to the same ground, my results depend on the rate of square wave generator."
    Thanks,
    Lesley

  • I need tips on programming a 6602 counter/timer

    I am new to Labview but have been a command line programmer for some time.  I have a 6602 card in a PXI system.  I would like to use the internal clock of the 6602 to control the delivery of triggers to various instruments.  These triggers need to be both user inputted and optionally scanned in time.  Eventually, I will trigger the 5112 NI scope board to recieve signal and plot to the screen. 

    Darrin,
    There are a lot of terrific LabVIEW examples that ship with the
    NI-DAQmx driver that are compatible with the PXI-6602.  These
    include counter examples as well as pulse train generation
    examples.  For example, some of these that would be great to looks
    at can be found by opening the NI Example Finder (Help >> NI
    Example Finder).  Under the Browse tab, navigate to Hardware Input
    and Output >> DAQmx >> Generate Digital Pulses.
    There are also shipping examples that show how to use a common signal
    between boards.  Most of these examples share clocks, but you
    could also apply this to triggering.  These are found in: Hardware
    Input and Output >> DAQmx >> Synchronization >>
    Multi-Device and Hardware Input and Output >> DAQmx >>
    Synchronization >> Multi-Function
    There are also a lot of great examples, DevZone posts, and tutoirals
    that you can find on our website by searching for various keywords like
    6602, synchronization, triggering. etc.
    One example that shows how to export a digital signal from one board
    and use it on another board via the RTSI lines that are built into the
    backplane of the PXI chassis can be seen here.
    Hopefully this gives you a good place to start!
    Regards,
    Doug Mumford
    Applications Engineer
    National Instruments
    Doug M
    Applications Engineer
    National Instruments
    For those unfamiliar with NBC's The Office, my icon is NOT a picture of me

  • Cannot get high transfer rates with PCI-6534

    I am using a PCI-6534 in the Pattern I/O mode for performing data acquisition. The data rate I am getting for reliable data is about 2MS/s. I need 8MS/s, but do not get reliable or correct data at this rate. According to the 653X User Manual the benchmarked rate is 20MS/s, but I seem to be getting nowhere near this.

    How is your memory?
    http://digital.ni.com/public.nsf/3efedde4322fef19862567740067f3cc/101ad216bd2b692286256a48006a986c?OpenDocument
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • Frequency divide by N doesn't work on Counter-Ti​mer PCI-6602

    Hello everybody,
    I tried to do something basic ( ?) with this Counter-Timer 6602 Board, and it doesn’t work.
    So I hope some people with more experience than me could understand what happens here.
    1) What I need:
    I need to generate 4 synchonised clocks, whose periods will be multiple of 1 ms.
    2) What I have:
    LabVIEW 7.0 and a PCI-6602 Counter-Timer Board in a DELL PC running under XP pro.
    The PCI-6602 Counter-Timer Board has 8 counter timers named CTR 0, CTR 1, ... CTR7.
    3) What I have already done, and that worked:
    - Generate a 1 kHz “Master Clock” signal from CTR 4, configured by “Continuous Pulse Generator Config.vi” (found in “Data Acquisition, Counters...).
    - configure CTR 0 and CTR 1 to work as frequency dividers, by use of “Down Counter or Divider Config.vi”.
    - Apply the output signal of CTR 4 (OUT ) to the SOURCE inputs of CTR 0 and CTR 1 by means of physical wiring in the SCB-68 connection box.
    When I do this, I get two nice secondary clock signals on my oscilloscope screen, ( with periods = 3 ms, or 5 ms or whatever multiples of 1 ms I choose) from CTR 0 and CTR 1 outputs , very clean and perfectly in phase with the 1 kHz Master Clock.
    So far, so good...
    But I still need 2 more secondary clocks...
    One would say: “No problem, do the same trick with two other counters...” Well, not so simple, it seems...
    4) What I tried to do, and that didn’t work:
    When I try to do the same frequency division with any of the remaining counters, (CTR2 to CTR7), the program stops and I get an error “ –10020 : Time base not valid “.
    I can’t figure out what happens here: I thought any counter could be configured to work as a frequency divider, but it seems not to be so, and I am stuck here.
    Has anyone an idea about how to fix this type of problem?
    Attached file: hor_div02New.vi
    Attachments:
    hor_div02New.vi ‏123 KB

    karolik,
    I'm just adding a followup in English. As Marc L. mentioned, the particular vi named "Down Counter or Divider Config" isn't compatible with the 6602. While the 6602 does have the ability to generate 4 synchronized clocks, a different syntax is needed. Here's how I'd do it:
    Traditional NI-DAQ
    1. Configure a continuous pulsetrain on CTR 4. Route its output to, say, RTSI 4. Don't start it yet.
    2. Configure CTR 0,1,2,3 for continuous pulsetrains using RTSI 4 as their "timebase source." Start them.
    3. Start the CTR 4 pulsetrain.
    4. Now CTR's 0-3 should generate separate clocks with synchronized phasing.
    DAQmx
    1. Configure a continuous pulsetrain on CTR 4. Don't start it yet.
    2. Configure CTR 0,1,2,3 for continuous pulsetrains using "Ticks" for units. Use a DAQmx property node (probably Channel property node, but am not 100% sure and don't have a LV PC handy to check) to specify that the "ctr4 internal output" should be used as the timebase. Start them.
    3. Start the CTR 4 pulsetrain.
    4. Now CTR's 0-3 should generate separate clocks with synchronized phasing.
    -Kevin P.

  • How do I select the 80 Mhz internal source for the PCI-6602?

    The user manual says the PCI-6602 counter/timer has
    an internal 80Mhz as well as 20Mhz source. I'm trying
    to select the 80Mhz source using the ni-daq function
    GPCTR_Change_Parameter() in Visual C++, the header
    file nidaqcns.h supports 20Mhz but not 80Mhz.

    Hi, this is a simple program in C as requested that measures the time between two pulses (buffered).
    I'm working with the PC-6602, and it doesn't work with an internal 80Mhz source.
    The errormessage is "C:\Frederik\gecord\oscillator\bufferperiodtest.cpp(87) : error C2065: 'ND_INTERNAL_80_MHZ' : undeclared identifier
    Error executing cl.exe." after compiling. When I use "ND_INTERNAL_MAX_TIMEBASE" it does work, but on 20 MHz, not on 80.
    Does anyone know what i have to do?
    Thanks
    (Ps: working together with "mtytgat")
    Attachments:
    bufferperiodtest.cpp ‏2 KB

  • How to develop 64-bit Windows device driver for NI-6602?

    Due to the fact that NI-VISA doesn’t support 64 bit Windows, how can I do to develop a 64 bit Windows device driver for NI 6602 (Counter/timer) PCI card. The possible jobs include:
    Develop a Windows Kernel Mode Driver (“Device Driver”);
    Make it to comply with VISA in order to utilize “osiBus Generic IO Interface” and MH DDK.
    Could anyone please give me some advices as soon as possible?
    William Liao
    Message Edited by Wiliao on 07-22-2005 04:12 PM

    Hi All,
    I am currently working on getting the health parameters
    from the motherboard like voltage fan and temperature. I have already
    already done this using 32 bit winio driver but i am not able to work
    on 64 bit version. is there any driver availbale in 64 bit for
    obtaining this parametes or some one help me to get a 64 bit winio
    driver.
    Regards,
    Senthil prabu R

  • Connect NI PCI-6602 with NI PCI-6503

    Hello,
    I want to connect a NI PCI-6602 Counter/Timer with the NI PCI-6503 DIO-Card. The problem is the varying number of pins. (6602->68 pins; 6503 -> 50 pins). Is there a possibility to connect both? Maybe a complete adapter?
    regards Thomas

    Thomas,
    You are correct both cards have male connectors. You could still use the 68M-50F connector if you use a 68-68 cable. Or if you had a 68F-50M then you would need a 50 pin cable. I have found another option, the R6850-D1 Cable(part number 777419-01) . This is a digital cable that was made to use our 68 pin digital devices with 50 pin breakout boxes. It ties the ground lines together and you also loose access to PFI 37,the up/down pin for counter 0, and you loose the +5V line. I think you may want to check the pin mappings to make sure that you really want to connect these 2 boards directly together. When using a 50 pin conversion with the 6602 you will get the following pin mapping:
    Pin Number (1-50) 6602 Signal Name
    1 PFI_25
    2 PFI_28
    3 PFI_27
    4 PFI_24
    5 PFI_30
    6 PFI_31
    7 PFI_26
    8 PFI_29
    9 PFI_21
    10 PFI_23
    11 PFI_19
    12 PFI_17
    13 PFI_18
    14 PFI_16
    15 PFI_22
    16 PFI_20
    17 GND
    18 PFI_34
    19 GND
    20 PFI_35
    21 GND
    22 PFI_33
    23 GND
    24 PFI_32
    25 GND
    26 GND
    27 PFI_38
    28 GND
    29 Reserved
    30 GND
    31 PFI_36
    32 GND
    33 PFI_39
    34 GND
    35 PFI_4
    36 PFI_6
    37 PFI_0
    38 PFI_2
    39 PFI_1
    40 PFI_3
    41 PFI_7
    42 PFI_5
    43 PFI_13
    44 PFI_10
    45 PFI_15
    46 PFI_14
    47 PFI_8
    48 PFI_11
    49 PFI_12
    50 PFI_9
    You will loose half of the cards functionality since half the pins (even numbered pins) will be connected to ground on the 6503. It would be easy for you to short lines to ground this way. It would probably be better if you get a breakout box for each card (SCB-50 and SCB-68) and then connect only the lines you want to share between the cards. So in answer to your question, yes you CAN connect then directly together, but do so with caution, and I do not feel this direct connection is the best solution for y
    ou.
    Hope this helps.
    Kevin R

Maybe you are looking for