VXI and VME

cancel
Showing results for 
Search instead for 
Did you mean: 

Using PCI8015 to talk to VME memory card

Newbie question regarding the PCI8015 PCI/VXI bridge and standard (non VXI) VME cards.

I am running Visa and have been able to read A16 memory on both the PCI card (C000) and the VXI card (C040), but am unable to access A24 memory where the VME memory card lives.  It is a Micro Memory MM6390 that I'm using just to do some simple testing (read/write).  I have added a VME card to the resources in MAX, but when I do a test panel on the VME card (logical address 256), I am unable to read any of my A24 address space (I set the card for 0x000000 to 0xFFFFFF, but have the MAX resource set for 0x000000 to 0x00FFFF for testing).

It is not clear to me if I need to open the test panel on the PCI resource, the VXI resource, or my added VME resource in order to gain access to the address space on my memory card.  I am doing simple In and Out commands but get a BERR* on every access.  Logically, it seems as though I should be able to open the VXI resource and read any A16, A24, or A32 memory that is mapped on cards in the bus with the VXI card, but I feel as though I am missing something.

The goal:  Use the PCI/VXI to act as a Slot 0 controller (it is installed in leftmost slot) in testing a slave VME card that is under development.  I need to read/write registers on our VME card (eventually) as well as respond to interrupts that our card will generate for various statuses.  In other words, there are no "instruments" in the mix here... just the VXI bridge and (eventually) our VME card.  As noted above, I am using a memory card as a stand-in for our card just for some early testing.

Will the PCI8015 setup allow me to achieve this goal?  Any thoughts on how I should be doing this with MAX, VISA, etc?  Your help is appreciated.  Thanks.

-felben
0 Kudos
Message 1 of 4
(7,995 Views)

Hello felben,

If I understand what is happening here, you can read from A16, but not the 24 address.  This may be due to the fact you might need to create second VME INST at a different logical address.  This will also give you the ability to open one session and access both INST at the same time.  I have found a related discussion forum that further expounds upon this idea.  You may also want to take a look at Using NI-VXI Software for VMEbus Systems.  Can you please post a screenshot of the error you are receiving?

A_Ryan
AES
National Instruments
0 Kudos
Message 2 of 4
(7,976 Views)
A_Ryan...

Thanks for the very useful and quick response.  That article escaped my earlier search and is exactly the document I needed for this project.  I've read it through and still have a couple of questions.

However, let me say that I did get the memory card working by moving it to a different slot.  I had it in the last slot and now wonder if there was a bus termination issue that was hampering my progess.  In any case, I am now able to read the single 8-bit register in A16 and various memory locations in the patch of A24 mapped to the memory card.  All good.

My questions are as follows:

1.  I noticed (after moving the card to the new slot) that resman found the 8-bit register in A16 and created a VME device at logical address 248 that mapped 256 bytes at this address (happens to be 0xFE00).  Using this resource, I was able to read/write this register on the memory card.  Note that this was before I added the VME device to the configuration on my own... resman just found it and made it logical address 248.  Why/how did resman recognize and automatically configure this A16 item?  And, why did it not see and auto-configure the A24 memory also supported by the card?

2.  Will I always have to rely on resman (along with MAX - which I assume is the same as the "T&M Explorer" referenced in the article?) to define the various devices and address spaces in order to write VISA-compliant software that works with my VME cards?  What I am wondering is if all of this (VME resource addition, adding of address spaces, assignment of logical addresses, assignment of IRQs) can be done programmatically or if someone will always need to run resman on a newly installed system and add the VME resources manually to get the system up and running?

3.  I see that VME devices are added as INSTR resources... does this matter?  I thought they would be MEMACC (which to me seems to be more basic than INSTR).

Thanks again for your precisely targeted help.

-felben
Message 3 of 4
(7,972 Views)
Hello felben,
 
Glad to hear that helped.  In answer to your subsequent questions:
1.  The Resource Manager configures VXI devices by reading their VXI configuration
registers in the upper 16 Kbytes of A16 space.  This can also be further explained with VXI/VME Common Questions Documents.
 
2.  NI-VXI ships with several utilities one of which is VMEImportExportApp.  This allows you to both import and export information from your VXI system.  Here is also a related KnowledgeBase.
 
3.  This is something that is handled by the driver.  By giving it an "INST" it helps to identify which address space you are referencing.  Although, you are correct you are essentially looking at the MEMACC.
A_Ryan
AES
National Instruments
0 Kudos
Message 4 of 4
(7,956 Views)