08-15-2012 08:35 AM
Hi all,
I need to generate synchronous pulses from my USB device NI M6289 connected with BNC2120 on connector-0 and SCB68 on connector-1. I need to operate 8 chips which are connected in parallel with power supply,with only one chip at a time. Two pulses are required with duty cycle of 50% for operating one chip. So total 8 pairs(overall 16synchronous pulses) of such pulses are necessary.
I have attached explanation in the attached word file,please have a look at it any help will be very useful for me.
Is it possible do all this with just two counters which are in-built feature of NI6289?? If not how can it be acheived with only two counters??
Regards
Anurag
08-15-2012 11:30 AM
Based on a quick look at a simulated 6289 device, it looks doable, though possibly not with
the BNC connector.
Each chip's PWMs would need to be mapped and wired to unique PFI lines. There appear to
be 16 to choose from on the 6289 which is just what you need.
You would need to stop, reconfig, and restart the counter pair each time you switch chips.
The reconfig would need to route the counters' internal outputs to the corresponding PFI lines
for the active chip.
FWIW, because it appears that your hardware timed digital port 0 has 32 lines in it, you might
be able to use DO instead. This would be especially convenient if you only need to support a
constant freq with exactly 50% duty cycle.
-Kevin P
08-15-2012 03:45 PM
Thanks for the reply kevin...
But how should I approach with PFI's?? I am new user of labview??
Can you just how to start it?? I have been able to understand little but not everything.
Regards,
Anurag
08-17-2012 07:20 AM
Sorry, I just don't have time to put together a detailed tutorial. Some resources for digging in include:
- MAX (Measurement and Automation Explorer). There's info there about pinout assignments and signal routing that can help you identify pin assignments for the diff PFI lines.
- Forums, tutorials, knowledgebase, etc. here on ni.com. Things to search for would be PFI, routing, counter output, pulse.
Generally, start small. Figure out how to generate 1 pulse train that goes out to a chosen PFI line that you can change on the front panel before running. Once you get that, work through a good method for being able to stop, reconfig, and restart on a different PFI line.
-Kevin P
08-20-2012 12:19 PM
Hi kevin,
Thanks for your help so far I managed to sort the things
I have managed to get my counter output on different PFI lines. I have also started both counters together in the same VI by just copying the codes two times.
For eg selecting ctr0 on PFI1 and ctr1 on PFI2 with 30s initial delay
I have small question now,is it possible to shift ctr0 output to PFI3 and ctr1 to PFI4 after one minute without stoping the VI and reconfiguring ctr ouputs to PFI2,4??
Further after one more minute ctr0 from PFI3 to PFI5 and ctr1 from PFI4 to PFI6 and so on....until ctr0 goes to PFI15 and ctr1 to PFI16 and the again the same sequence ctr0 to PFI1 and ctr1 to PFI2??
Is this possible to automate this process or not?? Or I can do it only by manually configuring it.??
Thnaks again for your help
Regards
Anurag
08-20-2012 05:19 PM
- I'm pretty sure you can't change task signal routing while a task is running. One other thing I just thought of is that you will need to read up on "lazy uncommit" or "lazy line transitions" so that when you specify a new PFI routing, the signal isn't *also* sent to the prior one(s).
- At some level, you can automate the process of configuring for different PFI outputs in a particular sequence and with particular timing. But it's going to depend on your application code. You can't predefine a whole bunch of different routings & switch times and then expect DAQmx to handle all the details.
-Kevin P
08-21-2012 01:50 AM
Thanks for the reply kevin,
okk,and which tutorials will be helpful to do this?? timing and synchronisation,lazy counts and what else should I search for in developer zone??
I mean specific keywords which explain routing with change in timings??
Best Regards,
Anurag
08-21-2012 06:57 AM
"Lazy line transitions" was a term I just happened across in the DAQmx help installed locally. "Lazy uncommit" is a term I've come across on the forums for the same issue. Otherwise, get creative and try different combos -- "signal routing", "route signal", "connect terminals", "configure route", etc. The only specific resource I had in mind was the DAQmx help -- the other stuff I kinda vaguely remember stumbling across, but I know it's around here someplace. A little searching and a lot of reading should turn it up.
-Kevin P
08-22-2012 09:26 AM
Hi Kevin,
I did not find any success,searched a lot for the things. Well it is required for my application
I have alternative for my application please tell me if its possible or not:
Can I use digital port output which gives only one line high at a time.Then after one minute 2nd line goes high.
for e.g
00000001
after one minute
00000010
after one minute
00000100
after one minute
00001000
after one minute
00010000
after one minute
00100000
after one minute
01000000
after one minute
10000000
after one minute
then again 00000001 and so on.....
Is it possible to do this operation on digital output port??
Regards,
Anurag
08-22-2012 10:54 AM
Something like that should be very easy. If you don't need to do duty cycling at a hardware-controlled rate, and if you're only changing your DO bits every minute or so, then you could just do this stuff with on-demand (software-timed) DO. You could either have 1 task where you would write the 1-port-wide bit pattern as needed, or you could have 8 separate tasks to write each bit individually as a boolean.
Look at examples for simple digital output (without any clocking) to see how it's done.
-Kevin P