Driver Development Kit (DDK)

cancel
Showing results for 
Search instead for 
Did you mean: 
Reply

NI PCI-6251 with M series DDK on FreeBSD, max. AO-DMA-HW sample rate is 500 kS/s?

Solved!
Go to solution
Highlighted

NI PCI-6251 with M series DDK on FreeBSD, max. AO-DMA-HW sample rate is 500 kS/s?

Is a single channel rate of 500 kS/s really the maximum for AO-DMA using the DDK?

 

I read this 9 year old post in the forum:

http://forums.ni.com/t5/Driver-Development-Kit-DDK/Analog-out-DMA-performance-problems/m-p/537045#M8...

 

That one suggests to set a value of 0x600 to a non-documented MITE register at offest 0x28, in order to enable DMA burst operation. I found also the related additon to the Comedi MITE implementation, which got a little bit more details:

https://github.com/Linux-Comedi/comedi/blob/master/comedi/drivers/mite.c#L163

 

Does this apply to the PCI-6251 as well, or am I looking at the wrong place?

 

My implementation used examples/aoex5.cpp as a template. I found that offset 0x28 is covered in the DDK by the MITE BaseAddress class, and so I added mite1->BaseAddress.setValue(0x600); right after configuring the DMA and clearing and resetting the FIFO. This didn't have any apparent effect, though, and perhaps this is a different offset that is 0x28 only by coincident.

 

Any ideas how to bring the AO-HW-DMA sample rate above 1 MS/s would be welcome. 

 

0 Kudos
Message 1 of 2
(714 Views)
Solution
Accepted by topic author rolf.heinrich
03-16-2017 06:56 AM

Re: NI PCI-6251 with M series DDK on FreeBSD, max. AO-DMA-HW sample rate is 500 kS/s?

I guess I found a solution. I switched the AO DMA operation to 32bit, and now it is working at the full sample rate of 2.86 MHz (update divisor = 7).

 

The obscure burst bits (0x600) at address 0x28 don't make any difference for me, and I don't follow this anymore.

 

Anyway, I got what I need.

0 Kudos
Message 2 of 2
(433 Views)