Discussion:
Need to use the ALIGN_DMA_BUFFER() function with the AT-DIO-32HS, Burst Transfer Mode ??
(too old to reply)
Raminta
2007-01-09 20:10:11 UTC
Permalink
After reading the documentation, I just want to confirm several things. I am programming an AT-DIO-32HS board for Burst transfer mode using the Traditional NIDAQ library & Visual C++. I will be sending approximately 2076 bytes 'per burst' at a 1.48MHz rate (slowest rate of card).
 
1. Based on the documentation, I should NOT need  to use the ALIGN_DMA_BUFFER() NIDAQ library function. Is this correct ?
 
2. When I call the NIDAQ library function DIG_Block_Out(), I pass a pointer to a buffer containing the data along with the number of items in the buffer. Does NIDAQ copy this data over to some memory on board the AT-DIO-32HS card, or does it get the data from the PC's memory via DMA ?
 
 
Thanks so much !
stilly32
2007-01-10 23:40:11 UTC
Permalink
Hi Raminta,
From your question about the Dig_Block_out, I'm assuming you're doing output from the DIO-32HS. Is that correct? Referencing the "DOsingleBufBurstHandshake653x.c" example program,
 /* You may want to call 'Align_DMA_Buffer' at this point if you     have a buffer larger than 4kBytes in size and if your handshaking     signals occur at intervals faster than 50us. */
So if you meet any one of those conditions, you may want to use it. I was under the impression that that function was only for use&nbsp;with the AT DIO 32F and the documentation and <a href="http://digital.ni.com/public.nsf/websearch/B2AA1206BCF726EC862562B300831FF0?OpenDocument" target="_blank">this KB</a>&nbsp;agree with me, but if you get some glitching you may want to try it. &nbsp;For DIG_Block_Out(), since your card doesn't have any onboard memory it is going to be transferred over DMA.
&nbsp;
Hope this helps,
Andrew S.
National Instruments

Loading...