VAX - DRV11 Problem

From: Eric Everton <erice_at_CAE.COM>
Date: Fri Aug 10 09:58:05 2001

Hi,

I am working on a CF-18 simulator which is based on a VAX (No need to
mention that the sim is old!). I am developing some hardware to allow some
automatic testing of MC (mission Computer) OFP (Operational Flight Program)
software.

Anyway, I am working with a DRV11 card (DMA interface for the VAX), to
communicate to an FPGA (APEX20K) board which I have built. The setup is
shown below.



  |------------------| |-----------------------|
|-----------------------|
  | Keypad | | |
| |
  | & |--------------------------------------| My board
|-----------------------| Serial |
  | display | | |
| Controller |
  |------------------| |-----------------------|
|-----------------------|
                                                |
                                                |
                                                |
                                        |-----------------------|
                                        | |
                                        | VAX |
                                        | |
                                        |-----------------------|

Normally the keypad and display would be connected directly, but now I can
contol the data via my board. What the board does depends on the VAX
commands sent to it. This way, the board can become transparent, pump data
in 1 direction or the other, or just plain monitor the data. The vax can
then validate that everything that is supposed to happen does, and it will
become possible to write scripts to press buttons on the keypad rather than
having someone push the actual button!

Anyway, my problem is with the DRV11 card. (Actually I am using a DRV1-SF)

I have taken the DEC supplied example driver for this card and modified it
for my needs. (this works fine... I think!)

The problem is that if I send several QIO calls back to back, there is a
huge amount of time between the DMA transfers. What makes this even
wierder, is that the delay between transfers seems to follow a pattern as
follows:

-- xfer data -- wait 200 us -- xfer data -- wait 1 ms -- xfer data -- wait
200 us -- xfer data -- wait 1 ms --xfer data -- wait 200 us -- ...

Another quirk I seem to have is that if I pulse the ATTN line at some random
time, I enter the ISR and everything runs smoothly. However, if I pulse the
ATTN line just after a transfer ( within a few micro seconds) I enter the
ISR for the completion interrupt, but I seem to miss the interrupt from the
ATTN line if the transfer was smaller than 3 words!! I have no idea why it
works for larger transfers and not for small transfers...

Further if I examine the saved CSR value after an ATTN pulse was sent, I
should see th ATTN bit latched, but it is not! can anyone explain this? I
tried 2 cards and they both do the same thing.

Anyway, any help at all would be appreciated...

Eric Everton
Avionics Simulation Specialist
Dept. 49
Eric.Everton_at_cae.com
(450) 476-4484
Received on Fri Aug 10 2001 - 09:58:05 BST

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:33:32 BST