Register Level Programmer Manual for M Series

I am using M Series 6221 DAQ and unable to find the Register Level Programmer Manual for it. The E series manual is quite a detailed one (http://www.ni.com/pdf/manuals/341079b.pdf) , Can you please point me to a similar document for M series ..

Hello ,
      I was directed to the same websites by the Application
Engineer earlier too.
I have been using the C++ code. The code is highly complex
and without any comments. Its very difficult to reverse
engineer it. Its a practice that code is written by refering
the manual , instead of understanding the working from code.
Its unbelivable that NI is selling this product without proper
docuemntation.
Anyways, My problem right now is :
Info
1. Using a x86 SBC based PC with ThreadX as operating system
2. I want to use Port1 and Port2 as DI. Able to read from Port1 and Port2 by following the program.
3. Channel 0 and Channel 1 as On Demand AI (RSE) for sensing 2 different parameters
   in the range of 0V to 10V. 
4. Want to read a single sample from both the channels.
5. Unable to read from Channel 0 and Channel 1 correctly yet.
Questions:
1. I am using aiex1.c program to acquire Analog signal .
    - numberOfChannels = 2 and numberOfSamples = 1
    - not using adcReset(board)
    - aiPersonalize (board, tMSeries::tAI_Output_Control::kAI_CONVERT_Output_SelectActive_High);
    - aiConfigureChannel (board, 
                                        Channel number 0 and 1 one after the other 
                                        0 gain
                                        tMSeries::tAI_Config_FIFO_Data::kAI_Config_PolarityBipolar,
                                        tMSeries::tAI_Config_FIFO_Data::kAI_Config_Channel_TypeRSE,
                                        Channel 1 is last channel )
   - As Is aiConvert (board,
                                 280,     // convert period divisor
                                 280,     // convert delay divisor
                                 kFalse);
  Any idea if i am not conguring or missing something ???
  As the acquired value i read is incorrect
2. Suppose i configure Channel 0 and Channel 1, And want to acquire only from
   Channel 0 , What to do for it ?
3. If acquisations happens from both the Channels , How do i know which data is acquired
    from the Channel 0 and Channel 1 in the FIFO ?
4. Is there a method to read data directly from ADC instead of reading it from FIFO ?
5. If there is input signal at Port0 (configured as DI), Can a interrupt be triggered ?
6. How to make AI interrput based ?
Thanks,
Irfan

Similar Messages

  • NI PCI-6624 and NI PCI-6723 register-level programmer manual

    Hi,
    I am looking for NI PCI-6624 and NI PCI-6723 register-level programmer manual or QNX driver for these boards.
    Thanks in advance for any info related to the board's registers structure.

    Here is a link to a document that provides many resources on how to access register level programming with our DAQ devices:
    http://digital.ni.com/public.nsf/websearch/2D93070A3DDEFD7186256C59007289E6?OpenDocument
    Hopefully this will help.  There may be a better solution for your individual need.  What exactly are you trying to accomplish with the register level access?
    Jacob K
    Jacob K || Applications Engineer || National Instruments

  • PXI 7813R Register Level Programmer Manual available

    Is the Register Level Programmer Manual available for the PXI 7813R module?  Does a code example exist using Microsoft Visual C++ 6.0?
    Thanks!!!

    The RLP manual for the 7813R is identical to that of the 7831R, which you can get on the MHDDK page (go to the download link).  The only difference is that you will need to use a different PCI device ID to identify the device, the PXI-7813R device ID is 0x7193.  There are MSVC++ examples at the download link as well.
    -Alan A.

  • Problems configurin​g a port in niPXI-6509 card as input port using static DIO Register Level Programmer maual

    Hello ,
                 I am using a ni PXI-6509 card for my application. Since I have to compile my application in Interval Zero RTX, I am using the static DIO Register level programming using VISA. I have successfully configured the card to do output on  port0. But when I attempt to comfigure another port1(not the same as output) I can successflly configure it. But when I send 5V through the corresponding pins I donot get a value 1 in the Data register for that channel.
    the following i did to configure as Input...
    1) IO Select register set to 0 (for input as the manual suggests)
    2) read from IO data register.
    Do I need to do anything special to configure as input port.
    please suggest...
    Thanks
    Kuchi

    Hi Sathish,
    Given how much blatant, undisclosed, and unrepentant
    cross-posting [1] [2] [3] [4] [5] you've done to ask this question, I
    gave you the benefit of the doubt that you were new to the NI forums
    and didn't understand the etiquette of this community. However, looking
    at your profile, you've been around just over 8 years! How can you be
    so selfishly impolite?
    To your credit, you at least searched the forums to find (somewhat) relevant to which topics to reply, but as you said you 'tried the entire NI Site', I'm surprised that you missed the DDK home page [6] that has a link to the M Series register map.
    [1] Re: m series register programming in straight C
    http://forums.ni.com/ni/board/message?board.id=90&​message.id=1644#M1644
    [2] Re: Problems configuring a port in niPXI-6509 card as input port using static DIO Register Level Programmer maual
    http://forums.ni.com/ni/board/message?board.id=90&​message.id=1645#M1645
    [3] Re: Problem with writing to registers
    http://forums.ni.com/ni/board/message?board.id=90&​message.id=1646#M1646
    [4] Re: Is there a Register Level Programming manual for NI 625x PXI
    http://forums.ni.com/ni/board/message?board.id=270​&message.id=7661#M7661
    [5] Re: Where Can I find information about register level programming the PXI 6259?
    http://forums.ni.com/ni/board/message?board.id=250​&message.id=53551#M53551
    [6] Register Level Programming for OEM Customers
    http://digital.ni.com/express.nsf/bycode/exyv4w?op​endocument
    Joe Friedchicken
    NI VirtualBench Application Software
    Get with your fellow hardware users :: [ NI's VirtualBench User Group ]
    Get with your fellow OS users :: [ NI's Linux User Group ] [ NI's OS X User Group ]
    Get with your fellow developers :: [ NI's DAQmx Base User Group ] [ NI's DDK User Group ]
    Senior Software Engineer :: Multifunction Instruments Applications Group
    Software Engineer :: Measurements RLP Group (until Mar 2014)
    Applications Engineer :: High Speed Product Group (until Sep 2008)

  • Where is the SCXI-1102 Register-Level Programming Manual

    The SCXI-1102 User Manual refers (in Chapter 5) to a "SCXI-1102 Register-Level Programming Manual". I can't find the register-level programming manual on www.ni.com. Where can I obtain this manual?

    Hey Don,
    Thank you for contacting National Instruments.
    There is not a register-level programming manual for the SCXI-1102. This was a mistake made in the first version January 1996 of the SCXI-1102 manual. This was corrected in the later August of 1997 version.
    http://www.ni.com/pdf/manuals/320975b.pdf
    Register-level programming is not formally supported by National Instruments. If you would like more information about alternative methods of programming other than NI-DAQ please contact your sales representative.
    Best Regards,
    Joshua P.
    Application Engineering
    National Instruments

  • Register Level DMA programming for NI6533

    I am writing a register level driver (LynxOS) for the NI6533. I have the DAQ DIO register map (http://www.ni.com/pdf/daq/us/release_ni6533.pdf) but it does not list registers for the DMA controller chip.
    Is there a manual that describes how to setup the DMA registers for this board?
    Thanks,
    - Larry

    Hi Christian,
    Thanks for the MITE RLPM, that was the missing piece.
    I am now having trouble getting two NI6533's to handshake. One is in a PCI x86 box running LynxOS, and the other is in a desktop PC. For the latter I'm using the Examples:Harware Input and Output:Traditional DAQigital Input and Output:653x examples from LabView 7. Specifically, the Buffered Handshake Output.vi and Cont Handshake Output.vi.
    The Cont Handshake Output vi is timing out at 1 second intervals waiting for the write to complete, so I'm assuming from this that no handshaking is occurring.
    I can toggle the data lines statically and that looks OK in both directions. I've set the exchangePins bit=1 to swap the ACK/REQ signals on the LynxOS side.
    I've attache
    d a file that prints the register settings for all of the DIO registers on the LynxOS side. Perhaps you can spot something that's not right?
    Also, I'm confused about the delay register settings. The manual states you can adjust the programmable delay from 0 to 700ns in 100ns increments. Yet all of the delay registers show 8-bits. I assume then that only the lower 3 bits are used.
    The examples dio_ex12.cpp and dio_ex13.cpp set the group1ReqDelay=3, group1RegNotDelay=2, group1AclDelay=2, and group1AckNotDelay=2, which are consistent with this assumption. However, they set the group1DataDelay=100, which is not consistent. Is this register different than the others?
    Thanks,
    - Larry
    Attachments:
    DIO_regs_1.txt ‏7 KB

  • Remap PCI 6509 below 1 MB (Register Level)

    Hi All,
    my name is Wolfgang and I ask fo your help with Regiser Level Programming of the PCI 6509
    I refer to this manual:
    DAQ
    Static DIO Register-Level Programmer Manual
    for NI 6509, 651x, 6520, 6521, and 6528 Devices
    found here:  ftp://ftp.ni.com/support/manuals/371580a.pdf
    Accoding to chapter 3 I want to remap the device below 1 MB to 0xD0000 (PCI MITE adress) and 0xD1000 (device adress)
    I do the following steps according to page 3-3:
    1.) "CWrite(0x10,0x000D0000)"
    I do this by BIOS Int 1A and it works, I can read it back.
    2.) "Write(0xD0340,0x0000AEAE)"
    This also works, I can read the values back with the DOS-Tool "debug":
    0xD0340 is 0xAE
    0xD0341 is 0xAE
    0xD0342 is 0
    3.) "CWrite(0x14,0x000D1000)"
    I also do this by BIOS Int 1A and it works, I can read it back.
    4.) "Write(0xD00C0,0x000D1080)"
    This step seems to be the problem:  After this, the device should be seen at 0xD1000, but it is not there, the space is empty.
    When I read the value back I get:
    0xD00C0 is 0x80
    0xD00C2 is 0x00 instead of the writen value 0x0D
    0xD00C3 is 0x00
    What is my mistake?
    Thank's for all help.
    0xD00C1 is 0x10
    0xD0343 is 0

    Sorry, the text seems to be mixed up then sending.
    Let me post this part again:
    I do the following steps according to page 3-3:
    1.) "CWrite(0x10,0x000D0000)"
    I do this by BIOS Int 1A and it works, I can read it back.
    2.) "Write(0xD0340,0x0000AEAE)"
    This also works, I can read the values back with the DOS-Tool "debug":
    0xD0340 is 0xAE
    0xD0341 is 0xAE
    0xD0342 is 0
    0xD0343 is 0
    3.) "CWrite(0x14,0x000D1000)"
    I also do this by BIOS Int 1A and it works, I can read it back.
    4.) "Write(0xD00C0,0x000D1080)"
    This step seems to be the problem:  After this, the device should be seen at 0xD1000, but it is not there, the space is empty.
    When I read the value back I get:
    0xD00C0 is 0x80
    0xD00C1 is 0x10
    0xD00C2 is 0x00 instead of the writen value 0x0D
    0xD00C3 is 0x00

  • Documentation for register level programming of PCI-62XX cards

    I'm looking for documentation for register level programming of PCI-62xx series cards. Does such a document exist?
    Thanks

    Scott,
    At this time we do not have a comprehensive M Series RLP manual available.  I was not aware of any plans to deliver this document last month, so you may have been given some incorrect information, in which case I apologize.  Currently, we provide the register map along with several examples showing how to program the boards for different types of operations.  If you have any specific questions, you can post them to this forum where our developers and other customers can help out.  I hope this helps. 
    Jeremy

  • Register level programing of the 6601 counter to connect signals to the rtsi bus

    I have need for more than 4 clocks and have several 6601 counter boards. I would like to use an additional board for the extra clock but need to send signals to the this board from the other. The most efficent way seems to be to use the rtsi bus to connect the 2 boards together. I am programing the counter boards at the register level  using a kernel module in linux. The register level porgramming manual explains how to connect different signals to the sourse pins of the clocks including the rtsi signals.  I have been successful in doing this but  can not find info on how to route the output signal of one clock  to the input of another using the rtsi bus. Using  web search I have seen ways to do this using labview and dqmx calls but nothing for programin at the register level. Thanks for any help on this problem.
    Jerrv

    Hi Jerry-
    Ed's post here has some info that seems related to your question.
    Tom W
    National Instruments

  • Timebase signal to pfi 0 to 7 pin (register level)

    Hi,
    I wonder if someone can help me. I am using a PCI-6602 card as a counter/timer. I would like access to the internal timebase signal via a PFI pin so that I can use that clock to sync another device.
    I have just got off the phone with NI who were exceptionally helpful and said that it is possible to "route" a signal to the PFI pin.
    However, I am using register level programming (as I am in linux) and cannot find any information in the register level programming manual.
    Does anyone know how to do this? Or the register that needs to be set?
    Many thanks,
    Stuart

    Hi Stuart-
    Which Linux distribution are you using?  If it's one of the supported distros, I would recommend that you use NI-DAQmx 8.0 for Linux.  The functionality to route PFI signals is available in NI-DAQmx via the DAQmxExportSignal() and DAQmxConnectTerms()/DAQmxDisconnectTerms() functions.
    Hopefully this helps-
    EDIT: If you still need help with register-level programming, please repost your question in the DDK forum so that I can help you there.
    Message Edited by Tom W [DE] on 04-09-2008 03:47 PM
    Tom W
    National Instruments

  • Need internal register info and map for PCI-6036E

    I'm going to be using NI-PCI-6036E Data Acquisition cards using a hard real time extension package for Windows. As a result, we will have to write a driver for the 6036E cards to access them in real time. Consequently, I need a map of and information on the internal registers e.g. a programming model. and the PCI vendor ID and device ID

    I would definitely recommend that you download our Measurement Hardware Driver Development Kit (DDK). This is a free download from our website, and can be found at www.ni.com or at the following direct link.
    NI Measurement Hardware DDK (Driver Development Kit)
    http://sine.ni.com/apps/we/nioc.vp?cid=11737〈=US
    This kit provides development tools and a register-level programming interface for NI data acquisition hardware. This works with E Series devices, including the 6036E.
    For questions specific to the DDK, please leverage the discussion forum catageory "Driver Development Kit (DDK)."
    Best Regards,
    Justin Britten
    Applications Engineer
    National Instruments

  • Register level manual for 5105?

    Hi,
    I have several NI-PXI-5105 that I need to use with GNU/Linux (64). After browsing the many docs on your site, it looks like the only solution left is to develop my own driver (using comedi if possible, or mhddk).
    To do so, I need the register-level manual for the PXI 5105. Could you give me a link to it please? Thanks!
    Regards,
    Romain

    Hello.
    MHDDK can't be used to program scope cards.
    The 5114 scope card is supported ONLY on the Intel x86 32-bit architecture on the following Linux distributions:
    Mandrakelinux 10.1 Official
    Mandriva Linux 2006
    SUSE LINUX Professional 9.3
    SUSE LINUX 10.0
    Red Hat Enterprise Linux WS 3
    You can dowload NI-SCOPE 2.9 driver for Linux from this link.
    Regards

  • Register level programming of interrupts for PCI 6503

    Hi all,
    I'm basically trying to get an interrupt from the card upon a change in the data of one of the ports (for instance port A) so I can catch pulse signals without having to poll the pins manually at a high rate. I can't figure out from the documentation and examples whether this is actually possible using register level programming (can't use the DAQmX libraries because I use InTime OS). I can set the appropriate bits of the Interrupt Registers in order to enable the two interrupts (A and B), but I'm not sure what condition generates these interrupts.
    Additionally, I want to be able to send out a pulse on a pin and have it automatically cleared by the board.
    As far as I can tell both of my requirements mean using the card in strobed mode, but the code examples don't give enough information how to work in this mode. Do i have to use the handshaking mechanism somehow and if so, how is this better for me over using static i/o and manually checking pin values?
    Any help or referrence would be greatly appreciated.
    Thank you in advance
    Orr

    Hi Orr,
    The best source of information for this device is its user manual [1], and Appendix B discusses the register map and programming considerations.
    Speaking specifically to interrupts, please refer to PDF page 43 (B-2), emphasis mine:
    Two software-controlled registers determine which devices, if any, generate interrupts. Each of the 82C55A devices has two interrupt lines, PC3 and PC0, connected to the interrupt circuitry. On the PCI-DIO-96 and PXI-6508, the 82C53 device has two of its three counter outputs connected to the interrupt circuitry. Any of these 10 signals can interrupt the computer if the interrupt circuitry is enabled and the corresponding enable bit is set. Refer to the Programming Considerations for the 82C53 section for more information. Normally, the handshaking circuitry controls PC3 and PC0 of the 82C55A devices; however, you can configure either of these two lines for input and then use them as external interrupts. An interrupt occurs on the signal line low-to-high transition."
    The pages following that section describe the interrupt control registers and give pseudo-code examples for configuring them.
    Once we clear this obstacle, let's move on to your output questions.
    [1] PCI-DIO-96/PXI-6508/PCI-6503 User Manual
    http://digital.ni.com/manuals.nsf/websearch/6E8329494F3955528625758300678D55
    Joe Friedchicken
    NI VirtualBench Application Software
    Get with your fellow hardware users :: [ NI's VirtualBench User Group ]
    Get with your fellow OS users :: [ NI's Linux User Group ] [ NI's OS X User Group ]
    Get with your fellow developers :: [ NI's DAQmx Base User Group ] [ NI's DDK User Group ]
    Senior Software Engineer :: Multifunction Instruments Applications Group
    Software Engineer :: Measurements RLP Group (until Mar 2014)
    Applications Engineer :: High Speed Product Group (until Sep 2008)

  • Programmer Guide /Manual for PLD

    Dear all
    Is there any programmer guide /manual for PLD , or detailed material on PLD.
    Note :I have visited the page https://websmp207.sap-ag.de/smb/sbo/pld
    Regards,
    Ghazanfar

    hi,
    Check SDK & add on documents in
    Business One Knowledge centre under components,tools,FAQ's
    in below link.
    SAP Business One - SAP Developer Network
    Edited by: Jeyakanthan A on May 15, 2009 4:39 PM

  • How to do register-level programming for NI6025E when I want to acquire single scan incuding multiple input channels?

    How to do register-level programming for NI6025E when I want to acquire single scan incuding multiple input channels?

    Thanks, Alan, I think I indeed need to combine aiex1.cpp and aiex2.cpp. I made a change to Configure_Board of aiex1.cpp  as follows:
    //Call this function to configure board options.
    void Configure_Board(tSTC *theSTC,tESeries *board)
     //Clear configuration memory
     theSTC->Write_Strobe_0.writeRegister(0x0001);
     //Clear ADC FIFO
     theSTC->Write_Strobe_1.writeRegister(0x0001);
     //Writing to Config_Memory_High_Register for channel 1 settings
     board->ConfigFifoHigh.setChannel(0);
     board->ConfigFifoHigh.setBank(0);
     board->ConfigFifoHigh.setChannelType(board->ConfigFifoHigh.kChannelTypeRSE);
     board->ConfigFifoHigh.flush();
     //Writing to Config_Memory_Low_Register for following channel 1 settings
     board->ConfigFifoLow.setLastChannel(0);
     board->ConfigFifoLow.setGeneralTrigger(0);
     board->ConfigFifoLow.setGain(board->ConfigFifoLow.kGain001_0);
     board->ConfigFifoLow.setPolarity(board->ConfigFifoLow.kPolarityBipolar);
     board->ConfigFifoLow.setDither(0);
     board->ConfigFifoLow.flush();
     //Writing to Config_Memory_High_Register for following channel 0 settings
     board->ConfigFifoHigh.setChannel(1);
     board->ConfigFifoHigh.setBank(0);
     board->ConfigFifoHigh.setChannelType(board->ConfigFifoHigh.kChannelTypeRSE);//RSE mode
     board->ConfigFifoHigh.flush();
     //Writing to Config_Memory_Low_Register for following channel 0 settings
     board->ConfigFifoLow.setLastChannel(1);
     board->ConfigFifoLow.setGeneralTrigger(0);
     board->ConfigFifoLow.setGain(board->ConfigFifoLow.kGain001_0);
     board->ConfigFifoLow.setPolarity(board->ConfigFifoLow.kPolarityBipolar);//BIPOLAR
     board->ConfigFifoLow.setDither(0);
     board->ConfigFifoLow.flush(); 
     return;
     and a change to test(iBus *bus):
    do
      uStatus = theSTC->AI_Status_1.readRegister();
      if (!((uStatus & 0x1000) == 0x1000))
        uValue[i] = board->AIFifoData.readRegister();
       i++;
     } while(i<1);
     printf("Value %d is %6.2f\n",0,FindADDouble(uValue[0]));
     printf("Value %d is %6.2f\n",1,FindADDouble(uValue[1]));
    but it doesn't work, why?
    How shoud I do?

Maybe you are looking for

  • HT1351 Is it possible to manage apps on a device from computer since iTunes was changed?

    I am so lost since iTunes was redesigned! I like to manage my children's apps from the computer. We have multiple devices and I want different apps on each. I've lost this ability and I am floundering! We have too many apps to manage from individual

  • Error in ESS App Change Own Data

    Hello!!! I am in process of implementing ESS for a middle eat client. For some reason unknown to me the application "Change Own Data" isn't working. When I click on the link to "Change Own Data" it throws the following error: Critical Error A critica

  • Auxiliary Input option for Factory CD player ster

    I initially bought an FM transmitter to use my micro zen in my car but the quality (and drop outs) were unbearable in the city... so I just received my order for one of these today and installed it in my 2004 Scion xA in about 45 minutes: <img src =

  • 3314 (FLVHeaderIntegrityFailed) when loading a video

    [ Problem ] I've created my own packaging application based on the code in the 'packaging content' documentation. The output from this packager is just the encrypted video (i.e. no .metadata file). I then modified the sample AIR client to read the me

  • IPhone will not sync with iCal

    I'm having problems whereby events created on my iPhone is not syncing with my iCal. (Entry does not show up on iCal after sync)