Driver Development Kit (DDK)

cancel
Showing results for 
Search instead for 
Did you mean: 

Device Driver in C for PCIe 6251 on QNX 6.3.2

Hi,

 

I am writing a driver in C for PCIe6251. I am using the NI DDK for MSeries, DAQ M Series User manual (July 2008) and the DAQ-STC Tech Ref Manual (Jan 1999) for reference.

I also have the NI MSeries Register Map(Preliminary)  version.

 

Well the query is in the file tMSeries.h  there are these following classes tAO_Waveform_Order, tAO_Config_Bank, tDAC_Direct_Data, tGen_PWM and tStatic_AI_Control, which don't seem to map to any of the MSeries local registers; can I find the details regarding the significance of these classes and the corresponding interfaces.

 

This information is important for the Gen_PWM[x].writeRegister(0) is used in the function void analogTriggerReset (tMSeries* board) and I have no idea of what role it plays in the trigger settings of the card for Analog Input acquisition. I anticipate that I might need the details for other classes as well.

 

Can someone please provide me with the necessary information w.r.t. the above mentioned classes. Its very urgent.

 

-Shrirang.

 

0 Kudos
Message 1 of 2
(7,493 Views)

Hi Shrirang-

 

The uses of these classes are shown in the various AO examples for the MHDDK.  Some of it is not clear, so I will summarize here:

 

1.  AO_Waveform_Order

   Specifies the order of waveform data to be programmed into the AO FIFO.  Each entry in the AO_Waveform_Order array of registers corresponds to a channel number on the device.  If two AO_Waveform_Order entries contain the same value, the lower physical channel number takes precendence.  So, AO_Waveform_Order[0] corresponds to AO0, AO_Waveform_Order[1] to AO1, etc.  The number programmed into those registers represents the order of data that you will later push into the data FIFO.  In truth, you may as well write 0, 1, 2, 3, ... into those registers and then also make sure that your data ordering in the data FIFO follows that format.

 

2.  AO_Config_Bank

   This is a bank of registers for programming settings for each DAC on the board.  Check ao.cpp:aoConfigureDAC() from the MHDDK for more info.

 

3.  DAC_Direct_Data

   This is used for static updates on the AO channels, without AO data FIFO use.  Check aoex1.cpp for an example of its use.

 

4.  Gen_PWM

   PWM's are used to generate analog trigger comparator inputs for the device.  If you are not using analog triggers, it is safe to just turn these off by writing '0' to each of the first two registers.

 

5.  Static_AI_Control

   These are actually not used for AI control, but may be used for specialized functions on boards as needed.  If you find mention of them in the MHDDK example code or on this forum that is not clear, please let me know.  Otherwise, you should not need to worry about them if they aren't already used in example code or notes.

 

Hopefully this helps-

Tom W
National Instruments
0 Kudos
Message 2 of 2
(7,476 Views)