Discussion:
Issues with executing DOsingleBufBurstHandshake653x.c
(too old to reply)
Raminta
2007-07-03 17:10:11 UTC
Permalink
Hi,
 
I am using the AT-DIO-32HS board and trying to execute the DOsingleBufBurstHandshake653x.c (a sample provided by NI). I am able to execute this program with no errors, however, I am not seeing the results I am expecting to see on my logic analyzer. This example is configured to do burst protocol as OUTPUT. Here are my questions concerning this issue:
 
1. IN the example program, I added the statement, Init_DA_Brds() to the very beginning of the program, to initialize the board. This statement was not part of the original example. But this should not have any impact correct ?
 
2. I am monitoring 3 pins on the card, which correspond to the control/handshake and clock signals in this protocol:
       
            PIN 2 - REQ1 
            PIN 3 - ACK1  , and
            PIN 5 - PCLK1
 
  These are the correct pins to look at, right ??
 
3. Because my PC with the AT-DIO-32HS card is not attached to any peripheral, we hold the REQ1 (pin2) high permanently. This should not cause an issue, correct ?
 
4. When I execute the DIG_BLK_OUT() stamement in the DOsingleBufBurstHandshake653x.c code example, the ACK line goes high, but then goes low again, and then begins to  pulse high and low over and over, almost looking like a clock signal. What would make the ACK behave like this ? I was expecting the ACK to go high and REMAIN HIGH for at least 100 clock cycles (since there are 100 words of data the program has hardcoded), and then drop low.
 
5. IN the NI 653X Users Manual, there is a timing diagram listed on page 3-6. The figure # is 3-4. I am expecting to see something like this diagram on my logic analyzer. This is a correct expectation ?
 
 
Thanks so much - I hope my questions are clear. Any insight would be appreciated.
 
 
stilly32
2007-07-07 21:11:44 UTC
Permalink
Hi,
In response to your questions:
1. IN the example program, I added the statement, Init_DA_Brds() to the very beginning of the program, to initialize the board. This statement was not part of the original example. But this should not have any impact correct ? - Correct, this should not change the behavior of the program, just reinitialize the board into the default state.
 

2. I am monitoring 3 pins on the card, which correspond to the control/handshake and clock signals in this protocol:
       
            PIN 2 - REQ1 
            PIN 3 - ACK1  , and
            PIN 5 - PCLK1
 
  These are the correct pins to look at, right ?? - This should be correct if you haven't changed anything in the program.  

3. Because my PC with the AT-DIO-32HS card is not attached to any peripheral, we hold the REQ1 (pin2) high permanently. This should not cause an issue, correct ? - Also correct.
 
4. When I execute the DIG_BLK_OUT() stamement in the DOsingleBufBurstHandshake653x.c code example, the ACK line goes high, but then goes low again, and then begins to  pulse high and low over and over, almost looking like a clock signal. What would make the ACK behave like this ? I was expecting the ACK to go high and REMAIN HIGH for at least 100 clock cycles (since there are 100 words of data the program has hardcoded), and then drop low. - Are you supplying pclk to the devices? For burst output the default is for the clock to be provided. At no point is the ACK behavior described - the card decides when it will be able to send/receive data and behaves accordingly. I'm not surprised at this behavior, considering the card doesn't have a large buffer (16S).
 

5. IN the NI 653X Users Manual, there is a timing diagram listed on page 3-6. The figure # is 3-4. I am expecting to see something like this diagram on my logic analyzer. This is a correct expectation ? - It will look like this, just realize that the ACK will change states during operation.
 
Hope this helps,
Andrew S
 

Loading...