Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

Is it possible to use PCI 6542 card to trigger signals on Microcontrollers

I am doing a project in labview.
I am using labview 8.2.1 and trying to trigger pins on microcontroller like reset... i.e. sending pulse
Is it possible for me to generate pulses where the width and period of the pulse can be editted to note the min pulse width required for triggering. I am using PCI 6542 which has to generate these pulses.
please attach a program or pic which will help me in designing this.
Thanks,
Sailesh
 
0 Kudos
Message 1 of 8
(2,645 Views)
Hi

This is perfectly possible.
Just define a waveform of the correct duration and send it once.
In fact it is an awful overkil for the capacities of the AWG. You can also do this correctly with usec timing in software, just not in windows.
greetings from the Netherlands
0 Kudos
Message 2 of 8
(2,640 Views)

Thank u Albert.

Can u send any example which does this. so that i can atleast get to know how it is done. I am still learning labview.

Regards,

Sailesh

0 Kudos
Message 3 of 8
(2,640 Views)
Sailesh,

The 6542 is a digital card so the resolution of your pulsewidth measurement will be you sample rate.  that is, if you want to generate a pulse you would create a 0001000000000 pattern where the width of the pulse is the period of your sample rate.  To increase the pulsewidth you can increase the frequency or repeat samples (0001100000000).  Using the NI 5404 or NI 6651/2/3, you can generate an external clock with much finer resolution than the 6542 can generate onboard (200MHz / N).  This can give you more flexibility in what pulse widths you have available for testing.

There are a couple of examples shipped with LabVIEW that illustrate dynamic generation with an external clock.

-RyanM
Message 4 of 8
(2,635 Views)
Hey Ryan,
 
I wanted to know if it is possible to generate pulses of less than 8ns using PCI 6542. As the function generator i have can generate least of 8ns pulse i wanted to check if the device triggers less than 8ns. If possible ,Kindly help me in designing the labview block diagram as I hardly know much about the device.
Regards,
Sailesh
0 Kudos
Message 5 of 8
(2,611 Views)
Sailesh,

The 6542 is a 100MHz device.  It can export its sample clock which will be a freerunning 5ns pulse train with 10ns period.  However, its data channels can only generate one data point per clock cycle so the smallest pulse it can generate on a data channel is 10ns. 

Often I have needed a variable pulse generator.  A very simple trick I use at my desk is to run two channels of the 6542 into an external logic gate.  I setup one channel to use DataPosition = Rising edge and the other channel DataPosition = Delayed from Rising edge.  The logic gate (such as a NOR) will generate pulses whenever the two channels are low.  By delaying one channel relative to the other, I have created a pulse generator with a resolution of 1/256 my clock period.  At 100Mhz, this is 40ps.  For example, using a NOR gate, if I generate 1111110111111 on two channels, one channel set to rising edge and the other channel delayed by 0.2 (2ns of a 100MHz clock), then the output of the nor gate would be a pulse of 8ns.


It can receive an 8ns trigger if it that trigger is synchronous to the clock being used to acquire that trigger.  If you sample and 8ns trigger with an asynchronous 100MHz clock, you are not guaranteed to receive it.  If you can guarantee the timing relationship, then you can.

Hopefully that helps.

Message Edited by Ryan M on 07-27-2007 09:00 AM

Message 6 of 8
(2,606 Views)

Hey Ryan,

Thanks for your circuit  in generating pulses of 8ns. Instead of generating a train of pulses is there a way to get single pulse. If I take ouput from '0' channel i will get 10ns pulse in a pulse train but when i take output from channel '1' i will get around 20ns. So in your circuit which are the two channel i am suppose to take.. Can u also send me the circuit diagram of the setup which u have created. I am suppose to measure the least pulse required to trigger an interrupt pin. so i will be needing pulses lesser than 8ns also. PLease help me in doing this.

Thanks and Regards,

Sailesh

0 Kudos
Message 7 of 8
(2,602 Views)
Sailesh,

If you are using a data channel then the waveform is 100% defined by you.  If you want one pulse then use a finite generation of a 00000000100000 type pattern.  If you want two pulses then 0000010000000100000.  If you want a pulse train then use continuous generation and it will repeat the pattern you define.  You can write whatever pattern you want to which ever channel you need.  There is no reason channel 0 and 1 can't have the same pattern.  Just write an array such as:

0  <-- writes a 0 to both channels 0 and 1
0
0
0
3  <-- writes a 1 to both channels 0 and 1
0
0
0
0

The exported clock is simply a freerunning timebase.  If your sample rate is 100MHz (10ns period) then the exported clock will be just that, a 100MHz clock.

my circuit was really simple
                                                                                                      _______
data position rising edge; pattern 1111111011111; channel 0  -------------\  NOR  \o____ variable pulse
data position delayed from rising; pattern 1111111011111; channel 1 ---/______/

                      ____________        ___________________          ______________________
channel 0   _|                        |____|                                  |____|                   
                          ____________        ___________________          ______________________
channel 1       _|                        |____|                                  |____|
                                                __                                      __
pulse             _______________|    |_____________________|    |_______________________                                                                
0 Kudos
Message 8 of 8
(2,578 Views)