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

Similar Messages

  • 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

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

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

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

  • 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

  • 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

  • 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

  • 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

  • Pad synchronization register level programming

    Dear all,
    the user manual (6602) talks about pad synchronization. I need six counters to start generating PWM - Signals at the exact same point of time. An external trigger should be used. As pointed out in  the user manual, the external trigger is connected to PFI 38, the counters have PFI 38 selected as their gate. I've managed to trigger the PWM Signals, but they are NOT synchronized. In fact I could observe quite a huge time delay between the PWM - Signals. Can you tell me, which bit i need to change on register-level ? Pad Synchronization is not mentioned in the RLPM.
    Thanks,
    Nico 

    I'm not sure if pad synchronization will address Nico's symptoms. As the manual points out on page 13 (Ch 2, pg 2) [1], pad synchronization normalizes propagation delays in the board from the I/O pins to the counters' inputs on the TIO ASIC. However, propagation delays are never more than the period of the fastest timebase on the board (otherwise pad synchronization couldn't be called a feature ;-). Since Nico mentioned seeing "quite a huge time delay between the PWM - Signals", I believe he's facing a different kind of synchronization problem.
    My question is: do any of you folks observe asynchronicity due to propagation delay? In other words, is the maximum time between one PWM starting and a second PWM starting equal to the period of the clock on the counter's source? You may just need to use the same signal (provided either externally or internally) to arm-start the counters instead [2].
    [1] 660x User Manual
    http://digital.ni.com/manuals.nsf/websearch/3751AB99F196F6738625768C001307AF
    [2] What are the 3-bit field choices for Hw_Arm_Sel in PCI-6601
    http://forums.ni.com/ni/board/message?board.id=90&view=by_date_ascending&message.id=1638#M1638
    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 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

  • PCI-6509 I/O direction bit-by-bit

    I am trying to write some low-level code to use the PCI-6509 board.  I've already done this for the PCIe-6509.  However, the DDK code I downloaded doesn't seem to allow me to select the I/O direction of an individual bit... it seems to be in 8-bit groups only.  My understanding is that the PCI-6509 board is supposed to allow individual control over I/O direction (like the PCIe board does).  Can anyone help me.
    Thanks.
    Solved!
    Go to Solution.

    Hi Jwstonge
    Unfortunately the PCI variant of the 6509 can only be configured port-by-port, not line-by-line.
    This KB gives a list of what devices support line-by-line configuration.
    The PCIe-6509 is built on a different architecture than the other form factors.
    Regards,
    Luke B.

  • 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

  • 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

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

Maybe you are looking for

  • Creation of new functionality in the mail

    hello sir, i want to know whether it is possible to create a folder in the mail which should to work as follows.i will assign a particular mail-id to a new folder for ex: [email protected] folder name: abc. whenever a mail comes from this mail-id [[e

  • Camera on my blackberry won't open

    Hi. I need help. The camera on my blackberry won't open.  It says "Could not start the camera.  Close other applications and try opening the camera again."  I have already closed the applications, tried to reset the settings, remove battery but still

  • I some how deleted the safari app on my iphone as well as my app store and the itunes store app how do i get it back?

    I some how deleted the safari app on my iphone as well as my app store and the itunes store app how do i get it back?

  • How to contact developer support for QuickTime SDK for Windows

    I have been trying to find a number to contact developer support regarding an issue with QuickTime SDK for Windows. https://discussions.apple.com/thread/6214740?searchText=ICMCompressionSessionEnc odeFrame I always ended up with AppleCare support and

  • Best Practice: Editing

    I'm using the version previous to iMovie 8 which I call iMovie 7. I think iMovie converts all DV to Apple Intermediate Codec (AIC). Knowing that I did not want iMovie to go through all the heavy work at the end of my edit during compression. So I cre