Counte CMOS output pulse

Hello,
I'd like to know whether there are any couters which can count CMOS output pulse.
The rating of CMOS pulse are:
Output pulse: CMOS 5V
Output pulse width: 10 ns
(It is actually output from Hamamatsu C9744 photon counting unit)
I have some PCI cards (6014 and 6110), but their counter logic is TTL, not CMOS.
When the CMOS output is connected to a counter of these cards, the counter number
increased, but this may not be a correct counting.
If you have a good idea to count with NI products, please let me know.
Thank you for your time and kind help.
Hiro
Solved!
Go to Solution.

Hey Hiro,
The bottom line is that a TTL counter will be able to read from CMOS input, but not the other way around. Therefore, you are OK. This is mentioned in the last line of this link: http://digital.ni.com/public.nsf/allkb/5AB6172CAE2BEF3E8625629800597B3F?OpenDocument
An explanation of the voltage thresholds associated with each standard can be found in the graph in this link:http://www.interfacebus.com/voltage_threshold.html
The counters on your devices fall under TTL/CMOS standards, which can count a CMOS pulse input. Some general information about each standard can be found at this link: http://digital.ni.com/public.nsf/allkb/2D038D3AE1C35011862565A8005C5C63?OpenDocument
Regards,
Jeff L.
Applications Engineer | National Instruments

Similar Messages

  • Counting finite output pulse

    Hi,
    I am sure this question has been asked before but I have searched and cannot find it.
    I am generating a finite pulse train for lets say 750 samples in my 6071E.  I need the program to show which count my counter is on, however, as it counts.  How do I do this? 
    Thanks,
    Chris

    Hi Chris,
    While the DAQmx driver doesn't explicitly expose which pulse of the pulse train it is currently generating, you can determine it using a property node and some simple counting code. The property Counter Output : General Properties : More : Output State Property returns current output state of the counter as two different integers: 10192 for high and 10214 for low [1]. Based on how many times this property has changed, you can calculate how many pulses you've generated.
    [1] LabVIEW Help, Counter Output : General Properties : More : Output State Property
    Property and Method Reference » NI-DAQmx Properties DAQmx Channel » Counter Output » General Properties » More » Output State
    Joe Friedchicken
    NI VirtualBench Application Software
    Get with your fellow hardware users :: [ NI's VirtualBench User Group ]
    Get with your fellow OS users :: [ NI's Linux User Group ] [ NI's OS X User Group ]
    Get with your fellow developers :: [ NI's DAQmx Base User Group ] [ NI's DDK User Group ]
    Senior Software Engineer :: Multifunction Instruments Applications Group
    Software Engineer :: Measurements RLP Group (until Mar 2014)
    Applications Engineer :: High Speed Product Group (until Sep 2008)

  • How to use Counter/timer PWM Pulse as a trigger to aquire data??

    (1) I'm using the NI DAQpad 6015 multi-function card with the new DAQmx Driver. I'm using the counter/timer (counter 0, and counter 1) to generate 2 different PWM pulses to supply my sensor circuit. each pulse is a 1 second in duration. The pulse with 5m.sec duty cycle is the supply for my sensor. In addition to that, I'd like to use the 5 m.sec as a trigger to aquire the sensor reading. The DETECTIN POINT should be the middle of the HIGH State of the 5m.sec pulse (i.e just at the 2.5 m.sec point of the high state).  
    (2) another point is: how to display the counter/timer pwm output pulses on the front pannel?? 
    Attached is the VI i'm using (Complete PWM.vi)
    regards,
    Attachments:
    Complete PWM.vi ‏49 KB

    Hello alaali,
    It sounds like what you need is a trigger delay property node.  This property node specifies an amount of time to wait after the Start Trigger is received before acquiring or generating the first sample. This value is in the units you specify with Start.DelayUnits.  This way you can still acquire using the trigger, and you can specify the delay to be 2.5 ms so that the point that you actually acquire will be 2.5 ms after the trigger.
    Hope this helps.
    Regards,Message Edited by Raajit L on 04-23-2007 04:34 PM
    Raajit L
    National Instruments
    Attachments:
    DAQmx Trigger Delay.jpg ‏6 KB

  • How do I configure a counter to generate pulses using DAQmx?

    How do I configure a counter to generate pulses using DAQmx?
    Is says in the DAQmx C reference help
    "CtrnInternalOutput—The signal at this internal terminal is where the pulsed or toggled output of the counter appears. The output of a counter pulses or toggles when the counter reaches terminal count. When counting down, the counter reaches terminal count when the count reaches zero. When counting up, the counter reaches terminal count when the counter rolls over. To configure the counter to toggle or generate pulses, use the Export Signal function/VI with Counter Output Event as the signal name."
    I've tried this but can't get it to work, I may have the parameters wrong or something. The DAQmxExportSignal() function is very unintuitive to me. Here is my counter config code...
    int ret = 0;
    ret = DAQmxCreateTask("",&task_);
    errorMsg(ret);
    if (ret != 0)
    throw ret;
    // Configure the counter
    ret = DAQmxCreateCOPulseChanTicks( task_, "Dev1/ctr0", "", "/Dev1/PFI8", DAQmx_Val_Low, 0, divider, divider );
    errorMsg(ret);
    ret = DAQmxCfgImplicitTiming( task_, DAQmx_Val_ContSamps, 1000 );
    errorMsg(ret);
    // Change to pulse mode
    ret = DAQmxExportSignal( task_, DAQmx_Val_CounterOutputEvent, "/Dev1/Ctr0InternalOutput" );
    errorMsg(ret);
    // Start the counter
    ret = DAQmxStartTask(task_);
    errorMsg(ret);
    The above code works fine, in toggle mode, if I just comment out the DAQmxExportSignal() part.
    HELP!!!
    Stefan

    The problem is due to the DAQmxExportSignal call.  By default, when you create a counter output pulse train task, the driver will automatically set the output of the counter to toggle when the count for each high ticks and low ticks expire.  The driver also automatically routes the signal present at Ctr0InternalOutput terminal (the output of the counter internal to the device) to the Ctr0Out terminal (the I/O pin available externally).  Using the line
     ret = DAQmxExportSignal( task_, DAQmx_Val_CounterOutputEvent, "/Dev1/Ctr0InternalOutput" );
    will tell the driver to tristate the Ctr0Out terminal and not output the signal to the external I/O pin.  Using the DAQmxExportSignal function is generally only useful if you want to route the signal to some other terminal internal to the board without having the output show up on the external connector, route the signal to some other external pin other than the default pin, or if you want to have the output show up at multiple locations. 
    If you want to change the output behavior from toggle to pulse, you need to use the DAQmxSetExportedCtrOutEventOutputBehavior function.  However, this is generally only useful if all you care about are edges (not the duty cycle of the pulse train), and you want to generate higher frequency signals.  For example, with a 20 MHz timebase as the source of your counter, you can only generate a 5 MHz pulse train by default.  This is because the minimum value for the low and high ticks parameter is 2 (20 MHz / 4 = 5 MHz).  By changing the output behavior form toggle to pulse, you can generate a pulse train at 10 MHz since the output is now pulsing instead of toggling.  However, the width of each pulse is not programmable so you will no longer have a 50% duty cycle signal.  I don't remember exactly what the width of each pulse is, but I believe it's in the neighborhood of 50 - 100 nanoseconds in width.  I hope this information helps.

  • When using counter 0 output, counter 1 goes to high state

    I'm using a PCI-6229 DAQ card with LabView 7.1.  Running the pulse generation example VI called "Gen Dig Pulse Train-Finite.vi" (located in the Counter\Generate Pulse library), I noticed the following anomaly. 
    If you select dev1/ctr0 as the specifed counter for the DAQmx Create Virtual Channel CO Pulse Freq VI, and also select a given frequency, idle state, duty cycle, and number of pulses, the output on counter 0 (pin2) will indeed output the correct pulse train.  However, during this pulse train, the output on counter 1 (pin 40) goes high.  This also occurs vice versa (if dev1/ctr1 is selected, counter 0 output goes high during the pulse train on counter 1 output).
    Thus, it appears the counter outputs cannot be used simultaneously.  If one is used to generate a pulse train, the other will go high and vice versa.  Is this by design?  Is there a way to get around it?  I can't find anything in the literature. 

    What you see is in the nature of how DAQmx manages finite pulse train generation.  It actually uses 2 counters, where one of them is used to generate a single, hardware-timed "gating pulse" which controls how long the other counter's pulse train is generated, thereby also controlling the # of pulses generated.  As an experiment, try performing continuous pulse train generation -- you'll see that the other counter no longer sends its output high.
    Workarounds?  That depends.  I'm not near LV or hardware to experiment, but I *think* I recall reading a thread one time that discussed how to prevent an output pulse from being routed out to the terminal block pin.  However, I'm not sure if that same technique would allow you to suppress the gating pulse in a finite pulse train generation.  Ah yes, here's that posting. 
    If you can't suppress the gating pulse directly via the finite pulsetrain task, there *are* old-school ways to generate finite pulsetrains which should give you the ability to use the linked technique.  You would configure for continuous generation but use the gating counter as a "pause trigger."   You would also generate a single pulse with the gating counter after calculating the exact pulse width needed for the # pulses you want.  After the single pulse task is done, you'd stop the continuous pulse train task.
    -Kevin P.

  • AM9513 counter single triggered pulse generation

    Can Componentworks 3 create a single external-TTL-triggered pulse from a AM9513 counter device (AT-MIO-16-F5) ? This needs to run simultaneously with data acquisition that is doing External Scan Start/Clock. The pulse trigger source can be the same as is being used for Ext Scan Start. Pulse width range is tens of microseconds. It is desirable also to be able to control the post-trigger delay to when the pulse is generated. I've been able to accomplish this with an E series board using two CWPulse controls. Can it be done with the AM9513 ?

    I have been able to get this to work using Delphi 6 and ComponentWorks 3 on counters 1 and 5 simultaneously. The input trigger polarity and output pulse polarity can be inverted through software if desired. Other than not calling CW Pulse methods only available for E Series boards, the software program is the same for E Series and this AM9513 board, i.e. CW (NIDAQ) is able to tell the correct calls to make.

  • GPTR doesn't output pulses

    I'm controlling GPCTR0 on a PCI-6035E card with software (Labwindows) that has it send out a single logic pulse. In the past month, the counter has gone from working fine, to outputting pulses of about .1V, to not pulsing at all. I've tried switching to counter 1, to no avail. I've also run the online diagnostic on the PCI card, and it passes alll of the tests. What's going on?

    perhaps your VI may be corrupt. If it passes all the diagnostics and the other counter does the same, it is most likely a software problem. Perhaps your VI may be corrupted or something in the code is wrong. I think it would be helpful to see the code you are using to generate this pulse.
    Derek

  • Single trigger output pulse each iteration

    I want to output a trigger pulse, record two analog inputs, and save the data to a text file.  When I do this for one iteration it works fine, but multiple iterations only acquire and save, the output pulse is only generated on the first iteration.  I am using a counter pulse output to generate the signal. How can I fix this issue?

    Hi there,
    What kind of board are you using? Are you saving data to the file on every iteration? Depending on your application, it might be advisable to save all data to a file after you are done with your application. Can you post your code so that we can look at it?
    Regards,
    Efrain G.
    National Instruments
    Visit http://www.ni.com/gettingstarted/ for step-by-step help in setting up your system.

  • Create 4 digital output pulses base on input ttl signal

    Hi
        I am a beginner in Labview and would appreciate any advice on how to solve the following problem.
    I am creating a TTL pulse train, and would like to send that into Labview as input.  For every falling edge detected on the input signal, I'd like Labview to generate 4 digital output pulses.  For each output pulse, I'd like to be able to specify the delay, and duration.       The picture should illustrate it more clearly, with the numbers showing the intended order of magnitude.
    System:  NI PCI-6733 DAQ card, Labview 8.5
    My daq card has 2 24-bit timers, and 8 digital I/O but I don't know what the best approach is for creating between 4-8 output pulses of this precision..should it be handled in hardware, or in software?  And how would I go about it
    Thanks,
    -Sidney
    NI Hardware: PXI-7853R, PCI-5122, PCI-6733, PXI-1036, PCI-MIO-16E-4, PCI-6110
    Computer Hardware: Xeon Quad Core - 2.33 Ghz, 8 GB RAM
    Software: Labview 2009, Labview FPGA 2009, Vista 64-bit, MAX 4.6, DAQmx 9.0, NI-SCOPE 3.5
    Solved!
    Go to Solution.

     Hi Yann,
       Wow, thank you so much for this example!  I'm trying to take a look at it, but when I run it.. it responds with the following error message
    Error -200452 occurred at Property Node DAQmx Trigger (arg 1) in DAQmx Start Trigger (Digital Edge).vi:1->reprise-1.vi
    Possible reason(s):
    Measurements: Specified property is not supported by the device or is not applicable to the task.
    Property: Start.TrigType
    Task Name: _unnamedTask<49>
    This is strange too, because ive already used the Digital Edge Start trigger for a different application with this card.
    -Sidney
    NI Hardware: PXI-7853R, PCI-5122, PCI-6733, PXI-1036, PCI-MIO-16E-4, PCI-6110
    Computer Hardware: Xeon Quad Core - 2.33 Ghz, 8 GB RAM
    Software: Labview 2009, Labview FPGA 2009, Vista 64-bit, MAX 4.6, DAQmx 9.0, NI-SCOPE 3.5

  • Output pulse with NI-Scope only, on 5102 PFI line

    The NI-Scope documentation briefly mentions a "Configure Digital Output" function, but it is not clear exactly what this does, and what parameters are available (e.g., pulse width, polarity, stand-off, etc...), or if it merely "configures", and another function is needed to actually generate the pulse.
    Programming in VB, with NI-Scope, for the 5102, what NI-Scope function(s) would I call to initiate an output pulse on a PFI line? What parameters of the pulse can be controlled?
    Thank you, Ed More

    Hello Ed,
    You need to use functions in NI-DAQ in either LabVIEW or ComponentWorks to do this. There are some examples and a knowlegdebase article that describe this.
    Here are the links:
    http://digital.ni.com/public.nsf/3efedde4322fef19862567740067f3cc/fead136291ec002186256aaa006c2019?OpenDocument
    http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=B45EACE3DFC756A4E034080020E74861&p_node=175381&p_source=external
    http://sine.ni.com/apps/we/niepd_web_display.DISPLAY_EPD4?p_guid=B45EACE3DD5756A4E034080020E74861&p_node=175341&p_submitted=N&p_rank=&p_answer=&p_source=External
    If the links do not work, go to developer zone and search on 5102 and pfi to find the examples and go to support and search in knowledgebase on 5102 and pfi for t
    he knowledge base entry.
    -Brian

  • Counter miss TELL pulses, NI DAQmx 9181 with NI 9402

    Hi,
    I am trying to read TTL pulses from a function generator using a counter. I am applying a 1KHz signal to the counter. Every time counter reads the pulses correctly in first cycle of measurement, but it miss some counts in all following cycles.
    I am using NI cDAQ 9181 Chassis and NI 9402 module with LabVIEW 2014 and NI Max 14.0.
    My computer has Windows 8.1 operating system.
    Please find the attached VI and images of Front Panel after run.
    What could be the reason for that, please guide.
    Thanks !
    B. Sharma
    Attachments:
    Counter cDAQ Testing-LV 2014.vi ‏44 KB
    Counter cDAQ Testing-LV 2014_Front Panel.png ‏68 KB
    Counter cDAQ Testing-LV 2014_Block Diagram.png ‏70 KB

    1.  The Elapsed Time VI starts counting when you first call it, so the first loop will take about the desired amount of time (although OS timing is not very reliable anyway).  The Express VI will reset itself as soon as you hit the time target.  Then, you wrap back around and reconfigure your task.  This takes time (during which the DAQ task is not counting, but the Elapsed Time VI has already been reset), and so all subsequent acquisitions will actually run some time less.  For example, if the configuration took 100 ms and you wanted to acquire 1 second of data, you would only get ~90% of the count.
    2.  The time it takes to reconfigure the task is going to vary dramatically with the bus you are using due to latency (ethernet > USB > PCI/PCIe).  So it makes sense that the problem was not noticeable with PCI, and it was most severe with ethernet (9181) compared to USB (9171).
    3.  Discarding the first sample on buffered counter measurements is a behavior change with STC3-based DAQ products (e.g. X Series, C Series, 621x) compared to older NI DAQ products (e.g. E Series, M Series, 9172).  In your case, when you use the E Series card the first measurement represents the count measured between the arming of the task and the first edge of the gating counter (which toggles almost immediately, you are very unlikely to receive an external 1 kHz clock edge during this time).  Since this measurement is often not desired and can be confusing, it is discarded in the newer NI hardware.
    Here is the behavior from the M Series and X Series user manuals (I know not your exact hardware, but I know that the diagrams are in these manuals and your E Series and cDAQ systems respectively will behave the same).
    From M Series User Manual:
    From X Series User Manual:
    Best Regards,
    John Passiak

  • How to use counter output pulses to trigger analog input?

    Hello all,
    I hope the kind people using this forum can help me, a lowly beginner LV programmer! I have been attempting to create a VI that produces a user defined number of TTL pulses, separated by every n seconds. Each TTL would be outputted to a stimulator, which in turn generates its own TTL. Using the stimulator-generated TTL, I would like to trigger finite analog data acquisition (e.g. for every TTL, trigger the collection of a data sweep that contains 4000 samples (collected at 4000 Hz), with 1000 samples collected pre-trigger. I would like to also be able to see each data sweep as it is triggered on a chart. As I understand things (lots of online/book/forum reading), I should be using the counter output to generate my TTL pulses, and syncing each counter produced TTL with analog input, as well as using a reference trigger. Also, the AI part should be started first, so that I don' t miss any counter outputs. If it matters, I also need to use one of the AI channels to acquire the TTL, so I can see my stimulator-induced responses to the stimulator in time.
    I am able to generate the TTL pulses from the counter output, but I am having a problem with the AI part. I am unsure how to sync the counter output with AI. Also, since I need to acquire pre-trigger samples, I would be needing to acquire samples continuously, but when I set 'continuous samples' on daqmx timing, the VI doesn't work (hence why's its set to 'finite samples').
     I hope someone out there can help, as I have been at this for what seems ages, with limited success. I am using a USB-6259 and LabView v8.2. Thanks!
    Attachments:
    RC001 v_1.vi ‏49 KB

    Hello,
    Due to the fact that analog tasks themselves are not retriggerable, a
    pulse train produced by a counter is always used as the sample clock
    for the analog input task in order to recreate a retriggerable effect
    for analog input. This can be done by creating a finite pulse train set
    to retriggerable using the DAQmx Trigger Property Node, or the pulse
    train could be continuous and just be gated by another signal. Neither
    of these methods can be properly applied in hardware to create a
    retriggerable reference trigger. You can however implement something
    similar in software by just stopping and restarting your reference
    triggered analog input task within a loop. There will be some delay
    between when the task is stopped and restarted, as these events require
    software intervention, but if there is enough time between when each
    trigger signal is generated, there should not be any noticeable delay
    or missed samples.
    I have attached an example of this!
    Mark B
    ===If this fixes your problem, mark as solution!===
    Attachments:
    RC001 v_1mod.vi ‏25 KB

  • Count 4th consecutive pulses from the analog output of the encoder

    Hi
    Iam getting analog output from the encoder and i want to count the 4th peak of the analog signal. Kindly suggest the best method Once 4th pulse is detected counter will increments.
    Pl refer the encoder output .
    Thanks
    Attachments:
    encoder sig.JPG ‏26 KB

    Whatever you've counted using your logic, divide it by 4 and convert it to an integer (towards negative infinity)..!!
    This should work.
    I am not allergic to Kudos, in fact I love Kudos.
     Make your LabVIEW experience more CONVENIENT.

  • Using 6602 to count number of pulses on the gate

    Hello
    I'm using 6602, NI-DAQ,WinXp,VC++
    I have an external pulse (about 30HZ 50% d.c) which I need to synchronize my process to.
    On every High level of the pulse I need to issue a thread that run for about 4ms.
    I think for 2 options to solve it:
    1. Receive an interrupt for every pulse and increase a global vaiable (counter) in memory. My applicaion will poll this varable and will issue the thread on every counter increament.
    I didn't find any way to receive this interrupt via the 6602!
    2. Increase one of the 6602 counters when the external pulse is connected to its gate/source. The problem is that I found that I can't poll (check the ND_COUNT) insoftware as long as the counter is armed.
    Can you please direct me how can I solve the problem in both cases?
    Many thanks
    Shali

    Hi Shali,
    Thanks for contacting National Instrument's support!  It sounds like you have an interesting application involving our 6602 card. 
    I would recommend going with your first solution.  You could simply perform a Count Digital events measurement and constantly monitor the output.  Then, you would use an event structure to monitor the variable where you're storing the count value.  If the value has changed, then you fire off your interrupt event.  If not, continue polling that variable. 
    I'm not sure if I understand what you're trying to do with the second solution, but hopefully the first solution will work for you.  If not, please let me know and I'd be glad to help you out further.
    Regards,
    Daniel L.
    Applications Engineer
    National Instruments

  • Output pulse every n units for x4 encoder

    I found this on the National Instruments website showing how to ouptu a pulse every N input pulses, the issue is that I'm trying to do this on X4 decoding.  I have a NI9178, NI9401 and a NI9201, I'm trying to input an X4 encoder to my counter and subsequently output a pulse every N steps on a seperate line to trigger an external piece of hardware.   My encoder has 200PPR and runs at about 2000RPM.
    Here's the link to the file:   http://zone.ni.com/devzone/cda/epd/p/id/3288
    Thanks for any assistance you can provide,
    Nick

    So I have been trying to figure this issue out by using the forums and all I've managed to do is confuse myself.
    I'm "simply" trying to output a series of pulses after counting N number of input pulses.  Here is the VI I'm working on (adapted from a previous forum post - Encoder VI for NI.vi is the main program).  There is one counter input and one counter output, along with some analog inputs (which for now can simply be ignored).  I'm trying to count the ticks off of Phase A from the input encoder and subsequently output a pulse every 100 ticks on the output counter task.  
    Please if anyone has any suggestions I am very open to them. 
    Nick
    Attachments:
    Encoder VI For NI.vi ‏54 KB
    Analog Graph2.vi ‏21 KB
    Get Terminal Name with Device Prefix.vi ‏50 KB

Maybe you are looking for