Digital I/O

cancel
Showing results for 
Search instead for 
Did you mean: 

Improperly configured handshaking source as I/O connector versus pattern generation with external clock

I am trying to perform pattern generation with an external clock using a 653X board. I did not have a true understanding of the handshaking options, and erroneously set the handshake source option to the default "I/O Connector" value. I also set the following handshaking modes: Signal Mode (Edge), Edge Mode (Leading), REQ Polarity (Active High), and ACK Polarity (Active High). I think I was essentially generating an ACK pulse for every REQ pulse that I was receiving. I completely ignored the ACK pulse and assumed my data was getting clocked in via the REQ pulse. What I observed was a loss of my MSB bit and an added bit (always zero) at the LSB end. So when expecting 1
1001 I was acquiring 10010. It was as if the bits shifted left and stuck like that for the rest of the acquisition. I realize I was running in the incorrect mode by performing handshaking when I should have been performing pattern generation. Regardless, what was occuring in the handshaking mode that produced this shifting of bits and holding at those values for the rest of the test. I need to understand what was happening so I can properly explain the differences between handshaking and pattern generation modes, as well as, explain the cause of this bad data. My application was running properly most of the time, even though I had set the incorrect mode. Only on rare occasions was bad data acquired which caused this shifting of bits occuring. All inquiries are greatly appreciated and thanks for the help.
0 Kudos
Message 1 of 2
(3,138 Views)
Hello Peterc,

Thank you for contacting National Instruments.

It sounds like there are some timing issues when you use the
handshaking option. By ignoring the ACK pulse, you might be sending
data to your 653X before it is ready. This could result in the
shifting of your bits.

In pattern generation, data is sent to the board independently of any
board signals. If the board cannot read the data from the buffer fast
enough, an error will occur.

See the link below for tutorials on handshaking:

http://zone.ni.com/devzone/conceptd.nsf/webmain/667F2B831AFCBA6F86256802007B8CC9?opendocument

and on pattern generation:

http://zone.ni.com/devzone/conceptd.nsf/webmain/F3CB8F15F6C9DBDF86256C67005F768E?opendocument#5

I hope this helps,

Sean C.
Applications Engineer

National Instruments
0 Kudos
Message 2 of 2
(3,138 Views)