USB 6210 Using counter as an external clock

I was referencing an old post for how to read and write data from a quadrature encoder. I am using a USB 6210 card along with Labview 8.2.1. In the previous post it describes needing to:
"You will have to create an external clock using the other counter on
the board then route the signal either externally or internally"
I do not know what this means and I do not understand what is required to do such (Changes to wires, change the Vi...etc). If someone could please shed some light on this I would really appreciate it.
I am basing my approach on the following NI example:
Meas Angular Position-Buffered-Cont-Ext Clk.vi

Hi rose8,
The example you are referencing requires an external clock to basically take samples of the angular position based on time.  For instance, you can rotate your angular encoder all you want, but it will not save which position you are at until a sample clock rising edge is seen.  When the sample clock rising edge is seen, then it places that position into a buffer, and continues to wait for the next sample clock rising edge to happen.  Every time the rising edge happens, the position of your angular measurement is recorded one point at a time, stored in a 1D or 2D array. 
The sample clock cannot be an on board clock that is already created.  So now, we look at what sources we can use for our external clock to sample the position of our encoder and save it in our memory buffer.  We can use an external source and bring it into the board, or we can create a clock using another counter on the board.  Since you are looking to do this, I'll assume you want to create a clock from there.
In software, you specify two counter tasks; one to measure your angular position and one to generate a pulse train.  The pulse train you generate will be the sample clock for the buffered angular position measurements you are taking.  Now, you can route this externally or internally, based on your application.  The easiest way is internally, because it doesn't require any additional wires to accomplish.
To route internally, all you have to do is for your DAQmx Timing VI, specify CtrXInternalOutput from your USB 6210 as the source, where X is the counter you generate your pulse train on.  To see this source as an available selection, right click your Resource Name and select I/O Name Filtering from the shortcut menu, and then be sure that Include Advanced Terminals is checked. 
In programming, you would want to start your angular position task first, and then start your clock generation from your second counter.  They will run in parallel and just be sure to clear both threads at the end of your program.  Hopefully this clears up some confusion for you.
Kyle A.
National Instruments
High Speed Digital I/O Product Support Engineer - R&D

Similar Messages

  • NI 5772, using clk_in as an external clock

    Hi. 
    I'm using NI 5772R with NI PXIe-7966R NI FlexRIO FPGA Module.
    I'm trying to sample the signal with external clock (CLK_IN). An example file 'Clock Select (FPGA).vi' is successfully compiled. However when running 'Clock Select (host).vi', the data doesn't seem to be sampled with CLK_IN signal even if I choose the clock source as 'External Clock'. Actually externally clocked data is the same as internally clocked data.
    So I wonder if this is because the signal plugged into 'CLK_IN' has wrong range. The frequency range of my CLK_IN signal is 80~160MHz, while the specification of NI5772 says the CLK_IN input range is 400-800MHz. Would it be a problem? 
    Also, My clock signal is sinusoidal, rather than TTL. Does the CLK_IN need to be TTL?
    Thanks for your help.

    Yes the output impedance of the amplifer is designed 50 ohms, so that is not an issue ...
    We have hooked it up to a function generator, and gotten it to work at 500 MHz even at the lower voltages.
    After unplugging the function generator, then plugging in our external clock, it will run, by the signal is corrupted at several points.
    The long period duty cycle of the clock is only about 60% (i.e. there is a log period where no clock signal is sent)
    I think the issue may also have to do with the clock phase, which is not unform.   The NI 5772 uses a Texas Instruments ADC . Reading the manual for tha part, it seems like the clock requirements are pretty tight, as it is expecting a very low jitter clock signal
    Another group we work with has a digitizer made by another company that apparently solves this issue by routing the clock though a VCO, which somehow stablizes the clock.   However, after some consultation we are not convinced that is the real solution either, because the clock is supposed to be somewhat unstable in the first place, which is the issue we are trying to correct for (we are trying to avoid having to resample the data in software)

  • How to use PXIe 5652 as external clock to the USRP

    Hi,everyone,I'm new to PXI and USRP,and there are some problems I want to ask for help.
    What I want to do is to synchronize 8 USRPs which are used as receivers. To make sure they have the same crystal oscillator, I want to use the PXIe 5652 as the external clock.However, what confuse me are that PXIe 5652 has 3 connector(RF out, REF in/out, REF out2), and USRP 2920 has REF in and PPS in, how to connect them? Wheather I need to connect the PPS in to achive my aim? And,if it is needed to write some labVIEW programs to make PXIe 5652 as the external clock? that's all,thank you!

    Hi,
    To provide a external reference frequency signal I think the following method can be used.
    Use the niRFSG or niRFSA Export Signal VI to export the "Reference Clock" signal to "RefOut" or other appropriate output terminal.
    Use the commit VI to commit these settings to the driver.
    For ease you may use one of the existing RFSA or RFSG example VIs and add the export signal and commit VIs.
    When the VI which opens a session to the RFSG or RFSA device is run the reference clock signal shall be exported to the configured terminal of the RFSA or RFSG device.
    You may then connect this terminal to the Ref In terminal of your USRP device which you would have configured to use a external reference frequency source.
    This method works for the VST which I use.
    Thanks. 

  • How to use analog Triggering and External clock scan

    Hi, there. I want to measure the engine cylinder pressure with an PXI6070-E card and BEI encoder. I have tried using Cont Acq&Graph ExtScanClk D-Trig.vi and Cont Acq&Graph ExtScanClk Soft A-Trig.vi , but they don't work. What I did was to connect a 50HZ pulse to PFI0 (analog triggering, I changed the code from digital triggering to analog triggering), and a 100K pulse to PFI7 (startscan), and an 50 HZ analog signal to ACH0. But the code always says: timeout. If I use internal clock, it works fine. Could you please give me some help? THANKS A LOT!

    Hey Wyuan,
    I tested the Cont Acq&Graph ExtScanClk Soft A-Trig.vi and it worked fine. However, the Cont Acq&Graph ExtScanClk D-Trig.vi has a small error in its logic that will prevent the data from ever being displayed to the graph. In order to run the examples you need to connect a trigger to pin 11 and a scan clock to pin 38. A 10kHz square wave would be fine for the clock signal and just a single pulse would work for the digital trigger.
    One additional think to keep in mind is the grounding. You might need to connect you ground from your signals to a DGND pin. I am including the two programs that I used for the test.
    I hope this helps,
    Joshua
    Attachments:
    Cont_Acq&Graph_ExtScanClk_D-Trig.vi ‏121 KB
    Cont_Acq&Graph_ExtScanClk_Soft_A-Trig.vi ‏153 KB

  • How do I use a quadrature encoder as an external clock (PCI 6229)

    Hello, ( a similar post has been placed on DAQ forum apologies as I did not know best place)
    I have a PCI 6229 M Series data acquisition card. I want to use a quadrature encoder to be the external clock driving the acquisition of a number of signals. I have set up reading 24 signals each time a clock pulse is received using the DAQ assistant and set my external clock to pin pfi8 (I think) this is then connected to an encoder output. This works well enough until the encoder is run too fast when it appears I am either missing pulses or getting bounce.
    How can I set up to clock using a quadrature encoder? I have seen a number of questions on this forum regarding quadrature encoders and reverse counting but not on using them as an external clock.
    Basically I want to have the stability and "bounceless" nature of using two outputs from a quadrature encoder whilst still using an external clock. Is this just a case of configuring controls to certain pfi's? If so how is it done?
    Any help or pointers would be helpful. So far I have managed very nicely by simply using the DAQ assistant and the interface it has would suggest that if configured for a certain pfi pin I could actually still use it.
    Thanks in advance.
    Kevin

    Hi,
    Well I've had alook into this for you and I'm not quite sure I understand what you are looking for.
    Is it possible for you to phone back in to support?
    The reason you are seeing bounce at high speeds, or indeed loss of points, is due to the sampling rate that you have set up.
    What you will find is that the trigger will start an aquisition of a number of points at a certain rate.  If your sampling rate is too low then you will not finish that sample batch before the next set of samples is recorded.
    It is possible to use an external clock into a trigger or digital line, however this will limit the number of samples you can take to the speed of your encoder.
    If you increase your sampling rates, and then configure a start trigger from a single input from the encoder you will be able to record a number of samples after a rising/falling edge.  (Set the clock as an internal clock)
    Hope this helps
    AdamB
    Applications Engineering Team Leader | National Instruments | UK & Ireland

  • External clocking proble with NI-DAQ 6534 after driver upgrade

    Hello newsgroup,
    I've got a Problem with a pattern generation using the NI-DAQ 6534.
    I'm using it in 32 Bit Output mode with external clocking.
    After changing the PC and the OS from a P II 333 Mhz running Win98
    to a P 4 1,8 GHz running WinXP Pro the use of new drivers was nessasary,
    because the old driver doesen't work at all. The following problem occurs
    by using actual driver: Using my old programm external clocking doesen't
    work anymore, but internal clocking works fine. I'm using C++ not Labview.
    I'm not shure if this is the right newsgroup for my problem. If not please
    give me a hint were it belongs to.
    Regards
    Michael

    Michael:
    What version of NI DAQ did you have? What version did you upgrade to? Is your 6534 a PCI board or is it an AT/ISA based device? Have you changed your code at all? You code should be fully compatible with a new version of NI-DAQ... Please provide more exact details of the problem so I can help futher. Are you getting errors or is it just not working?
    Sincerely,
    Brooks B
    Applications Engineer
    National Instruments

  • DIO Pattern with external clock

    I use Pattern Input with external clock, I only wire external clock to REQ pin, I see how frecuency vary, but I do not receive data but the one that was latched last time, Do I need to wire something else in order to receive correct and continuos data? I think I just need a singnal to get data latched every time I require trought external clock. What do I have to do to get my application running?

    It sounds as though you are using a NI-653X data acquisition board to perform Pattern Input. When performing Pattern Input, data is transferred upon the rising or falling edge (user configurable) of each clock pulse. This clock signal can be externally provided or internally generated. To use an external clock signal of up to 20MHz, simply connect the signal to the REQ pin as you are doing.
    I recommend trying a LabVIEW shipping example already set up to do pattern input. The particular example I am thinking of gives you the option to try either an internal clock or provide an external clock. I would recommend trying each option. I do not know which version of LabVIEW you have but will provide the path to the example in LabVIEW 7; the path is very simi
    lar in earlier versions of LabVIEW:
    Help >> Find Examples >> Hardware Input and Output >> DAQ >> Digital Input and Output >> 653x >> Cont Pattern Input.vi
    I hope this helps!
    Sonya

  • Using timer/counter with PCI-6221/USB-6210 to control timed-loop VI

    Dear all,
    I need to ask about two devices and one of their functionalities, PCI-6221 and USB-6210. For our NI-based system, we need to control some timings in a Timed-Loop vi, for that currently we are using PCI-6221 and we give external TTL signal (at 1 kHz) to it,
    recenntly we need to make some changes and for that we found USB 6210 DAQ to be more suitable, but we need to clear ourselves on some specific things.
    Can the counter/timers functions available in the either PCI 6221 or USB 6210 can be used to control the Timed-loop VI by giving external clock or by using their own internal clock source?
    Although we are using external clock with the PCI 6221 but we want to know about the usage of their internal clock, also are controlling timed-loop also possible for USB-6210
    Also... What if we use the RTOS, are they still able to control the timed-loop VI  without giving any 'EXTERNAL CLOCK' and using the internal clock sources of the DAQs
    Waiting for reply,
    Bests,
    RaJaf
    Solved!
    Go to Solution.

    Ben,
    I having read previous email which I send earlier with general overview, we discussed in more detail within our team and I am giviing the specific answers.
    Please check in RED the most recent answers. Blue are the questions/suggestions by your side.
    1.    Using Internal hardware clock of PCI-6221 would enable us get rid of external clock, but how to divert the internal hardware clock to the current settings. Any idea  (can you provide us with some reference manul for otherwise). I mean is there some flag-bit etc. or VI
    2.       Is it also meant that with the installation of RTOS the timed-loop can directly get the timing source from the internal hardware clock PCI-6221? --- How???
    3.       In order to make desktop to work as RT system, what is the hardware (motherboard, processor, etc..) requirement? What are the LabVIEW modules (specific name) that needed to be installed? Our platform is LabVIEW 8.6. (Currently we have windows-7 with i7 core processor)
    What kind of application are you intending for this system? ---- high-speed laser scanning system.
    Are you most concerned about accuracy, speed, or responsiveness? To control the laser mirror scanner to move at 1 kHz or 2 kHz speed. On the other hands, using PCI-5105 (128 MB memory) as a DAQ for real-time/on-the-fly data processing.
    Bests,
    RAJAF

  • Event counter using USB-6210 analog

    Hi,
    Any suggestions or directions where to look to generate a VI that would record event from a magnetic counter of a mouse wheel. I would like to record up to 16 wheels using the USB-6210 device. Thanks!
    VO2max

    Thanks for the extra information.
    The 6210 actually has two counters, so you could count the edges (on two of the wheels) if the signals are TTL compatible.  You can use the Count Digital Events.vi example to help you get started.  From LabVIEW, it can be found at:
    Help » Find Examples... » Hardware Input and Output » DAQmx » Counter Measurements » Count Digital Events
    If your signals are TTL compatible, I would highly recommend purchasing a PCI-6602 and using this method for all 8 channels.  You could modify the example code by increasing the delay (software-timed sample rate) to a larger value (say 1 minute), and logging the results to a file as you run.  Doing this would log the value of the event counter every minute, and would keep the file size relatively small (about 15kB if you run for 8 hours).
    If you must use a single 6210 and require all 8 channels, the only option would be to use continuous analog inputs.  You would have to sample at a high enough rate to not skip the pulses (I am not sure what that is without knowing more about the signal), and then process the digitized signal in software to determine the information that you need.  I would use the Producer/Consumer design template in conjunction with a continuous analog input example to get started.  In the consumer loop, you would have to implement the functionality of the counter in software.
    Using a hardware counter would be preferrable to using analog inputs.  The counter is made for exactly this type of task, and implementing it in software can be complicated as well as processor intensive.  If you have any questions let me know, I'm happy to help you out.  You can always try out the counter task on the 6210 for two wheels to see how it will work before deciding whether or not to purchase a new board.
    -John 
    P.S. After your first post I had assumed that you were testing computer peripherals, but it looks like you actually have eight rodents.  We had a good laugh over here over my confusion.
    John Passiak

  • Do I have to use an external clock with a cDAQ-9188 and NI 9401 to read a linear encoder? I'm seeing error message that implies that but the example code doesn't show it.

    We can set up a task that works on demand but when we go to continuous sampleing we see Error -200303, which claims an external sample clock source must be specified for this application.  However, some of the NI linear encoder example code doesn't show that (uses the cDAQ 80 Mhz clock) and the documentation didn't mention that. 

    It's mentioned in the 918x user manual:
    Unlike analog input, analog output, digital input, and digital output, the cDAQ chassis counters do not have the ability to divide down a timebase to produce an internal counter sample clock.  For sample clocked operations, an external signal must be provided to supply a clock source.  The source can be any of the following signals:
    AI Sample Clock
    AI Start Trigger
    AI Reference Trigger
    AO Sample Clock
    DI Sample Clock
    DI Start Trigger
    DO Sample Clock
    CTR n Internal Output
    Freq Out
    PFI
    Change Detection Event
    Analog Comparison Event
    Assuming you have at least one available counter (there are 4 on the backplane), I would suggest to configure a continuous counter output task and use its internal output as the sample clock.  Specify the internal counter using an "_" for example "cDAQ1/_ctr0".  The terminal to use for the sample clock source would be for example "/cDAQ1/Ctr0InternalOutput".
    Which example uses the 80 MHz timebase as a sample clock?  It is far too fast for a sample clock on the 9188 according to the throughput benchmarks (80 MHz * 4 byte samples = 320 MB/s).  There is also no direct route between the 80 MHz timebase and the sample clock terminal for the counters--making this route would use a second counter anyway.
    Best Regards,
    John Passiak

  • Generate pulses in NI-ELVIS II to be used as an external clock

    I am using the NI ELVIS II counter for edge counting and to set the clock for Sample clock function I have to use an external clock but I am not sure how to do it. I suggest I have to use Counter Output/ Pulse generation to generate a pulse with a desire frequency and output it on pin PFI12 or PFI13 or even Freq-Out pin and then use this pulse as the external sample clock.
    I can do pulse counting withough using a sample clock function but I would like to sample as high as possible to have more points and less oscillation. Would you please help me with this vi. I have attached the vi to this post.
    Attachments:
    Edge Counting.vi ‏25 KB

    Hi tintin99,
    I'd recommend checking out the NI Example Finder, found in <LabVIEW> » Help » Find Examples... 
    Then navigate through Hardware Input and Output » DAQmx » Counter Measurements.
    In particular, I'd suggest that you load up Count Digital Events.vi which shows how to implement simple Counter based Edge Counting measurements. These are useful for interacting with peripheral hardware such as Quadrature Encoders. With this VI running, you could also concurrently execute the Gen Dig Pulse.vi  found in the 'Generating Digital Pulses' section also within the Counter Measurements category. These are both good demonstrations on how to efficiently create Counter I/O DAQmx tasks within LabVIEW and will serve as a great foundation for your own code.
    As a general overview, there are three main terminals you will need to be aware of when dealing with Counters:
    Source - The counter input signal, effectively the signal we wish to count.
    Gate - An input signal which determines whether we should continue counting, based on digital highs, lows, active edges and falling edges. These can all be preconfigured in software.
    Out - The counter terminal output. This will be used in pulse generation.
    As you want to perform two Counter based tasks, you will need to make use of two different onboard counters.  You can find out which pins can be used to access these different counter terminals by loading up the Measurement and Automation Explorer (MAX) and selecting your device under the Devices and Interfaces tree from the left hand pane. With the device selected, click on Device Pinouts, found on the toolbar. This tab could be hidden, so I suggest either maximising the MAX window or clicking on the double arrows on the right hand side of the toolbar to display any missing options.
    Best of luck with your application. 
    Kind Regards,
    Alex Thomas, University of Manchester School of EEE LabVIEW Ambassador (CLAD)

  • Counting external clock

    Hi,
    i have an optical mouse connected with a vi that i could see the data and the external clock of the mouse..
    the problem is that i want to know or measure  the  real time which the external clock create each pulse..
    i thought to get a counter which measure any dig pulse  send by the mouse..
    but can i get and the time with counters?
    andrikos

    Hi,
    Your question was :
    i want to know in real time,, when the external clock create the pulses..
    You can use counters to find when the external clock is generating pulses.  It looks like you have connected to an analog input right now.  You could essentially do some kind of software analysis but it would not be accurate.  Using the counters you can measure all the pulses and when they occurred.  Are you using the DAQmx driver for this application?  If you are using LabVIEW for this application I can point you to an example that achieves something similar to this.  In the LabVIEW environment, click on Help >> Find Examples.  In the example finder window, select Hardware Input and Output and then select DAQmx >> Counter Measurements >> Count Digital Events.  There are a few examples in this folder that can show you how to make counter measurements.
    There are also examples of counting pulse width etc., if that is something that you might want to do.
    Hope that helps.
    Regards,
    Raajit L
    National Instruments

  • How can I use external clock to implement a delay?

    Hi all,
      I am testing to use external clock to drive dev/PFI0 (on device 6711) which is used as the clock for the analog ouput. I have thinking two applications by using the external clock but I don't have much idea on the implementation yet.
    First of all, I have a sequence of data (array) with each sample being sent at the interval of 1us. I use an external clock (10MHz) driving the PFI0 so it is pretty easy to achieve that goal. I am thinking what happen if I want each sampel being sent at different time. For example, if I have 5 samples, I want the first one sent 1us after the task start and wait 2us to send the 2nd sample, wait 5us to send the 3rd sample and wait 11 us to send the 4th sample, and wait 1us to send the last sample. Is it possible to achieve that based on the external clock?
    Second question is about the delay. My code require ciritcal timing and the builtin delay doesn't behave very well because I am running in windows. I can increase the priority of the vi to highest, it helps a bit but still not perfect. I am thinking if it is possible to implement hardward delay based on the external clock. Any idea?

    Hello dragondriver,
    To answer your first question, yes you could send data in that fashion. You would have to programmatically build a pulse train and use that to trigger the sending of data. The answer to the second question is essentially the same. You should be able to programmatically build a pulse train with a delay and use it as trigger to begin whatever operation you have.
    Jonathan L.
    Applications Engineer
    National Instruments

  • 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

  • Using external clock on a 6062E DAQ card

    In my application I need to use an external clock (2 MHZ) to sample 10 channels at 40 KHz each. I connected the external clock to PFI_7/Startscan, enabled the ND_IN_CHANNEL_CLOCK_TIMEBASE and ND_IN_SCAN_CLOCK_TIMEBASE using The Select_signal function. If I use only two channels (instead of 10) everything works fine. If I try to increase the number of channels to more than 2 I get a digitized waveform with points missing (one every 2). I tried to decrease the sampling rate to 4 KHz per channel, but the problem persisted. For 2 channels everything is always fine, but for more than 2 I get the same error in the digitization pattern.
    The relevant lines of my codes are attached
    Thank you for your help
    Enrico Gratt
    on
    Attachments:
    Sample_code.pas ‏3 KB

    Enrico,
    I have a couple of questions. Do you see the same amount of missing data regardless of how many channels (more than 2) you are acquiring? If you use the internal 20 MHz timebase, can you successfully acquire all 10 channels at 40 kHz?
    Spencer S.

Maybe you are looking for