Burst handshaking mode timin diagram

I am using the 6533 card in the burst-handshaking input mode.Clock signal and data signal triggering the daq-card are sychronised and alighned .Looking in the timing diagrams of the manual, a "setup time from input data valid to PCLK", t_dis, of 4 nanosecs is needed for successful acqiusition.I think i am not able to do successful acquisition because of this time factor missing in my system. Any suggestions of how to overcome this ????
thanx in advance

If you use the reverse PCLK configuration for burst mode there is no minimum T_dis time. Table 3-5 within the user manual is for using the default PCLK configuration (the PCLK would be generated by the 6533 since you're configured for input). Table 3-7 shows the timing diagram for the reverse PCLK configuration and the minimum T-dis is 0 sec. You could set the burst mode for reverse PCLK and so in this case the outputting device would need to generate the PCLK and the 6533 would be inputting the PCLK as well as the data.
You can use the DIO Parameter VI in LabVIEW or the Set_DAQ_Device_Info NI-DAQ function call to reverse the PCLK.
653x User Manual
http://digital.ni.com/manuals.nsf/webAdvsearch/EDE443F5C700373A862569B90072D26F?OpenDocument&vid=niwc&node=1321
00_US
I hope this helps.
Regards,
Todd D.
NI Applications Engineer

Similar Messages

  • DAQ-653X handshaking mode in C

    Hello all,
    I'm new on this forum, I'm a student working on a PCI-DIO-32HS. I have to work in C with Visual Studio, and to use the handshaking mode.
    I'm looking for documentation and examples because I'm a little in troubles just with the user manual and the NI-DAQ C Reference Guide.
    All is well with reading and writing samples on ports but I need to wait a request from a device to change what I'm writing. I tried to use the DAQmxCfgBurstHandshakingTimingExportClock function (I got an example in this post forums.ni.com/ni/board/message?board. id=231&message.id=3611) but I always get an error :
    DAQmx Error: Requested value is not a supported value for this property.
    Property: DAQmx_Buf_Output_BufSize
    Requested Value: 1
    Intermediate Buffer Size Increment: 2
    Task Name: NameOfMyTask
    Status Code: -200077
    If anyone know what's wrong or have a detailed documentation on the handshaking mode, please help me !
    Thanks
    Vergnolle G.
    P.S. : sorry for my English, I'm French!

    I found the problem, it was not in the DAQmxCfgBurstHandshakingTimingExportClock function which I changed to DAQmxCfgHandshakingTiming, but it was the numSampsPerChan in my DAQmxWriteDigitalU8 function I had to pass to 2 or more.
    I think this is not the right place for my post, so I wrote a new post in the Digital I/O part http://forums.ni.com/ni/board/message?board.id=70&message.id=3998.
    Vergnolle G.

  • Accessing PC6 and PC7 while using the handshaking-mode

    How can I access the lines PC6 and PC7 on my PCI-6503 / DIO24 Board while
    using the handshaking-mode?
    If I'm trying to access these lines by "dig_out_line" after using the "dig_scan_setup"
    function I receive the error-code -10007 (bad channel error).
    best regards
    Marc

    One feature I found - although it requires you to change album names - but if you on the settings part of iPod set the shuffle to songs, when you pick an album to play it will shuffle those songs. Now how do you apply this to what you want to do? Make your playlist and highlight all the songs and right click the mouse and choose "Get Info" and give them all the same album name. The only draw back is that this will cause the songs to loose their original album information. But when you play that album that you just "created" the iPod will shuffle the songs for you.

  • Is it possible to have delimited output using burst distributed mode

    I am aware that it is not possible to have burst mode and delimited output using reports. I am using reports 9.0.4.0.21. Are there any work arounds ? Is it possible to use ascii, and then use the destype=printer, but the printer destination will be a file location or direcotory ? Any suggestions with this ?

    Just to make it clear, if the question isnt. I am trying to hae burst mode distribution, but i am not able to use the feature in Oracle Reports, since delimited output is not supported. I would like to use the burst mode distribution because of its advantages, however since that is not supported the only other alternative in burst mode is using format=ascii. But that format, as much as i am aware, is only for printing, since the mode has to be character. Is it possible to have any workarounds where the mode=character, but the device which reports points to is actually another file location ? Has anybody got any interesting ideas ?

  • Digital Handshaking with two PCI-DIO-32HS Cards

    Hardware: two PCI-DIO-32HS Cards
    Software: LabVIEW 5.1, NI DAQ 6.6
    Problem:
    I'd like to do burst digital handshaking with two PCI-DIO-32HS cards.
    One being used for sending bit stream while the other receive.
    Suppose I want to use burst handshake mode.
    How should I wire the connections?
    Where should I wire the REQ, and ACK line from the sending card?
    Should I wire REQ from card one to REQ of the other card?
    Also, how do I configure labVIEW VI to do burst handshaking mode.
    Can anyone send me a VI that can do this.
    Thanks a lot.

    Matt,
    I would recomend using the DIdoubleBufPatternGen.C examples that ships with NI-DAQ. You can find it in your \NI-DAQ\Examples\VisualC\Di folder. If you don't have this example on your machine, you can get it by running NI-DAQ Setup and selecting support for C/C++.
    This example does double buffering to allow you to continuously acquire data from your card. Data is transfered only when a full 1/2 buffer is ready. You can set how long to acquire data by setting the number of half buffers to read, or by modifying the read loop conditional parameters to fit you needs. See the NI-DAQ help on how to set you REQ pulse rate to 100kS/s.
    Nick W.
    www.ni.com/ask

  • Handshaking or i/o ??

    we have a system outputting digital data at 16 MHz, the high speed i/o card i'm using is the 6533 to input this data.
    The data rate is too high to input with pattern i/o, thats why we are using the burst handshaking mode kind of in a tricky way by setting the REQ line to a constant high voltage all time. we are actually getting data but do you think this is a reliable operation manner??

    Greetings,
    Unfortunately, this configuration is not absolutely reliable. The NI 6533 can stop acquiring data and de-assert the ACK line at any time. Unless you monitor the ACK line, it is likely that you will lose data and not know about it. To perform pattern input at 16 MHz, you may want to consider the NI 655x or NI 6534.
    Good luck with your application.
    Spencer S.

  • Why is my bandwidth limited in direct mode?

    I have 150 Mbps internet service. I am only seeing 20Mbps on my Air using Airport Express. I have two, they both have the same result.
    If I connect the Air to the modem (in bridge mode) directly through thunderbolt to ethernet, I get 150 Mbps, with either ethernet wire.
    If I connect the Air to the Airport Express directly through the same wire, and the Express connected to the modem in bridge mode, I get 20Mbps. Note that I did a hard reset, so the router should not be performing any functions. In this mode, the Airport Express does not show up in AirPort Utility as expected.
    How is it possible the Airport would be reducing the bandwidth to such a low level? I'm taking the modem back tomorrow, I'm wondering if it's going into some odd handshaking mode.
    Just FYI, Wifi in 2.4G and 5G result in same 20Mbps. I've verified the Air is in 802.11n mode.
    Thanks!

    I thought 802.11n was up to 300Mbps?
    "up to" means exactly that.....the product can operate anywhere up to 300 Mbps.
    But, "up to", does not mean that it will operate at 300 Mbps.
    Your actual wireless connection link is determined by a number of different factors. Some of these,  like interference, are beyond your control.
    But, for the sake of argument......let's say that the AirPort Express is operating at 270 Mbps.  That 270 Mbps will get choked down to 100 Mbps when it reaches the 100 Mbps port on the AirPort Express.  You have now lost 2/3 of the speed on the network.

  • At-dio-32s Mixing handshaking and unstrobed I/O

    On an at-dio-32s board, is it possible to use to different types of I/O at the same time ?
    E.g. 16-bit acquired in handshaking mode and the 16 remaining bits used independently in unstrobed mode.
    I have an application where I need a data bus with a high transfert rate and some "slow control" I/O bits.
    Thanks in advance for your help.

    Yes, you configure a buffered operation using 16 bits and use rest of the 16 bits in the unstrobed mode and since you are not using one of the two groups for handshaking, you can even use the handshaking lines for static I/O. For more information, please look at the 653x user manual (start from page 2-2)

  • Continuous write no longer works after upgrade

    Hello,
    After upgrading a computer motherboard, OS (XP to Win7), and NIDAQmx (9.40 to 9.80) simultaneously the Labview 2011 32-bit vi we use to run our lab bus control system no longer works (the two most pertinent vi's are included here).  My next move is to go back to the older NIDAQmx, but this would mean no upgrade possibility to Labview 2013.  The card is rather old (NI DIO-32HS) but is supported according to the documentation in NIDAQmx 9.80 and passes all self-tests.  I have also tested the outputs with a voltmeter and the test panel in NI MAX.
    For large amounts of data to write, the DAQmx Start Task vi executes and throws the following error:
    Error -200293 occurred at Dequeue and write out elements.vi
    Possible reason(s):
    The generation is not yet started, and not enough space is available in the buffer.
    Configure a larger buffer, or start the generation before writing more data than will fit in the buffer.
    The buffer is not too small.  If I delay the Start Task vi the buffer will fill up more and just crash later.  For small amounts of written data (400000 points or so) there is no problem.  The output executes perfectly.
    I realize that this is no longer the recommended clock timing, but:
    1.  When I try to use a pipelined sample clock I get the following error:
    Requested value is not a supported value for this property. The property value may be invalid because it conflicts with another property.
    Property: SampTimingType
    Requested Value: Pipelined Sample Clock
    You Can Select: On Demand, Sample Clock, Handshake, Burst Handshake, Change Detection
      I have tried changing many other properties and looked at the NIDAQmx 9.80 included example for pipelined clock and do not see the problem.
    2.  The normal Sample Clock used to work just fine for generating output while writing to the buffer and I have found an example program on ni.com using this method   https://decibel.ni.com/content/docs/DOC-12402
    Attachments:
    pattern execution DAQmx with AE - queue.vi ‏51 KB
    Dequeue and write out elements.vi ‏29 KB

    Hi Sam,
    Thanks for having a look-see.  I used NIDAQmx 9.4 for all of the tests above.  Since then I went back to our old XP computer which it turned out actually had NIDAQmx 9.6.2 (not 9.40) and Labview 11 SP 1.  The version of the test program is included here.  I modified the channels vi to "one channel for all lines" which doesn't really seem to make a difference.  I have the channel set to dev1/port0_32 with the onboard clock at 1MHz.  It throws the following error:
    Error -200621 occurred at Cont Write Dig Port-Ext Clk-Non Regeneration.vi
    Possible reason(s):
    Onboard device memory underflow. Because of system and/or bus-bandwidth limitations, the driver could not write data to the device fast enough to keep up with the device output rate.
    Reduce your sample rate. If your data transfer method is interrupts, try using DMA or USB Bulk. You can also reduce the number of programs your computer is executing concurrently.
    It does not get stable until I reduce the clock speed to 100kHz!  And then even crashes sometimes if I run other programs.  Which is strange because my lab bus program on this old computer uses 1MHz just fine again, with on board or external clock.  The CPU load shoots up with this test VI a lot when you go from 100 to 200kHz.  In general this example VI uses much more CPU than my bus program because it is constantly writing to buffer.  Loading my buffer in the bus program only takes 1sec or so.  I have also changed my bus driver program to use finite instead of continous samples.  The bus program craps out at around 1.1MHz clock.
    Speaking with other people at the University (4 different groups), it seems that the speed one gets is dependent on the motherboard and DMA somehow.  Some computers just seem to give faster rates than others.   The overall speed/modernity of the computer and the OS seem to be irrelevant.  The others use traditional NIDAQ drivers and the C++ API, but I have not tried that yet, as it would require a recode.  Some of them run faster than mine, some slower.  We have tried disabling other PCI bus devices and changing the slots.  We have also tried various bios versions.
    Another thing I noticed, is that the card ALWAYS regenerates, regardless of how the mode is set.
    Have a nice evening.
    Attachments:
    Cont Write Dig Port-Ext Clk-Non Regeneration.vi ‏30 KB

  • Call to DIG_Block_Out with NI 6533 and groupsize = 4 returns -10444

    I am trying to output data in a handshaking mode with 32 bits of data. I am using buffered handshaking (not pg or burst) with ~100000 points. I can send this data only if my groupsize= 2, but I need a groupsize of 4. Why does this cause an out-of-memory error?

    Okay, then.
    I figured it out.
    I was calling DIG_Block_Out with the number of 16 bit elements. The array of u16's were, say 100 in length, and I was sending the parameter 100 for length. BUT, as the docs indicate for DIG_Block_Out, count is the number of elements in the group size. So since I wanted to use all 32 lines, I had to divide the count by 2. Using 50 as a count worked fine.
    *silly me*

  • Pattern generation doesnt work - DIOHS96

    Hello
    I have a trouble getting the DAQmx to do a pattern generation as expected.
    the first mode of operation, is when i set the clock configuration to "sample clock": the card should support 2MHz operation, however, above about 2KHz, the card spits out everything BUT the last 16 samples! . the error i get is underbuffer, when i force the task to stop after having waited too long. above 1MHz the output operation dies in the middle, underbuffer error.
    to note, i monitor all the time the data written to buffer, and the actual nb of samples generated. i see that i have written a nb of samples, that the memory has filled, that it recovers as the data is spit out, and that suddenly, 16 bits from the end it stops.
    the second mode of operation, is by setting the clock configuration to " burst (input)", after the recommendation of Johannes from this same forum (by the way, i still want to understand why first mode of operation doesnt work). then, on most computers installed with same card the system works nicely, and i get 2MHz operation working.
    But for one computer: a new HP, which had a bug already not recognising the NI card first, but after the bug fix from knowledgebase it recognised it. it seems this card work using traditional DAQ now on this specific computer.
    What happens on this computer is that the "sample clock" configuration works as on any other computer, meaning badly. and the "burst input" mode, doesnt work at all. it spits out only the first 16 samples, then dies. i have to stop the task manually.
    so you can check that i make no mistake, i attach my piece of code that does the work.
    Hope that i get help fast! thanks
    OOPS! this should have gone to hardware board! - disregard!
    Message Edited by Gabi1 on 05-10-2007 04:56 AM
    ... And here's where I keep assorted lengths of wires...

    This will get you most of the way there:
           Pattern p = Pattern.compile(".+@[A-Za-z0-9\\-_]+(.com|.net|.edu)$");
           Matcher m = p.matcher(email);
           if (m.find()) { System.out.println("Match - Email Address OK"); }
           else { System.out.println("No Match -  Email Address Bad"); }

  • How to generate a pulse train with different pulse width and delay?

    How to generate a triggered pulse train with different pulse width. for example, after each trigger signal, let's say 2 ms, then the counter output a pulse with pulsewidth of 1 ms, and then after 3 ms delay after the first pulse, the second pulse was generated with a pulse width of 4 ms.  Next cycle when the trigger signal comes, the same two pulses will be generated and so on. Is it possible to achieve this by using 6601 counter card? and if yes, how to achieve this? Thanks!

    Unfortunately you can not create a hardware timed pulse train with different widths on each pulse from a counter. Whilst it can be changed on the fly using software, since you require a hardware triggered signal getting the software involved will not give a huge amount of accuracy when the pulse will actually change.
    So in short you can't use your 6601 card (or a counter timer) to achieve this
    There are three possible Alternative solutions
    1 You could use a high speed digital IO device such as the (6533/34) to generate your variable signal which would require setting up the pulse train as a series of states based around the burst transmission mode where the clock would give you your specific timing.
    2 A timed analogy output (for example on a MIO card with a clock (PCI-6220 / 62xx), i.e. Not the 6704 style static analogy output cards)
    3 A high speed digital waveform card such as the (, 656x , 655x, 654x, 6534, 6533 (http://www.ni.com/modularinstruments/find_right.ht​m) ) this could then be scripted to work with your triggering and also there is a digital waveform editor which will enable you to set up the pattern you wish to generate (http://sine.ni.com/nips/cds/view/p/lang/en/nid/135​55) 
    Hope that helps
    Tim Matthews
    NI (UK)

  • Digital Error

    i have a simple vi set up to reset my DAQ board (an AT-DIO-32F),
    and then configure a group containing port 0 for input, and then configure
    it to run in handshaking mode. I then configure a buffer to take a
    certain number of scans and use a buffer control vi to start the
    acquisition. WHen I try to run it, everything functions until I try to
    use the start command on the buffer. It gives me error -10008, with the
    possible reason that the specified group is invalid. I have no idea
    what's going on. If anyone could offer enough help to get this started, I
    can probably do it from there.
    The setup is an AT-DIO-32F and a PC-TIO-10 running in a Gateway
    Pentium 120. The PC-TIO-10 is reset at the beginning of the vi, but not
    accessed after that. I
    t's LabView V. 5.0.1.
    Thanks,
    Josh
    [See first answer for additional information]

    [Attachment(s) for question]
    Attachments:
    DIGIN ‏119 KB

  • Will the NI PXI-5422 generate a chirp waveform from 9.5 to 10.5 MHz?

    Across a pulse width of 50 or 100usec with a PRI of 1msec upon the application of an external TTL trigger? Will this unit generate this user defined chirped waveform each time it receives an trigger? Also, the generator will need to stop playing out the chirped waveform at the end of each pulse and generate a 10MHz CW signal between pulses. And finaly, how long after the receipt of the trigger,will it take to get the output waveform? Oh yes, will the 80MHz sampling rate always be that for the generated wavefomr?
    Nate

    You can easily generate a user-defined triggered chirp pulse which meets the specs that you are requesting with the 5422. If you want a rough idea of the trigger latency on the 5422, you can look at the start trigger specs for the 5421 on page 21: http://digital.ni.com/manuals.nsf/websearch/D15FC16269E088F886256D66007ED513?OpenDocument&node=13210....
    The difficult part would be outputing a continuous waveform in between the user-defined waveform, and the next trigger. You can view the different trigger modes for the 5422 in the user's m
    anual. In summary, you can do stepped triggering, which limits you to outputing a single user-defined waveform with each trigger. The other option would be burst trigger mode, which would continuously output a different user-defined waveform each time a trigger occurs. Neither of these options would enable a single user defined pattern to be followed by a continuous pattern with a single trigger.
    I hope this helps.
    -Logan Kunitz

  • Delay using block in with AT-DIO-32HS

    I inserted in a loop 4 sequential DIG_Block_In() calls to get input data with
    my AT-DIO-32HS in handshake mode.
    Before each call the program ensures that the previous transfer was completed,
    by means of DIG_Block_Check() calls, which indeed automatically call DIG_Block_Clear()
    at the end. The first call reads a small header (6 shorts) and retrieves
    how many data the next call should get. The second call reads that amount
    of data (which can be rather huge, say up to 2 Mbytes, dinamycally allocated).
    The third call reads a second header and the last call reads another huge
    block of data. This four operations must be repeated 100 times. What I experience
    is that the first time the loop is executed everything works fine,
    but before
    the second execution (getting next "first" header) the system waits for several
    seconds (!!). Note that the 4 calls use 4 distinct data buffers. I would
    avoid using double buffering in this case because my problem is really sequential
    and can be easily managed in the described way. Any help ?

    Hi Andreasz,
    Welcome to LabVIEW!
    Any time I start working with a new device I start by searching the examples that ship with LabVIEW.
    Goto search examples. Take a look at the examples located in
    Hardware Input and Output >>> Solutions >>> 653x Logic Analyzer
    There you will find four example that will get you sarted.
    If you find these lacking, let us know what needs changed and we may be able to help.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

Maybe you are looking for

  • External Hard Drive Maximum Size for HAP-Z1ES

    You have no category for your new line of DSD players, and in particular, the Sony HAPZ-1ES.  You should get on this, because it sends the wrong message, mainly that you are not putting much effort into this new product, which is not exactly the mess

  • How to install Flash 10.1?

    Any idea how to install this for FF without Adobe's accompanying ****ware? I tried a manual install using install_flash_player_ax.exe (whatever the **** "ax" is supposed to mean) with no visible results.

  • Unable to load camera raw plug-in update.

    My Photoshop version is 12.0.4 x64 - when I run update it shows "up to date". When I try to install the plug-in it tells me to contact support. Why can't I install the updated plug-in?

  • JDBC Receiver : Handling NULL return from SELECT query

    Hi All, I have a Proxy <-> XI <-> JDBC synchronous scenario. I have designed my message mapping to perform a select query using JDBC receiver adapter. The request message mapping structure at the JDBC end is as follows. <?xml version="1.0" encoding="

  • Create StandBy Database

    Can anyone help me in creating StandBy Database. I am using oracle 10g. Thanks in advance