10-24-2008 08:27 AM
10-24-2008 12:38 PM
Hi brosner-
You may not be able to use the C++ chip objects directly, but the MHDDK examples should still be helpful. The show the necessary registers/bitfields to hit and in what order, and the mseries_registermap.doc shows the register offsets and bitfield descriptions. Bitfield values are enumerated in the chipobjects as well. These two resources should hopefully help you piece together your driver.
Note that the functionality of the E Series (STC) and M Series (STCII) timing controller chips are very similar and that register names may be similar or the same, though their offsets might be different. Since you're using the 6225, you may also be interested in the tips for accessing the upper 16 channels that I posted in this thread.
Out of curiousity, what type of environment are you programming for?
10-29-2008 07:31 AM
12-02-2008 07:35 AM
05-11-2009 08:10 PM
I'm in a similar position with brosner99 except the board is an NI6255.
We were able to translate (into c) the aiex1 cpp code in the mhddk and get it to read known voltages on known channels.
However I have been unsuccessful in getting the translated aoex1 code to generate known voltages.
While I have the register offsets and bit (field) definitions in a .h file, I don't really understand how
the M series ao works. The aoex1 DACConfig code loads the waveformorder with (0xf). What is the waveform order?
We load DAC_Direct_data[channel] with different codes, but don't seem to be able to generate voltages.
Is there a strobe that needs to be set. It appears there is comprehensive documentation on the STC chip,
is there similar documentation on how the AO subsystem works.
P.S We know the board works as it funtions just fine in a windows environment.
Thanks in advance for your time
Cwernlund
05-14-2009 04:42 PM
Hi Cwernlund-
Waveform order is used to indicate to the hardware which order you plan to load data points into the AO FIFO for a generation. A lower number takes precendence, so it gives a way to adjust the channel ordering as it corresponds to the data in the FIFO. So if you want to load data in the FIFO in order like ch0, ch1, ch3, ch2 then you need to write (in addition to other settings as show in aoConfigureDAC() 😞
AO_Waveform_Order[0] = a;
AO_Waveform_Order[1] = b;
AO_Waveform_Order[2] = d;
AO_Waveform_Order[3] = c;
with any numbers such that a<b<c<d.
However, for static (non-hardware-timed) AO, you should not need make any settings for AO_Waveform_Order. What behavior do you see if you run aoex2.cpp from the M Series MHDDK?
Hopefully this helps-
11-11-2009 07:02 PM
Hi
We use VISA based Register level programming for E Series DIO channels for one specific purpose. We access only the following DAQ-STC Registers
DIO_Control_Register
DIO_Output_Register
DIO_Parallel_Input_Register
Window_Address_Register
Window_Data_Read_Register
Window_Data_Write_Register
The E Series RLP manual provides their address and offset correctly. We want to use the M Series Board and I am unable to find the DAQ-STCII RLP details. I tried the entire NI Site. Please provide the STC II registermap or atleast the register information of the above registers.
thanks and regards
Sathish
11-12-2009 10:45 AM
Joe Friedchicken
NI Configuration Based Software Get with your fellow OS users
[ Linux ] [ macOS ]Principal Software Engineer :: Configuration Based Software
Senior Software Engineer :: Multifunction Instruments Applications Group (until May 2018)
Software Engineer :: Measurements RLP Group (until Mar 2014)
Applications Engineer :: High Speed Product Group (until Sep 2008)
11-23-2009 05:38 PM
Hi,
Sorry for the confusion in the post even though my notion was different. It is very unfortunate that you didn't understand my question and answered it.
Without visiting the NI Register level Programming home page, nobody would have developed any register level program for NI Boards.
For E Series Boards NI had provided two manuals for register level programming.
1. E Series Register Level Programmer Manual.
2. DAQ-STC Technical Reference Manual.
The Register information for accessing DIO lines in E series were given in the DAQ-STC manual with very good explanation. With the knowledge of E series based boards if one approach for M-series, Let see what document we have.
1. mseries_registermap.doc.
First of all in the RLP home page they call this document as "Not a complete Register Level Manual" and inside they show it as preliminary document. It only has table of registermaps without any explanation or help. There is not even a mention about DAQ-STC II in that document.
In this same thread in Oct2008, Mr.Tom has mentioned that STC in E Series and STC II in M Series are functionally same but the register names may or may not be the same.
Since I didn't find the STC II manual in NI website, I have asked for the equivalent register value information for those which I use in STC.
Anyhow now by debugging the NI m series Register level examples (The code without any meaningful comments for the understanding), I have found the values for the digital I/O registers and confirmed it with mSeries_registermap document. My converted program for m series works fine.
Here are my observations about DIO registers to this community forum.
1. DIO registers are not part of STC as like E series, it is moved to the main register map. (No need for STC registermap document for accessing DIO).
2. DIO register names are different and register sizes are different.
3. The registers for Port1 & 2 are different kind than for Port 0.
thanks and regards
Sathish
11-25-2009 09:12 AM
Joe Friedchicken
NI Configuration Based Software Get with your fellow OS users
[ Linux ] [ macOS ]Principal Software Engineer :: Configuration Based Software
Senior Software Engineer :: Multifunction Instruments Applications Group (until May 2018)
Software Engineer :: Measurements RLP Group (until Mar 2014)
Applications Engineer :: High Speed Product Group (until Sep 2008)