Hi Jamie,
I've been working on a couple issues myself with the 653x boards and I have a couple examples that might help you out.
The first example is a CVI program (uses NI-DAQ function calls) to output a pattern from one port and read that pattern in on the other port. This is done as you mentioned above (tying the two different REQ lines together for the different groups). This example uses the onboard buffer to loop through the output pattern.
The second example, I wrote based on your earlier question about the DAQCard 6533. This example writes out of one port and reads in on another port. Same functionality except this program uses interrupts (no DMA for DAQCards) and I reversed the edge I am sampling with. I am outputting on the ris
ing edge and I am sampling/inputting on the falling edge. This guarantees that my data is still valid. Otherwise, I could have a "race" condition in which data bits are changing before I had a chance to sample it.
Anyway, these examples are still rough around the edges but they should do the trick. Also, if you want to change the clock rate used by these examples, you will have to adjust the DIG_Block_PG_Config function to adjust the internal timebase and the multiplier. You might also have to play around with the buffer size and the transfer sizes before it is optimized for your system.
Anyway, hope that helps. Have a good day.
Ron
Applications Engineer
National Instruments