Ni 6602 Card, Configuration in Register Level Programming

Hello,
I want to do register level programming with the NI 6602 card .
I want to use an x4 encoder reader and I want to use the continuous
frequency generation.
so i got the following tool to map the kernel space to the user space, so
a simple shell script will do the job.
http://www.linux.it/~rubini/software/phob/phob.html
and than just using the provided function phob_io
to programm the registers in a shell script:
#!/bin/bash
# shell script for init 6602 card with prf and encoder counter
# set prf
../phob_io ''0:048=0000'' # Input Select Register
../phob_io ''0:00C=1109'' # Command Register
../phob_io ''0:038=00ffffff'' # Load A Register
../phob_io ''0:03C=00ffffff'' # Load B Register
../phob_io ''0:
034=9218'' # Mode Register
But don"t get any output as i expect, what is wrong?
Do i have to set some othe registers, or write somthing to the PCI-Config?
Does anyone has some sample configuration?
Thanks
Mario Behn
Mario Behn
Microwave Remote Sensing Laboratory Room 104
University of Massachusetts
Knowles Engineering Building
Amherst, MA 01003-4410
phone (413) 545-4675
fax (413) 545-4652
email [email protected]

A typical project for one of the 660x RLP examples needs to include the following source code files:
../OSinterface/osiBus.cpp - generic register I/O interface used by the example code
../OSinterface/Linux/osiUserCode.cpp - OS specific adapter used by osiBus to access registers on the hardware in the specific OS
../ChipObjects/tTIO.cpp - abstraction of the chips and registers on the hardware into C++ classes and properties
and one of the examples files, e.g.
../Examples/gpct_ex1.cpp - implementation of a specific operation, including all initialization of the hardware
(The same is true for the examples for other boards although the names of the ChipObject and examples will be different.)
Each of these files needs to be compiled to give y
ou object files, and then all of the object files need to be linked together to build an application (executable binary). The errors you list seem to indicate that you are not using all of these files.
There is more information on the RLP example architecture in the attached PDF document.
Christian Loew, CLA
Principal Systems Engineer, National Instruments
Please tip your answer providers with kudos.
Any attached Code is provided As Is. It has not been tested or validated as a product, for use in a deployed application or system,
or for use in hazardous environments. You assume all risks for use of the Code and use of the Code is subject
to the Sample Code License Terms which can be found at: http://ni.com/samplecodelicense
Attachments:
Register_Level_Programming_Architecture.pdf ‏165 KB

Similar Messages

  • Ni 6602 Card, Configuration DIO and Counter in Register Level Programming

    Hello,
    I want to do register level programming with the NI 6602 card .
    Which register determine a channel act as DIO or Counter.

    Hi:
    please refer to this link,why not using DAQmx driver?
    NISH AE
    Haifeng Xu

  • 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

  • 660x DIO Register Level Programming

    I am working on a comedi/linux driver for the 6602, and can't figure out how to access the other 24 DIO lines (the ones shared with counter/timer).
    Firstly, I want to use the DIO lines for output, so I must configure them as such. The RLPM doesn't say anything more than a hint about how to configure these lines .
    It seems the answer lies in using 2 bits to set to IO_Config Register(s). The RLPM says that these registers contain 2 bits for configuration direction, but only lists functionality for 00 and 01; not 10 or 11. Is it possible that setting 11 or 10 sets these PFI lines for DIO?

    Hello!
    We don't do support on register-level programming but the problem you are experiencing might be due to tri-state on the ports?
    Please check this manual that covers register programming of the device you are using:
    http://digital.ni.com/manuals.nsf/websearch/47300C3471742AD0862570AE005E0AD1
    Regards,
    Jimmie Adolph
    Systems Engineer Manager, National Instruments Northern Region
    Bring Me The Horizon - Sempiternal

  • 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)

  • How can I communicate PXI-6509 by Static DIO Register-Level Programming?

    - How can I communicate PXI-6509 by Static DIO Register-Level Programming?
      PXI-6509 physically Port0 is connected to Port1.
      For checking all connections are correct for this case so I have used DAQmx Test Panel. Just in case everything is ok.
      In this case I interested in to communicate the PXI6509 by Register-Level Programming.  
      I have tried to use Open VISA Test Panel for sending and reading data (in MAX explorer) and
      use NI-Spy for checking communication data.
      The first step I configured Port0 to Outputs state and Port1 to Inputs state.
      The second step I setup Port0 to 0xAA.
      The third step I read back Port1 and expected data will be 0xAA but just only 0x0. Why???
       1              ViOut8(0x03D83318, 10, 0x00000041, 1)

    Hello!
    We don't do support on register-level programming but the problem you are experiencing might be due to tri-state on the ports?
    Please check this manual that covers register programming of the device you are using:
    http://digital.ni.com/manuals.nsf/websearch/47300C3471742AD0862570AE005E0AD1
    Regards,
    Jimmie Adolph
    Systems Engineer Manager, National Instruments Northern Region
    Bring Me The Horizon - Sempiternal

  • Pci-6703 Register-Level Programming

    We wanna use the analog output channels of the 6703 and configure for DC Voltage for my application without NI-DAQ function.
    I have searched in NI website. but there is no PDF file or document file about register-level programming.
    It's important for us, we must program drivers and functions byself.
    How can I do?
    Thanks

    I believe that the Measurement Hardware DDK provides documentation, examples, and register objects for the NI 67xx series of devices.
    geoff
    Geoffrey Schmit
    Fermi National Accelerator Laborary

  • Register Level programming of the AT-DIO-32HS

    I am working with a piece of software that was written using the AT-DIO-32F card. The original programmer did NOT use the National Instruments driver with that card, but rather used a software library that allowed him to access and manipulate the registers directly on that board. The name of the library is called NTPORT (http://www.zealsoft.com/ntport/index.html).  He did this because he was not able to meet the timing requirements using the NI driver.
    We have to replace the AT-DIO-32F card with the AT-DIO-32HS card, and I would like to know if I can continue to do register level programming with the 32HS card.  I have found that I also can not meet my timing requirements using the driver that comes along with the 32HS card.
    I checked this web page (http://digital.ni.com/public.nsf/allkb/B08F4125A9325B3F862565CC0073E68F?OpenDocument), and did not find the AT-DIO-32HS listed. Does this mean I can not program its' registers ?
    Any feedback would be appreciated !!
    Thanks !!

    Hi Raminta-
    The Measurement Hardware Driver Development Kit (MHDDK) provides examples and register documentation for the 653x devices (which includes the AT-DIO-32HS).  The DIO-32F and DIO-32HS devices are quite similar, so it is possible that your existing code will work.  The resources on the MHDDK page should help you fill in any differences.
    Thanks-
    Tom W
    National Instruments

  • Register level programming on labwindows

    Hi Everyone
    I have few questions to ask
    1) Can register level programming of a third party PCI Daq card be done on LabWindows v8.5 in order to communicate with the PCI DAQ?
         If yes,  then how it can be done?
    2) Suppose if i want to generate two signals on the two analog outputs of 3rd Party PCI daq by using Lab Windows, Can i achieve  real time control of the amplitude and frequency of the signals?
    3) Are the Inport and Outport functions valid on Lab windows?
     If anyone has a simple example or any useful material on this , please share with me.
    Any help will be greatly appreciated.

    Anyone plz tell
    Can inport( )  and outport ( ) be used on Lab Windows.
    I found this code from the previous posts , will this code work ? What does it do?
    // define some handy types
    typedef int (*T_EtsInp)(unsigned int);
    typedef int (*T_EtsOutp)(unsigned int, int);
    // undefine existing macro's (which do not work for Embedded Real Time anyways)
    #undef inp
    #undef outp
    // declare inp and outp (byte versions)
    T_EtsInp   inp;
    T_EtsOutp  outp;
    At process attach or some other convenient spot, but before the actual use of the functions.
      // Get module handle
      myHandle = GetModuleHandle("ph_exec.exe");
      inp = (T_EtsInp) GetProcAddress(myHandle, "EtsInp");
      if (inp == NULL)
        printf("Unable to get proc address for EtsInp");
        return 0; // or other finishing action
      outp = (T_EtsOutp) GetProcAddress(myHandle, "EtsOutp");
      if (outp == NULL)
        printf("Unable to get proc address for EtsOutp");
        return 0; // or other finishing action

  • Register level programming

    Our laboratory is treating the precision control in Rtx foundation.
    We try to manage the 6703card in a Rtx foundation.
    So, we have to program a register level programming.
    We know the 6703card that use Window address.
    But I don't know using window address well.
    Therefore, I can not use the card.
    Is the thing usual to use Window address on DAC card?
    Is it valuable to invest the time to learn it?
    Can I take the manual about it?
    I thank for reading though my English is too short.
    p.s. We read the reply well. But I think that NI-DAQmx is not suitable.

    Thanks for contacting National Instruments,
    To make matters easier, you will not need to write your own register level program because we have created an NI-DAQmx Base driver for RTX. You can find it here
    Post a reply if you have any further questions.
    Jordan Randall
    National Instruments Italy

  • 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?

  • 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

  • NI PCIe-6509 register level programming

    I'm asking National personnel, who is responsible for device driver developing, to give me information about register level programming. Programming this board using DAQmx software is too slow for us - about 2,5MHz is the maximum for one pin.
    I've already have RLP for PCI version of this board, but PCIe is different - only one BAR is available - and size of memory region also differ (512K). I've written skeleton kernel module for this board - and now problems to attach to hardware, but information absence stops me to progress further.
    Please, help me.

    Yes, RLP for the PCIe-6509 is different than for the PCI-6509. Looking at the hardware itself, you can see we've used different ASICs. The newer express revision has two STC3 ASICs while the previous PCI revision has two STC2 ASICs. These chips are different as you've encountered and thus their programming is also different.
    Unfortunately, we do not have any RLP information for the STC3 at this time, nor do we have projections for when it will be made available. If this is an urgent need, please contact your local sales or support engineer and we may be able to work with your further.
    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)

  • Register level programming for USB 6008

    Hi all,
    I am trying to work with USB 6008 in a linux environment without using DAQmxbase drivers. Since Comedi presently doesn't support USB 6008 device, I am considering writing the driver for USB 6008 myself. Is the register level programming of USB 6008 device possible? Where can i find the related documents and examples?
    Greetings
    aneez

    Hi Aneez,
    Via the following links, you can find information about Register Level programming of our hardware. 
    http://digital.ni.com/public.nsf/allkb/1C3988D7D33B925C86256C59007FB4B4?OpenDocument#Hardware Support
    http://digital.ni.com/express.nsf/bycode/exyv4w?opendocument&lang=en&node=seminar_US
    Regards,
    Bas

  • PCI6110: Mix NI-DAQ and register level programming

    Hi,
    is it possible to use high level NI-DAQ functions together with register level programming for the PCI6110 board? For example, to use NI-DAQ for AI and the GPCTRs and register level programming for AO.
    I had a look on the Measurement Hardware Driver Development Kit (DDK), but this doesn't seem to working together with NI-DAQ. Besides that, I don't want to reprogramm my whole DAQ-application, but use (AO) interrupts to synchronise the waveform generation to an external signal.
    Any hints?
    Regards,
    Christian Schuld

    Christian,
    It generally is not possible to use the MH DDK and NI-DAQ driver together. Because the NI-DAQ driver is not aware of the MH DDK and any changes you might be making on the hardware, it will likely reprogram or change certain registers or reset parts of the board that will invalidate your programming through the MH DDK. There may be cases where the two can coexist in an application depending on the specifics of the programming, but there are not any guidelines when that might be possible.
    If you can provide us more information about the details of your application and how you would like to synchronize the AO operation, we might be able to suggest a way to accomplish this using the NI-DAQ driver.
    Christian L
    NI Consulting Services
    Christian Loew, CLA
    Principal Systems Engineer, National Instruments
    Please tip your answer providers with kudos.
    Any attached Code is provided As Is. It has not been tested or validated as a product, for use in a deployed application or system,
    or for use in hazardous environments. You assume all risks for use of the Code and use of the Code is subject
    to the Sample Code License Terms which can be found at: http://ni.com/samplecodelicense

Maybe you are looking for

  • Time machine doesn't see external hard drive on network

    I have a pair of external hard drives connected to my iMac, which is connected to my 2WIRE modem/router via Ethernet. I'm using one of them as a Time Machine drive. For the past couple years, I've been backing up the laptops in the house to that Time

  • Post/Create a poll using Yammer REST API

    Hi everybody, I have been working on a project where there is a requirement to develop a custom web part that displays the feeds from Yammer. Also, the logged in user should be able to post messages, attachments, polls from the web part. I was able t

  • Streaming video out of database

    connection to streaming server of quick time after retrieving blob (or something of video type) from database using intermediatext. How? Thanks in advance. Sharon.

  • Limit on Blocking Sites

    I have an EA6300 router.  I have come across a problem with the limit of blocking sites.  So, I have 4 kids who like to use the computer to surf the internet.  Typically, stuff kids like to do. I have 2 dedicated computers for the kids to use in my h

  • How do I activate the adobe photoshop elements 12 I have bought from John Lewis's?

    Hi, I have just purchased adobe photoshop elements 12 from John Lewis's. I was told to use the ID number on my receipt to redeem the product. I have tried this but cannot download the product. I purchased the product on 6th March but because of a bus